From cd54b2d42b39da8a7704b67c878eaec720df2cc9 Mon Sep 17 00:00:00 2001 From: Koen Vandeputte Date: Wed, 12 Jul 2017 22:59:03 +0200 Subject: kernel: update kernel 4.9 to 4.9.37 - Refreshed all patches - Removed upstreamed - Adapted 4 patches: 473-fix-marvell-phy-initialization-issues.patch ----------------------------------------------- Removed hunk 5 which got upstreamed 403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch 404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch -------------------------------------------------------------- Adapted these 2 RFC patches, merging the delta's from an upstream commit (see below) which made it before these 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux- stable.git/commit/?h=v4.9.36&id=97ace183074d306942b903a148aebd5d061758f0 180-usb-xhci-add-support-for-performing-fake-doorbell.patch ----------------------------------------------------------- - Moved fake_doorbell bitmask due to new item Compile tested on: cns3xxx, imx6 Run tested on: cns3xxx, imx6 Signed-off-by: Koen Vandeputte --- ...ovide-a-hook-for-link-up-link-down-events.patch | 2 +- ...-phy-move-phy-MMD-accessors-to-phy-core.c.patch | 4 ++-- ...e-phy_-read-write-_mmd-generic-MMD-access.patch | 2 +- ...oid-setting-unsupported-EEE-advertisments.patch | 13 +++++++---- ...tart-phy-autonegotiation-after-EEE-advert.patch | 5 ++++- ...phy-add-802.3-clause-45-support-to-phylib.patch | 6 ++--- ...hook-up-clause-45-autonegotiation-restart.patch | 2 +- ...it-out-PHY-speed-and-duplex-string-genera.patch | 2 +- ...e-phy_lookup_setting-and-guts-of-phy_supp.patch | 2 +- .../415-phylink-add-phylink-infrastructure.patch | 2 +- ...-marvell-88E1512-add-flow-control-support.patch | 2 +- ...-marvell-88E1111-add-flow-control-support.patch | 2 +- ...-marvell-88E1540-add-flow-control-support.patch | 2 +- ...35-net-phy-fix-marvell-phy-status-reading.patch | 26 ---------------------- ...473-fix-marvell-phy-initialization-issues.patch | 10 --------- 15 files changed, 27 insertions(+), 55 deletions(-) delete mode 100644 target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch (limited to 'target/linux/mvebu') diff --git a/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch b/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch index c5bb0c02f2..73b76cd7c1 100644 --- a/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch +++ b/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch @@ -167,7 +167,7 @@ Signed-off-by: Russell King --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -426,6 +426,7 @@ struct phy_device { +@@ -429,6 +429,7 @@ struct phy_device { u8 mdix; diff --git a/target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch b/target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch index a0352e20d9..a7c3107164 100644 --- a/target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch +++ b/target/linux/mvebu/patches-4.9/401-net-phy-move-phy-MMD-accessors-to-phy-core.c.patch @@ -256,7 +256,7 @@ Signed-off-by: Russell King +EXPORT_SYMBOL(phy_write_mmd); --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -627,14 +627,7 @@ struct phy_fixup { +@@ -630,14 +630,7 @@ struct phy_fixup { * * Same rules as for phy_read(); */ @@ -272,7 +272,7 @@ Signed-off-by: Russell King /** * phy_read_mmd_indirect - reads data from the MMD registers -@@ -728,16 +721,7 @@ static inline bool phy_is_pseudo_fixed_l +@@ -731,16 +724,7 @@ static inline bool phy_is_pseudo_fixed_l * * Same rules as for phy_write(); */ diff --git a/target/linux/mvebu/patches-4.9/402-net-phy-make-phy_-read-write-_mmd-generic-MMD-access.patch b/target/linux/mvebu/patches-4.9/402-net-phy-make-phy_-read-write-_mmd-generic-MMD-access.patch index a37b0a7527..fcb274d557 100644 --- a/target/linux/mvebu/patches-4.9/402-net-phy-make-phy_-read-write-_mmd-generic-MMD-access.patch +++ b/target/linux/mvebu/patches-4.9/402-net-phy-make-phy_-read-write-_mmd-generic-MMD-access.patch @@ -64,7 +64,7 @@ Signed-off-by: Russell King EXPORT_SYMBOL(phy_write_mmd); --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -570,6 +570,30 @@ struct phy_driver { +@@ -573,6 +573,30 @@ struct phy_driver { */ void (*link_change_notify)(struct phy_device *dev); diff --git a/target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch b/target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch index ecf7a26fa1..7d69c5aff1 100644 --- a/target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch +++ b/target/linux/mvebu/patches-4.9/403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch @@ -30,22 +30,27 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -1343,11 +1343,16 @@ EXPORT_SYMBOL(phy_ethtool_get_eee); +@@ -1343,14 +1343,19 @@ EXPORT_SYMBOL(phy_ethtool_get_eee); */ int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data) { - int val = ethtool_adv_to_mmd_eee_adv_t(data->advertised); + int cap, adv; -- phy_write_mmd_indirect(phydev, MDIO_AN_EEE_ADV, MDIO_MMD_AN, val); +- /* Mask prohibited EEE modes */ +- val &= ~phydev->eee_broken_modes; + /* Get Supported EEE */ + cap = phy_read_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_EEE_ABLE); + if (cap < 0) + return cap; ++ ++ adv = ethtool_adv_to_mmd_eee_adv_t(data->advertised) & cap; + +- phy_write_mmd_indirect(phydev, MDIO_AN_EEE_ADV, MDIO_MMD_AN, val); ++ /* Mask prohibited EEE modes */ ++ adv &= ~phydev->eee_broken_modes; - return 0; -+ adv = ethtool_adv_to_mmd_eee_adv_t(data->advertised) & cap; -+ + return phy_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, adv); } EXPORT_SYMBOL(phy_ethtool_set_eee); diff --git a/target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch b/target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch index 72951e8a3a..35d7ba9feb 100644 --- a/target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch +++ b/target/linux/mvebu/patches-4.9/404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch @@ -12,7 +12,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -1343,16 +1343,33 @@ EXPORT_SYMBOL(phy_ethtool_get_eee); +@@ -1343,19 +1343,36 @@ EXPORT_SYMBOL(phy_ethtool_get_eee); */ int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data) { @@ -30,6 +30,9 @@ Signed-off-by: Russell King + adv = ethtool_adv_to_mmd_eee_adv_t(data->advertised) & cap; + /* Mask prohibited EEE modes */ + adv &= ~phydev->eee_broken_modes; + - return phy_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, adv); + if (old_adv != adv) { + ret = phy_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, adv); diff --git a/target/linux/mvebu/patches-4.9/407-net-phy-add-802.3-clause-45-support-to-phylib.patch b/target/linux/mvebu/patches-4.9/407-net-phy-add-802.3-clause-45-support-to-phylib.patch index 352d678328..dfa93c5781 100644 --- a/target/linux/mvebu/patches-4.9/407-net-phy-add-802.3-clause-45-support-to-phylib.patch +++ b/target/linux/mvebu/patches-4.9/407-net-phy-add-802.3-clause-45-support-to-phylib.patch @@ -258,7 +258,7 @@ Signed-off-by: Russell King +EXPORT_SYMBOL_GPL(genphy_c45_read_pma); --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1410,27 +1410,19 @@ EXPORT_SYMBOL(genphy_read_status); +@@ -1452,27 +1452,19 @@ EXPORT_SYMBOL(genphy_read_status); static int gen10g_read_status(struct phy_device *phydev) { @@ -295,7 +295,7 @@ Signed-off-by: Russell King } --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -807,6 +807,8 @@ static inline const char *phydev_name(co +@@ -810,6 +810,8 @@ static inline const char *phydev_name(co void phy_attached_print(struct phy_device *phydev, const char *fmt, ...) __printf(2, 3); void phy_attached_info(struct phy_device *phydev); @@ -304,7 +304,7 @@ Signed-off-by: Russell King int genphy_config_init(struct phy_device *phydev); int genphy_setup_forced(struct phy_device *phydev); int genphy_restart_aneg(struct phy_device *phydev); -@@ -817,6 +819,16 @@ int genphy_read_status(struct phy_device +@@ -820,6 +822,16 @@ int genphy_read_status(struct phy_device int genphy_suspend(struct phy_device *phydev); int genphy_resume(struct phy_device *phydev); int genphy_soft_reset(struct phy_device *phydev); diff --git a/target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch b/target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch index 32922c1a9c..8de0793704 100644 --- a/target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch +++ b/target/linux/mvebu/patches-4.9/408-net-phy-hook-up-clause-45-autonegotiation-restart.patch @@ -37,7 +37,7 @@ Signed-off-by: Russell King /** * phy_aneg_done - return auto-negotiation status -@@ -1439,3 +1457,14 @@ int phy_ethtool_set_link_ksettings(struc +@@ -1442,3 +1460,14 @@ int phy_ethtool_set_link_ksettings(struc return phy_ethtool_ksettings_set(phydev, cmd); } EXPORT_SYMBOL(phy_ethtool_set_link_ksettings); diff --git a/target/linux/mvebu/patches-4.9/411-net-phy-split-out-PHY-speed-and-duplex-string-genera.patch b/target/linux/mvebu/patches-4.9/411-net-phy-split-out-PHY-speed-and-duplex-string-genera.patch index 4111b004d2..f4da7e92e0 100644 --- a/target/linux/mvebu/patches-4.9/411-net-phy-split-out-PHY-speed-and-duplex-string-genera.patch +++ b/target/linux/mvebu/patches-4.9/411-net-phy-split-out-PHY-speed-and-duplex-string-genera.patch @@ -91,7 +91,7 @@ Signed-off-by: Russell King { --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -642,6 +642,9 @@ struct phy_fixup { +@@ -645,6 +645,9 @@ struct phy_fixup { int (*run)(struct phy_device *phydev); }; diff --git a/target/linux/mvebu/patches-4.9/412-net-phy-move-phy_lookup_setting-and-guts-of-phy_supp.patch b/target/linux/mvebu/patches-4.9/412-net-phy-move-phy_lookup_setting-and-guts-of-phy_supp.patch index 02a8fa5748..051a9ed68e 100644 --- a/target/linux/mvebu/patches-4.9/412-net-phy-move-phy_lookup_setting-and-guts-of-phy_supp.patch +++ b/target/linux/mvebu/patches-4.9/412-net-phy-move-phy_lookup_setting-and-guts-of-phy_supp.patch @@ -305,7 +305,7 @@ Signed-off-by: Russell King { --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -645,6 +645,21 @@ struct phy_fixup { +@@ -648,6 +648,21 @@ struct phy_fixup { const char *phy_speed_to_str(int speed); const char *phy_duplex_to_str(unsigned int duplex); diff --git a/target/linux/mvebu/patches-4.9/415-phylink-add-phylink-infrastructure.patch b/target/linux/mvebu/patches-4.9/415-phylink-add-phylink-infrastructure.patch index fe3f7c2972..59e8aa81b7 100644 --- a/target/linux/mvebu/patches-4.9/415-phylink-add-phylink-infrastructure.patch +++ b/target/linux/mvebu/patches-4.9/415-phylink-add-phylink-infrastructure.patch @@ -1007,7 +1007,7 @@ Signed-off-by: Russell King struct sk_buff; /* -@@ -422,6 +423,7 @@ struct phy_device { +@@ -425,6 +426,7 @@ struct phy_device { struct mutex lock; diff --git a/target/linux/mvebu/patches-4.9/432-phy-marvell-88E1512-add-flow-control-support.patch b/target/linux/mvebu/patches-4.9/432-phy-marvell-88E1512-add-flow-control-support.patch index 407d23ab2e..f694b82af0 100644 --- a/target/linux/mvebu/patches-4.9/432-phy-marvell-88E1512-add-flow-control-support.patch +++ b/target/linux/mvebu/patches-4.9/432-phy-marvell-88E1512-add-flow-control-support.patch @@ -12,7 +12,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c -@@ -1679,7 +1679,8 @@ static struct phy_driver marvell_drivers +@@ -1678,7 +1678,8 @@ static struct phy_driver marvell_drivers .phy_id = MARVELL_PHY_ID_88E1510, .phy_id_mask = MARVELL_PHY_ID_MASK, .name = "Marvell 88E1510", diff --git a/target/linux/mvebu/patches-4.9/433-phy-marvell-88E1111-add-flow-control-support.patch b/target/linux/mvebu/patches-4.9/433-phy-marvell-88E1111-add-flow-control-support.patch index 9a165fdf48..cf525a29c3 100644 --- a/target/linux/mvebu/patches-4.9/433-phy-marvell-88E1111-add-flow-control-support.patch +++ b/target/linux/mvebu/patches-4.9/433-phy-marvell-88E1111-add-flow-control-support.patch @@ -11,7 +11,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c -@@ -1531,7 +1531,7 @@ static struct phy_driver marvell_drivers +@@ -1530,7 +1530,7 @@ static struct phy_driver marvell_drivers .phy_id = MARVELL_PHY_ID_88E1111, .phy_id_mask = MARVELL_PHY_ID_MASK, .name = "Marvell 88E1111", diff --git a/target/linux/mvebu/patches-4.9/434-phy-marvell-88E1540-add-flow-control-support.patch b/target/linux/mvebu/patches-4.9/434-phy-marvell-88E1540-add-flow-control-support.patch index e452f019d2..607d173fc2 100644 --- a/target/linux/mvebu/patches-4.9/434-phy-marvell-88E1540-add-flow-control-support.patch +++ b/target/linux/mvebu/patches-4.9/434-phy-marvell-88E1540-add-flow-control-support.patch @@ -11,7 +11,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c -@@ -1699,7 +1699,7 @@ static struct phy_driver marvell_drivers +@@ -1698,7 +1698,7 @@ static struct phy_driver marvell_drivers .phy_id = MARVELL_PHY_ID_88E1540, .phy_id_mask = MARVELL_PHY_ID_MASK, .name = "Marvell 88E1540", diff --git a/target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch b/target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch deleted file mode 100644 index a39b6949a8..0000000000 --- a/target/linux/mvebu/patches-4.9/435-net-phy-fix-marvell-phy-status-reading.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Russell King -Date: Fri, 23 Dec 2016 18:54:01 +0000 -Subject: [PATCH] net: phy: fix marvell phy status reading - -The Marvell driver incorrectly provides phydev->lp_advertising as the -logical and of the link partner's advert and our advert. This is -incorrect - this field is supposed to store the link parter's unmodified -advertisment. - -This allows ethtool to report the correct link partner auto-negotiation -status. - -Signed-off-by: Russell King ---- - ---- a/drivers/net/phy/marvell.c -+++ b/drivers/net/phy/marvell.c -@@ -1114,8 +1114,6 @@ static int marvell_read_status_page(stru - if (adv < 0) - return adv; - -- lpa &= adv; -- - if (status & MII_M1011_PHY_STATUS_FULLDUPLEX) - phydev->duplex = DUPLEX_FULL; - else diff --git a/target/linux/mvebu/patches-4.9/473-fix-marvell-phy-initialization-issues.patch b/target/linux/mvebu/patches-4.9/473-fix-marvell-phy-initialization-issues.patch index c48195150f..eca7e121e0 100644 --- a/target/linux/mvebu/patches-4.9/473-fix-marvell-phy-initialization-issues.patch +++ b/target/linux/mvebu/patches-4.9/473-fix-marvell-phy-initialization-issues.patch @@ -49,13 +49,3 @@ Signed-off-by: Marko Ratkaj i = phy_write(phydev, MII_MARVELL_PHY_PAGE, saved_page); if (ret == 0) ret = i; -@@ -1200,7 +1198,8 @@ static int marvell_read_status(struct ph - int err; - - /* Check the fiber mode first */ -- if (phydev->supported & SUPPORTED_FIBRE) { -+ if (phydev->supported & SUPPORTED_FIBRE && -+ phydev->interface != PHY_INTERFACE_MODE_SGMII) { - err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER); - if (err < 0) - goto error; -- cgit v1.2.3