diff options
author | Mathias Kresin <dev@kresin.me> | 2018-07-02 22:09:04 +0200 |
---|---|---|
committer | Mathias Kresin <dev@kresin.me> | 2018-07-04 01:19:05 +0200 |
commit | eccde89aa4764fd16b490e96e5dbbdb51cb0051b (patch) | |
tree | 4382655bae8555eb0537ca32c46fbaac19e96cab /target/linux/generic/pending-4.14/180-net-phy-at803x-add-support-for-AT8032.patch | |
parent | 89b59994eb44b5cd2fac594144c20c63fd05ef25 (diff) | |
download | upstream-eccde89aa4764fd16b490e96e5dbbdb51cb0051b.tar.gz upstream-eccde89aa4764fd16b490e96e5dbbdb51cb0051b.tar.bz2 upstream-eccde89aa4764fd16b490e96e5dbbdb51cb0051b.zip |
kernel: fix AT8032 PHY phy id mask
Don't mask bit 4 of the AT8022 phy id. If bit 4 of the AT8022 phy id
(0x004dd023) is masked, it will match the phy id of the AR8327 switch
(0x004dd033) as well.
It results in applied at803x driver settings/callbacks, which will at
least limit the AR8327 phys to 100MBit operation instead of the possible
1000MBit.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Diffstat (limited to 'target/linux/generic/pending-4.14/180-net-phy-at803x-add-support-for-AT8032.patch')
-rw-r--r-- | target/linux/generic/pending-4.14/180-net-phy-at803x-add-support-for-AT8032.patch | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/target/linux/generic/pending-4.14/180-net-phy-at803x-add-support-for-AT8032.patch b/target/linux/generic/pending-4.14/180-net-phy-at803x-add-support-for-AT8032.patch index 86a03f2256..828b160be9 100644 --- a/target/linux/generic/pending-4.14/180-net-phy-at803x-add-support-for-AT8032.patch +++ b/target/linux/generic/pending-4.14/180-net-phy-at803x-add-support-for-AT8032.patch @@ -8,15 +8,18 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c -@@ -62,6 +62,7 @@ +@@ -62,8 +62,10 @@ #define ATH8030_PHY_ID 0x004dd076 #define ATH8031_PHY_ID 0x004dd074 +#define ATH8032_PHY_ID 0x004dd023 #define ATH8035_PHY_ID 0x004dd072 #define AT803X_PHY_ID_MASK 0xffffffef ++#define AT8032_PHY_ID_MASK 0xffffffff -@@ -256,7 +257,8 @@ static int at803x_probe(struct phy_devic + MODULE_DESCRIPTION("Atheros 803x PHY driver"); + MODULE_AUTHOR("Matus Ujhelyi"); +@@ -256,7 +258,8 @@ static int at803x_probe(struct phy_devic if (!priv) return -ENOMEM; @@ -26,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> goto does_not_require_reset_workaround; gpiod_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW); -@@ -332,7 +334,7 @@ static void at803x_link_change_notify(st +@@ -332,7 +335,7 @@ static void at803x_link_change_notify(st struct at803x_priv *priv = phydev->priv; /* @@ -35,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> * signalled. This is necessary to circumvent a hardware bug that * occurs when the cable is unplugged while TX packets are pending * in the FIFO. In such cases, the FIFO enters an error mode it -@@ -444,6 +446,24 @@ static struct phy_driver at803x_driver[] +@@ -444,6 +447,24 @@ static struct phy_driver at803x_driver[] .aneg_done = at803x_aneg_done, .ack_interrupt = &at803x_ack_interrupt, .config_intr = &at803x_config_intr, @@ -43,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> + /* ATHEROS 8032 */ + .phy_id = ATH8032_PHY_ID, + .name = "Atheros 8032 ethernet", -+ .phy_id_mask = 0xffffffef, ++ .phy_id_mask = AT8032_PHY_ID_MASK, + .probe = at803x_probe, + .config_init = at803x_config_init, + .link_change_notify = at803x_link_change_notify, @@ -60,11 +63,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> } }; module_phy_driver(at803x_driver); -@@ -451,6 +471,7 @@ module_phy_driver(at803x_driver); +@@ -451,6 +472,7 @@ module_phy_driver(at803x_driver); static struct mdio_device_id __maybe_unused atheros_tbl[] = { { ATH8030_PHY_ID, AT803X_PHY_ID_MASK }, { ATH8031_PHY_ID, AT803X_PHY_ID_MASK }, -+ { ATH8032_PHY_ID, AT803X_PHY_ID_MASK }, ++ { ATH8032_PHY_ID, AT8032_PHY_ID_MASK }, { ATH8035_PHY_ID, AT803X_PHY_ID_MASK }, { } }; |