From f67b0276b6438c7ac29349bad43787cfc74a3937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Thu, 26 Jan 2017 11:27:50 +0100 Subject: kernel: update Broadcom PHY drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds 4 patches, one per kernel version that was used for picking updates. This adds support for few new PHYs. Signed-off-by: Rafał Miłecki --- ...1-net-phy-update-Broadcom-drivers-to-v4.5.patch | 125 +++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch (limited to 'target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch') diff --git a/target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch b/target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch new file mode 100644 index 0000000000..222d126f69 --- /dev/null +++ b/target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch @@ -0,0 +1,125 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Subject: [PATCH 1/4] net: phy: update Broadcom drivers to v4.5 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Rafał Miłecki +--- + +--- a/drivers/net/phy/bcm7xxx.c ++++ b/drivers/net/phy/bcm7xxx.c +@@ -250,10 +250,6 @@ static int bcm7xxx_config_init(struct ph + phy_write(phydev, MII_BCM7XXX_AUX_MODE, MII_BCM7XX_64CLK_MDIO); + phy_read(phydev, MII_BCM7XXX_AUX_MODE); + +- /* Workaround only required for 100Mbits/sec capable PHYs */ +- if (phydev->supported & PHY_GBIT_FEATURES) +- return 0; +- + /* set shadow mode 2 */ + ret = phy_set_clr_bits(phydev, MII_BCM7XXX_TEST, + MII_BCM7XXX_SHD_MODE_2, MII_BCM7XXX_SHD_MODE_2); +@@ -270,7 +266,7 @@ static int bcm7xxx_config_init(struct ph + phy_write(phydev, MII_BCM7XXX_100TX_FALSE_CAR, 0x7555); + + /* reset shadow mode 2 */ +- ret = phy_set_clr_bits(phydev, MII_BCM7XXX_TEST, MII_BCM7XXX_SHD_MODE_2, 0); ++ ret = phy_set_clr_bits(phydev, MII_BCM7XXX_TEST, 0, MII_BCM7XXX_SHD_MODE_2); + if (ret < 0) + return ret; + +@@ -307,11 +303,6 @@ static int bcm7xxx_suspend(struct phy_de + return 0; + } + +-static int bcm7xxx_dummy_config_init(struct phy_device *phydev) +-{ +- return 0; +-} +- + #define BCM7XXX_28NM_GPHY(_oui, _name) \ + { \ + .phy_id = (_oui), \ +@@ -338,7 +329,7 @@ static struct phy_driver bcm7xxx_driver[ + .phy_id = PHY_ID_BCM7425, + .phy_id_mask = 0xfffffff0, + .name = "Broadcom BCM7425", +- .features = PHY_GBIT_FEATURES | ++ .features = PHY_BASIC_FEATURES | + SUPPORTED_Pause | SUPPORTED_Asym_Pause, + .flags = PHY_IS_INTERNAL, + .config_init = bcm7xxx_config_init, +@@ -351,7 +342,7 @@ static struct phy_driver bcm7xxx_driver[ + .phy_id = PHY_ID_BCM7429, + .phy_id_mask = 0xfffffff0, + .name = "Broadcom BCM7429", +- .features = PHY_GBIT_FEATURES | ++ .features = PHY_BASIC_FEATURES | + SUPPORTED_Pause | SUPPORTED_Asym_Pause, + .flags = PHY_IS_INTERNAL, + .config_init = bcm7xxx_config_init, +@@ -361,31 +352,18 @@ static struct phy_driver bcm7xxx_driver[ + .resume = bcm7xxx_config_init, + .driver = { .owner = THIS_MODULE }, + }, { +- .phy_id = PHY_BCM_OUI_4, +- .phy_id_mask = 0xffff0000, +- .name = "Broadcom BCM7XXX 40nm", +- .features = PHY_GBIT_FEATURES | +- SUPPORTED_Pause | SUPPORTED_Asym_Pause, +- .flags = PHY_IS_INTERNAL, +- .config_init = bcm7xxx_config_init, +- .config_aneg = genphy_config_aneg, +- .read_status = genphy_read_status, +- .suspend = bcm7xxx_suspend, +- .resume = bcm7xxx_config_init, +- .driver = { .owner = THIS_MODULE }, +-}, { +- .phy_id = PHY_BCM_OUI_5, +- .phy_id_mask = 0xffffff00, +- .name = "Broadcom BCM7XXX 65nm", +- .features = PHY_BASIC_FEATURES | ++ .phy_id = PHY_ID_BCM7435, ++ .phy_id_mask = 0xfffffff0, ++ .name = "Broadcom BCM7435", ++ .features = PHY_BASIC_FEATURES | + SUPPORTED_Pause | SUPPORTED_Asym_Pause, +- .flags = PHY_IS_INTERNAL, +- .config_init = bcm7xxx_dummy_config_init, +- .config_aneg = genphy_config_aneg, +- .read_status = genphy_read_status, +- .suspend = bcm7xxx_suspend, +- .resume = bcm7xxx_config_init, +- .driver = { .owner = THIS_MODULE }, ++ .flags = PHY_IS_INTERNAL, ++ .config_init = bcm7xxx_config_init, ++ .config_aneg = genphy_config_aneg, ++ .read_status = genphy_read_status, ++ .suspend = bcm7xxx_suspend, ++ .resume = bcm7xxx_config_init, ++ .driver = { .owner = THIS_MODULE }, + } }; + + static struct mdio_device_id __maybe_unused bcm7xxx_tbl[] = { +@@ -395,9 +373,8 @@ static struct mdio_device_id __maybe_unu + { PHY_ID_BCM7425, 0xfffffff0, }, + { PHY_ID_BCM7429, 0xfffffff0, }, + { PHY_ID_BCM7439, 0xfffffff0, }, ++ { PHY_ID_BCM7435, 0xfffffff0, }, + { PHY_ID_BCM7445, 0xfffffff0, }, +- { PHY_BCM_OUI_4, 0xffff0000 }, +- { PHY_BCM_OUI_5, 0xffffff00 }, + { } + }; + +--- a/include/linux/brcmphy.h ++++ b/include/linux/brcmphy.h +@@ -26,6 +26,7 @@ + #define PHY_ID_BCM7366 0x600d8490 + #define PHY_ID_BCM7425 0x600d86b0 + #define PHY_ID_BCM7429 0x600d8730 ++#define PHY_ID_BCM7435 0x600d8750 + #define PHY_ID_BCM7439 0x600d8480 + #define PHY_ID_BCM7439_2 0xae025080 + #define PHY_ID_BCM7445 0x600d8510 -- cgit v1.2.3