Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Lots of overlapping changes. Also on the net-next side the XDP state management is handled more in the generic layers so undo the 'net' nfp fix which isn't applicable in net-next. Include a necessary change by Jakub Kicinski, with log message: ==================== cls_bpf no longer takes care of offload tracking. Make sure netdevsim performs necessary checks. This fixes a warning caused by TC trying to remove a filter it has not added. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com> ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -879,6 +879,8 @@ static int m88e1510_config_init(struct phy_device *phydev)
|
||||
|
||||
/* SGMII-to-Copper mode initialization */
|
||||
if (phydev->interface == PHY_INTERFACE_MODE_SGMII) {
|
||||
u32 pause;
|
||||
|
||||
/* Select page 18 */
|
||||
err = marvell_set_page(phydev, 18);
|
||||
if (err < 0)
|
||||
@@ -902,6 +904,16 @@ static int m88e1510_config_init(struct phy_device *phydev)
|
||||
err = marvell_set_page(phydev, MII_MARVELL_COPPER_PAGE);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* There appears to be a bug in the 88e1512 when used in
|
||||
* SGMII to copper mode, where the AN advertisment register
|
||||
* clears the pause bits each time a negotiation occurs.
|
||||
* This means we can never be truely sure what was advertised,
|
||||
* so disable Pause support.
|
||||
*/
|
||||
pause = SUPPORTED_Pause | SUPPORTED_Asym_Pause;
|
||||
phydev->supported &= ~pause;
|
||||
phydev->advertising &= ~pause;
|
||||
}
|
||||
|
||||
return m88e1121_config_init(phydev);
|
||||
@@ -2070,7 +2082,8 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = marvell_probe,
|
||||
.config_init = &m88e1145_config_init,
|
||||
.config_aneg = &marvell_config_aneg,
|
||||
.config_aneg = &m88e1101_config_aneg,
|
||||
.read_status = &genphy_read_status,
|
||||
.ack_interrupt = &marvell_ack_interrupt,
|
||||
.config_intr = &marvell_config_intr,
|
||||
.resume = &genphy_resume,
|
||||
|
@@ -194,8 +194,11 @@ static int xgene_mdio_reset(struct xgene_mdio_pdata *pdata)
|
||||
}
|
||||
|
||||
ret = xgene_enet_ecc_init(pdata);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
if (pdata->dev->of_node)
|
||||
clk_disable_unprepare(pdata->clk);
|
||||
return ret;
|
||||
}
|
||||
xgene_gmac_reset(pdata);
|
||||
|
||||
return 0;
|
||||
@@ -388,8 +391,10 @@ static int xgene_mdio_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
|
||||
mdio_bus = mdiobus_alloc();
|
||||
if (!mdio_bus)
|
||||
return -ENOMEM;
|
||||
if (!mdio_bus) {
|
||||
ret = -ENOMEM;
|
||||
goto out_clk;
|
||||
}
|
||||
|
||||
mdio_bus->name = "APM X-Gene MDIO bus";
|
||||
|
||||
@@ -418,7 +423,7 @@ static int xgene_mdio_probe(struct platform_device *pdev)
|
||||
mdio_bus->phy_mask = ~0;
|
||||
ret = mdiobus_register(mdio_bus);
|
||||
if (ret)
|
||||
goto out;
|
||||
goto out_mdiobus;
|
||||
|
||||
acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_HANDLE(dev), 1,
|
||||
acpi_register_phy, NULL, mdio_bus, NULL);
|
||||
@@ -426,16 +431,20 @@ static int xgene_mdio_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
if (ret)
|
||||
goto out;
|
||||
goto out_mdiobus;
|
||||
|
||||
pdata->mdio_bus = mdio_bus;
|
||||
xgene_mdio_status = true;
|
||||
|
||||
return 0;
|
||||
|
||||
out:
|
||||
out_mdiobus:
|
||||
mdiobus_free(mdio_bus);
|
||||
|
||||
out_clk:
|
||||
if (dev->of_node)
|
||||
clk_disable_unprepare(pdata->clk);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user