diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2017-01-26 11:27:50 +0100 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2017-01-26 12:24:09 +0100 |
commit | f67b0276b6438c7ac29349bad43787cfc74a3937 (patch) | |
tree | 926ceb1c539e13dfff8614fdd8596657615a350c /target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch | |
parent | fa0ac030f538448fcb3e4aac5d158128e9df9560 (diff) | |
download | upstream-f67b0276b6438c7ac29349bad43787cfc74a3937.tar.gz upstream-f67b0276b6438c7ac29349bad43787cfc74a3937.tar.bz2 upstream-f67b0276b6438c7ac29349bad43787cfc74a3937.zip |
kernel: update Broadcom PHY drivers
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 <rafal@milecki.pl>
Diffstat (limited to 'target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch')
-rw-r--r-- | target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch | 125 |
1 files changed, 125 insertions, 0 deletions
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?= <rafal@milecki.pl> +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 <rafal@milecki.pl> +--- + +--- 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 |