* FAILED: patch "[PATCH] net: phy: marvell: fix detection of PHY on Topaz switches" failed to apply to 5.4-stable tree
@ 2021-04-18 12:17 gregkh
2021-04-18 12:23 ` gregkh
0 siblings, 1 reply; 10+ messages in thread
From: gregkh @ 2021-04-18 12:17 UTC (permalink / raw)
To: pali, andrew, davem, kabel; +Cc: stable
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 1fe976d308acb6374c899a4ee8025a0a016e453e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Mon, 12 Apr 2021 18:57:39 +0200
Subject: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
sensor reading"), Linux reports the temperature of Topaz hwmon as
constant -75°C.
This is because switches from the Topaz family (88E6141 / 88E6341) have
the address of the temperature sensor register different from Peridot.
This address is instead compatible with 88E1510 PHYs, as was used for
Topaz before the above mentioned commit.
Create a new mapping table between switch family and PHY ID for families
which don't have a model number. And define PHY IDs for Topaz and Peridot
families.
Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
The only difference from Peridot's PHY driver is the HWMON probing
method.
Prior this change Topaz's internal PHY is detected by kernel as:
PHY [...] driver [Marvell 88E6390] (irq=63)
And afterwards as:
PHY [...] driver [Marvell 88E6341 Family] (irq=63)
Signed-off-by: Pali Rohár <pali@kernel.org>
BugLink: https://github.com/globalscaletechnologies/linux/issues/1
Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
Reviewed-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 903d619e08ed..e08bf9377140 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -3026,10 +3026,17 @@ static int mv88e6xxx_setup(struct dsa_switch *ds)
return err;
}
+/* prod_id for switch families which do not have a PHY model number */
+static const u16 family_prod_id_table[] = {
+ [MV88E6XXX_FAMILY_6341] = MV88E6XXX_PORT_SWITCH_ID_PROD_6341,
+ [MV88E6XXX_FAMILY_6390] = MV88E6XXX_PORT_SWITCH_ID_PROD_6390,
+};
+
static int mv88e6xxx_mdio_read(struct mii_bus *bus, int phy, int reg)
{
struct mv88e6xxx_mdio_bus *mdio_bus = bus->priv;
struct mv88e6xxx_chip *chip = mdio_bus->chip;
+ u16 prod_id;
u16 val;
int err;
@@ -3040,23 +3047,12 @@ static int mv88e6xxx_mdio_read(struct mii_bus *bus, int phy, int reg)
err = chip->info->ops->phy_read(chip, bus, phy, reg, &val);
mv88e6xxx_reg_unlock(chip);
- if (reg == MII_PHYSID2) {
- /* Some internal PHYs don't have a model number. */
- if (chip->info->family != MV88E6XXX_FAMILY_6165)
- /* Then there is the 6165 family. It gets is
- * PHYs correct. But it can also have two
- * SERDES interfaces in the PHY address
- * space. And these don't have a model
- * number. But they are not PHYs, so we don't
- * want to give them something a PHY driver
- * will recognise.
- *
- * Use the mv88e6390 family model number
- * instead, for anything which really could be
- * a PHY,
- */
- if (!(val & 0x3f0))
- val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6390 >> 4;
+ /* Some internal PHYs don't have a model number. */
+ if (reg == MII_PHYSID2 && !(val & 0x3f0) &&
+ chip->info->family < ARRAY_SIZE(family_prod_id_table)) {
+ prod_id = family_prod_id_table[chip->info->family];
+ if (prod_id)
+ val |= prod_id >> 4;
}
return err ? err : val;
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index e26a5d663f8a..8018ddf7f316 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -3021,9 +3021,34 @@ static struct phy_driver marvell_drivers[] = {
.get_stats = marvell_get_stats,
},
{
- .phy_id = MARVELL_PHY_ID_88E6390,
+ .phy_id = MARVELL_PHY_ID_88E6341_FAMILY,
.phy_id_mask = MARVELL_PHY_ID_MASK,
- .name = "Marvell 88E6390",
+ .name = "Marvell 88E6341 Family",
+ /* PHY_GBIT_FEATURES */
+ .flags = PHY_POLL_CABLE_TEST,
+ .probe = m88e1510_probe,
+ .config_init = marvell_config_init,
+ .config_aneg = m88e6390_config_aneg,
+ .read_status = marvell_read_status,
+ .config_intr = marvell_config_intr,
+ .handle_interrupt = marvell_handle_interrupt,
+ .resume = genphy_resume,
+ .suspend = genphy_suspend,
+ .read_page = marvell_read_page,
+ .write_page = marvell_write_page,
+ .get_sset_count = marvell_get_sset_count,
+ .get_strings = marvell_get_strings,
+ .get_stats = marvell_get_stats,
+ .get_tunable = m88e1540_get_tunable,
+ .set_tunable = m88e1540_set_tunable,
+ .cable_test_start = marvell_vct7_cable_test_start,
+ .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
+ .cable_test_get_status = marvell_vct7_cable_test_get_status,
+ },
+ {
+ .phy_id = MARVELL_PHY_ID_88E6390_FAMILY,
+ .phy_id_mask = MARVELL_PHY_ID_MASK,
+ .name = "Marvell 88E6390 Family",
/* PHY_GBIT_FEATURES */
.flags = PHY_POLL_CABLE_TEST,
.probe = m88e6390_probe,
@@ -3107,7 +3132,8 @@ static struct mdio_device_id __maybe_unused marvell_tbl[] = {
{ MARVELL_PHY_ID_88E1540, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1545, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E3016, MARVELL_PHY_ID_MASK },
- { MARVELL_PHY_ID_88E6390, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E6341_FAMILY, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E6390_FAMILY, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1340S, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1548P, MARVELL_PHY_ID_MASK },
{ }
diff --git a/include/linux/marvell_phy.h b/include/linux/marvell_phy.h
index 52b1610eae68..c544b70dfbd2 100644
--- a/include/linux/marvell_phy.h
+++ b/include/linux/marvell_phy.h
@@ -28,11 +28,12 @@
/* Marvel 88E1111 in Finisar SFP module with modified PHY ID */
#define MARVELL_PHY_ID_88E1111_FINISAR 0x01ff0cc0
-/* The MV88e6390 Ethernet switch contains embedded PHYs. These PHYs do
+/* These Ethernet switch families contain embedded PHYs, but they do
* not have a model ID. So the switch driver traps reads to the ID2
* register and returns the switch family ID
*/
-#define MARVELL_PHY_ID_88E6390 0x01410f90
+#define MARVELL_PHY_ID_88E6341_FAMILY 0x01410f41
+#define MARVELL_PHY_ID_88E6390_FAMILY 0x01410f90
#define MARVELL_PHY_FAMILY_ID(id) ((id) >> 4)
^ permalink raw reply related [flat|nested] 10+ messages in thread
* FAILED: patch "[PATCH] net: phy: marvell: fix detection of PHY on Topaz switches" failed to apply to 5.4-stable tree
@ 2021-04-18 12:23 ` gregkh
2021-04-18 13:13 ` [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches Pali Rohár
0 siblings, 1 reply; 10+ messages in thread
From: gregkh @ 2021-04-18 12:23 UTC (permalink / raw)
To: pali, andrew, davem, kabel; +Cc: stable
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 1fe976d308acb6374c899a4ee8025a0a016e453e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Mon, 12 Apr 2021 18:57:39 +0200
Subject: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
sensor reading"), Linux reports the temperature of Topaz hwmon as
constant -75°C.
This is because switches from the Topaz family (88E6141 / 88E6341) have
the address of the temperature sensor register different from Peridot.
This address is instead compatible with 88E1510 PHYs, as was used for
Topaz before the above mentioned commit.
Create a new mapping table between switch family and PHY ID for families
which don't have a model number. And define PHY IDs for Topaz and Peridot
families.
Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
The only difference from Peridot's PHY driver is the HWMON probing
method.
Prior this change Topaz's internal PHY is detected by kernel as:
PHY [...] driver [Marvell 88E6390] (irq=63)
And afterwards as:
PHY [...] driver [Marvell 88E6341 Family] (irq=63)
Signed-off-by: Pali Rohár <pali@kernel.org>
BugLink: https://github.com/globalscaletechnologies/linux/issues/1
Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
Reviewed-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 903d619e08ed..e08bf9377140 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -3026,10 +3026,17 @@ static int mv88e6xxx_setup(struct dsa_switch *ds)
return err;
}
+/* prod_id for switch families which do not have a PHY model number */
+static const u16 family_prod_id_table[] = {
+ [MV88E6XXX_FAMILY_6341] = MV88E6XXX_PORT_SWITCH_ID_PROD_6341,
+ [MV88E6XXX_FAMILY_6390] = MV88E6XXX_PORT_SWITCH_ID_PROD_6390,
+};
+
static int mv88e6xxx_mdio_read(struct mii_bus *bus, int phy, int reg)
{
struct mv88e6xxx_mdio_bus *mdio_bus = bus->priv;
struct mv88e6xxx_chip *chip = mdio_bus->chip;
+ u16 prod_id;
u16 val;
int err;
@@ -3040,23 +3047,12 @@ static int mv88e6xxx_mdio_read(struct mii_bus *bus, int phy, int reg)
err = chip->info->ops->phy_read(chip, bus, phy, reg, &val);
mv88e6xxx_reg_unlock(chip);
- if (reg == MII_PHYSID2) {
- /* Some internal PHYs don't have a model number. */
- if (chip->info->family != MV88E6XXX_FAMILY_6165)
- /* Then there is the 6165 family. It gets is
- * PHYs correct. But it can also have two
- * SERDES interfaces in the PHY address
- * space. And these don't have a model
- * number. But they are not PHYs, so we don't
- * want to give them something a PHY driver
- * will recognise.
- *
- * Use the mv88e6390 family model number
- * instead, for anything which really could be
- * a PHY,
- */
- if (!(val & 0x3f0))
- val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6390 >> 4;
+ /* Some internal PHYs don't have a model number. */
+ if (reg == MII_PHYSID2 && !(val & 0x3f0) &&
+ chip->info->family < ARRAY_SIZE(family_prod_id_table)) {
+ prod_id = family_prod_id_table[chip->info->family];
+ if (prod_id)
+ val |= prod_id >> 4;
}
return err ? err : val;
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index e26a5d663f8a..8018ddf7f316 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -3021,9 +3021,34 @@ static struct phy_driver marvell_drivers[] = {
.get_stats = marvell_get_stats,
},
{
- .phy_id = MARVELL_PHY_ID_88E6390,
+ .phy_id = MARVELL_PHY_ID_88E6341_FAMILY,
.phy_id_mask = MARVELL_PHY_ID_MASK,
- .name = "Marvell 88E6390",
+ .name = "Marvell 88E6341 Family",
+ /* PHY_GBIT_FEATURES */
+ .flags = PHY_POLL_CABLE_TEST,
+ .probe = m88e1510_probe,
+ .config_init = marvell_config_init,
+ .config_aneg = m88e6390_config_aneg,
+ .read_status = marvell_read_status,
+ .config_intr = marvell_config_intr,
+ .handle_interrupt = marvell_handle_interrupt,
+ .resume = genphy_resume,
+ .suspend = genphy_suspend,
+ .read_page = marvell_read_page,
+ .write_page = marvell_write_page,
+ .get_sset_count = marvell_get_sset_count,
+ .get_strings = marvell_get_strings,
+ .get_stats = marvell_get_stats,
+ .get_tunable = m88e1540_get_tunable,
+ .set_tunable = m88e1540_set_tunable,
+ .cable_test_start = marvell_vct7_cable_test_start,
+ .cable_test_tdr_start = marvell_vct5_cable_test_tdr_start,
+ .cable_test_get_status = marvell_vct7_cable_test_get_status,
+ },
+ {
+ .phy_id = MARVELL_PHY_ID_88E6390_FAMILY,
+ .phy_id_mask = MARVELL_PHY_ID_MASK,
+ .name = "Marvell 88E6390 Family",
/* PHY_GBIT_FEATURES */
.flags = PHY_POLL_CABLE_TEST,
.probe = m88e6390_probe,
@@ -3107,7 +3132,8 @@ static struct mdio_device_id __maybe_unused marvell_tbl[] = {
{ MARVELL_PHY_ID_88E1540, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1545, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E3016, MARVELL_PHY_ID_MASK },
- { MARVELL_PHY_ID_88E6390, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E6341_FAMILY, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E6390_FAMILY, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1340S, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1548P, MARVELL_PHY_ID_MASK },
{ }
diff --git a/include/linux/marvell_phy.h b/include/linux/marvell_phy.h
index 52b1610eae68..c544b70dfbd2 100644
--- a/include/linux/marvell_phy.h
+++ b/include/linux/marvell_phy.h
@@ -28,11 +28,12 @@
/* Marvel 88E1111 in Finisar SFP module with modified PHY ID */
#define MARVELL_PHY_ID_88E1111_FINISAR 0x01ff0cc0
-/* The MV88e6390 Ethernet switch contains embedded PHYs. These PHYs do
+/* These Ethernet switch families contain embedded PHYs, but they do
* not have a model ID. So the switch driver traps reads to the ID2
* register and returns the switch family ID
*/
-#define MARVELL_PHY_ID_88E6390 0x01410f90
+#define MARVELL_PHY_ID_88E6341_FAMILY 0x01410f41
+#define MARVELL_PHY_ID_88E6390_FAMILY 0x01410f90
#define MARVELL_PHY_FAMILY_ID(id) ((id) >> 4)
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
2021-04-18 12:23 ` gregkh
@ 2021-04-18 13:13 ` Pali Rohár
2021-04-19 12:05 ` Greg KH
0 siblings, 1 reply; 10+ messages in thread
From: Pali Rohár @ 2021-04-18 13:13 UTC (permalink / raw)
To: stable; +Cc: andrew, davem, kabel, gregkh
commit 1fe976d308acb6374c899a4ee8025a0a016e453e upstream.
Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
sensor reading"), Linux reports the temperature of Topaz hwmon as
constant -75°C.
This is because switches from the Topaz family (88E6141 / 88E6341) have
the address of the temperature sensor register different from Peridot.
This address is instead compatible with 88E1510 PHYs, as was used for
Topaz before the above mentioned commit.
Create a new mapping table between switch family and PHY ID for families
which don't have a model number. And define PHY IDs for Topaz and Peridot
families.
Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
The only difference from Peridot's PHY driver is the HWMON probing
method.
Prior this change Topaz's internal PHY is detected by kernel as:
PHY [...] driver [Marvell 88E6390] (irq=63)
And afterwards as:
PHY [...] driver [Marvell 88E6341 Family] (irq=63)
Signed-off-by: Pali Rohár <pali@kernel.org>
BugLink: https://github.com/globalscaletechnologies/linux/issues/1
Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
Reviewed-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
[pali: Backported to 5.4 version]
---
This patch is backported to 5.4 version. Tested on Turris Mox with Topaz switch.
---
drivers/net/dsa/mv88e6xxx/chip.c | 30 +++++++++++++-----------------
drivers/net/phy/marvell.c | 29 ++++++++++++++++++++++++++---
include/linux/marvell_phy.h | 5 +++--
3 files changed, 42 insertions(+), 22 deletions(-)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 1af09fd3fed1..446eb06e50b4 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2766,10 +2766,17 @@ static int mv88e6xxx_setup(struct dsa_switch *ds)
return err;
}
+/* prod_id for switch families which do not have a PHY model number */
+static const u16 family_prod_id_table[] = {
+ [MV88E6XXX_FAMILY_6341] = MV88E6XXX_PORT_SWITCH_ID_PROD_6341,
+ [MV88E6XXX_FAMILY_6390] = MV88E6XXX_PORT_SWITCH_ID_PROD_6390,
+};
+
static int mv88e6xxx_mdio_read(struct mii_bus *bus, int phy, int reg)
{
struct mv88e6xxx_mdio_bus *mdio_bus = bus->priv;
struct mv88e6xxx_chip *chip = mdio_bus->chip;
+ u16 prod_id;
u16 val;
int err;
@@ -2780,23 +2787,12 @@ static int mv88e6xxx_mdio_read(struct mii_bus *bus, int phy, int reg)
err = chip->info->ops->phy_read(chip, bus, phy, reg, &val);
mv88e6xxx_reg_unlock(chip);
- if (reg == MII_PHYSID2) {
- /* Some internal PHYs don't have a model number. */
- if (chip->info->family != MV88E6XXX_FAMILY_6165)
- /* Then there is the 6165 family. It gets is
- * PHYs correct. But it can also have two
- * SERDES interfaces in the PHY address
- * space. And these don't have a model
- * number. But they are not PHYs, so we don't
- * want to give them something a PHY driver
- * will recognise.
- *
- * Use the mv88e6390 family model number
- * instead, for anything which really could be
- * a PHY,
- */
- if (!(val & 0x3f0))
- val |= MV88E6XXX_PORT_SWITCH_ID_PROD_6390 >> 4;
+ /* Some internal PHYs don't have a model number. */
+ if (reg == MII_PHYSID2 && !(val & 0x3f0) &&
+ chip->info->family < ARRAY_SIZE(family_prod_id_table)) {
+ prod_id = family_prod_id_table[chip->info->family];
+ if (prod_id)
+ val |= prod_id >> 4;
}
return err ? err : val;
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 91cf1d167263..9dbe625ad447 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -2401,9 +2401,31 @@ static struct phy_driver marvell_drivers[] = {
.get_stats = marvell_get_stats,
},
{
- .phy_id = MARVELL_PHY_ID_88E6390,
+ .phy_id = MARVELL_PHY_ID_88E6341_FAMILY,
.phy_id_mask = MARVELL_PHY_ID_MASK,
- .name = "Marvell 88E6390",
+ .name = "Marvell 88E6341 Family",
+ /* PHY_GBIT_FEATURES */
+ .probe = m88e1510_probe,
+ .config_init = &marvell_config_init,
+ .config_aneg = &m88e6390_config_aneg,
+ .read_status = &marvell_read_status,
+ .ack_interrupt = &marvell_ack_interrupt,
+ .config_intr = &marvell_config_intr,
+ .did_interrupt = &m88e1121_did_interrupt,
+ .resume = &genphy_resume,
+ .suspend = &genphy_suspend,
+ .read_page = marvell_read_page,
+ .write_page = marvell_write_page,
+ .get_sset_count = marvell_get_sset_count,
+ .get_strings = marvell_get_strings,
+ .get_stats = marvell_get_stats,
+ .get_tunable = m88e1540_get_tunable,
+ .set_tunable = m88e1540_set_tunable,
+ },
+ {
+ .phy_id = MARVELL_PHY_ID_88E6390_FAMILY,
+ .phy_id_mask = MARVELL_PHY_ID_MASK,
+ .name = "Marvell 88E6390 Family",
/* PHY_GBIT_FEATURES */
.probe = m88e6390_probe,
.config_init = &marvell_config_init,
@@ -2441,7 +2463,8 @@ static struct mdio_device_id __maybe_unused marvell_tbl[] = {
{ MARVELL_PHY_ID_88E1540, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1545, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E3016, MARVELL_PHY_ID_MASK },
- { MARVELL_PHY_ID_88E6390, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E6341_FAMILY, MARVELL_PHY_ID_MASK },
+ { MARVELL_PHY_ID_88E6390_FAMILY, MARVELL_PHY_ID_MASK },
{ }
};
diff --git a/include/linux/marvell_phy.h b/include/linux/marvell_phy.h
index af6b11d4d673..1847a0784243 100644
--- a/include/linux/marvell_phy.h
+++ b/include/linux/marvell_phy.h
@@ -23,11 +23,12 @@
#define MARVELL_PHY_ID_88X3310 0x002b09a0
#define MARVELL_PHY_ID_88E2110 0x002b09b0
-/* The MV88e6390 Ethernet switch contains embedded PHYs. These PHYs do
+/* These Ethernet switch families contain embedded PHYs, but they do
* not have a model ID. So the switch driver traps reads to the ID2
* register and returns the switch family ID
*/
-#define MARVELL_PHY_ID_88E6390 0x01410f90
+#define MARVELL_PHY_ID_88E6341_FAMILY 0x01410f41
+#define MARVELL_PHY_ID_88E6390_FAMILY 0x01410f90
#define MARVELL_PHY_FAMILY_ID(id) ((id) >> 4)
--
2.20.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
2021-04-18 13:13 ` [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches Pali Rohár
@ 2021-04-19 12:05 ` Greg KH
2021-04-19 12:08 ` Pali Rohár
0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2021-04-19 12:05 UTC (permalink / raw)
To: Pali Rohár; +Cc: stable, andrew, davem, kabel
On Sun, Apr 18, 2021 at 03:13:44PM +0200, Pali Rohár wrote:
> commit 1fe976d308acb6374c899a4ee8025a0a016e453e upstream.
>
> Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
> sensor reading"), Linux reports the temperature of Topaz hwmon as
> constant -75°C.
>
> This is because switches from the Topaz family (88E6141 / 88E6341) have
> the address of the temperature sensor register different from Peridot.
>
> This address is instead compatible with 88E1510 PHYs, as was used for
> Topaz before the above mentioned commit.
>
> Create a new mapping table between switch family and PHY ID for families
> which don't have a model number. And define PHY IDs for Topaz and Peridot
> families.
>
> Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
> The only difference from Peridot's PHY driver is the HWMON probing
> method.
>
> Prior this change Topaz's internal PHY is detected by kernel as:
>
> PHY [...] driver [Marvell 88E6390] (irq=63)
>
> And afterwards as:
>
> PHY [...] driver [Marvell 88E6341 Family] (irq=63)
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
> BugLink: https://github.com/globalscaletechnologies/linux/issues/1
> Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
> Reviewed-by: Marek Behún <kabel@kernel.org>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> [pali: Backported to 5.4 version]
> ---
> This patch is backported to 5.4 version. Tested on Turris Mox with Topaz switch.
What about a 5.10 version?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
2021-04-19 12:05 ` Greg KH
@ 2021-04-19 12:08 ` Pali Rohár
2021-04-19 12:35 ` Greg KH
0 siblings, 1 reply; 10+ messages in thread
From: Pali Rohár @ 2021-04-19 12:08 UTC (permalink / raw)
To: Greg KH; +Cc: stable, andrew, davem, kabel
On Monday 19 April 2021 14:05:18 Greg KH wrote:
> On Sun, Apr 18, 2021 at 03:13:44PM +0200, Pali Rohár wrote:
> > commit 1fe976d308acb6374c899a4ee8025a0a016e453e upstream.
> >
> > Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
> > sensor reading"), Linux reports the temperature of Topaz hwmon as
> > constant -75°C.
> >
> > This is because switches from the Topaz family (88E6141 / 88E6341) have
> > the address of the temperature sensor register different from Peridot.
> >
> > This address is instead compatible with 88E1510 PHYs, as was used for
> > Topaz before the above mentioned commit.
> >
> > Create a new mapping table between switch family and PHY ID for families
> > which don't have a model number. And define PHY IDs for Topaz and Peridot
> > families.
> >
> > Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
> > The only difference from Peridot's PHY driver is the HWMON probing
> > method.
> >
> > Prior this change Topaz's internal PHY is detected by kernel as:
> >
> > PHY [...] driver [Marvell 88E6390] (irq=63)
> >
> > And afterwards as:
> >
> > PHY [...] driver [Marvell 88E6341 Family] (irq=63)
> >
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > BugLink: https://github.com/globalscaletechnologies/linux/issues/1
> > Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
> > Reviewed-by: Marek Behún <kabel@kernel.org>
> > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> > Signed-off-by: David S. Miller <davem@davemloft.net>
> > [pali: Backported to 5.4 version]
> > ---
> > This patch is backported to 5.4 version. Tested on Turris Mox with Topaz switch.
>
> What about a 5.10 version?
Is manual backport required also for 5.10? I got email that automatic
backporting failed only for 4.19 and 5.4 versions.
> thanks,
>
> greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
2021-04-19 12:08 ` Pali Rohár
@ 2021-04-19 12:35 ` Greg KH
2021-04-19 12:47 ` Pali Rohár
0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2021-04-19 12:35 UTC (permalink / raw)
To: Pali Rohár; +Cc: stable, andrew, davem, kabel
On Mon, Apr 19, 2021 at 02:08:56PM +0200, Pali Rohár wrote:
> On Monday 19 April 2021 14:05:18 Greg KH wrote:
> > On Sun, Apr 18, 2021 at 03:13:44PM +0200, Pali Rohár wrote:
> > > commit 1fe976d308acb6374c899a4ee8025a0a016e453e upstream.
> > >
> > > Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
> > > sensor reading"), Linux reports the temperature of Topaz hwmon as
> > > constant -75°C.
> > >
> > > This is because switches from the Topaz family (88E6141 / 88E6341) have
> > > the address of the temperature sensor register different from Peridot.
> > >
> > > This address is instead compatible with 88E1510 PHYs, as was used for
> > > Topaz before the above mentioned commit.
> > >
> > > Create a new mapping table between switch family and PHY ID for families
> > > which don't have a model number. And define PHY IDs for Topaz and Peridot
> > > families.
> > >
> > > Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
> > > The only difference from Peridot's PHY driver is the HWMON probing
> > > method.
> > >
> > > Prior this change Topaz's internal PHY is detected by kernel as:
> > >
> > > PHY [...] driver [Marvell 88E6390] (irq=63)
> > >
> > > And afterwards as:
> > >
> > > PHY [...] driver [Marvell 88E6341 Family] (irq=63)
> > >
> > > Signed-off-by: Pali Rohár <pali@kernel.org>
> > > BugLink: https://github.com/globalscaletechnologies/linux/issues/1
> > > Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
> > > Reviewed-by: Marek Behún <kabel@kernel.org>
> > > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> > > Signed-off-by: David S. Miller <davem@davemloft.net>
> > > [pali: Backported to 5.4 version]
> > > ---
> > > This patch is backported to 5.4 version. Tested on Turris Mox with Topaz switch.
> >
> > What about a 5.10 version?
>
> Is manual backport required also for 5.10? I got email that automatic
> backporting failed only for 4.19 and 5.4 versions.
It also failed for 5.10.y, so yes, if you could provide a version for
that tree it would be most appreciated.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
2021-04-19 12:35 ` Greg KH
@ 2021-04-19 12:47 ` Pali Rohár
2021-04-19 12:56 ` Greg KH
0 siblings, 1 reply; 10+ messages in thread
From: Pali Rohár @ 2021-04-19 12:47 UTC (permalink / raw)
To: Greg KH; +Cc: stable, andrew, davem, kabel
On Monday 19 April 2021 14:35:19 Greg KH wrote:
> On Mon, Apr 19, 2021 at 02:08:56PM +0200, Pali Rohár wrote:
> > On Monday 19 April 2021 14:05:18 Greg KH wrote:
> > > On Sun, Apr 18, 2021 at 03:13:44PM +0200, Pali Rohár wrote:
> > > > commit 1fe976d308acb6374c899a4ee8025a0a016e453e upstream.
> > > >
> > > > Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
> > > > sensor reading"), Linux reports the temperature of Topaz hwmon as
> > > > constant -75°C.
> > > >
> > > > This is because switches from the Topaz family (88E6141 / 88E6341) have
> > > > the address of the temperature sensor register different from Peridot.
> > > >
> > > > This address is instead compatible with 88E1510 PHYs, as was used for
> > > > Topaz before the above mentioned commit.
> > > >
> > > > Create a new mapping table between switch family and PHY ID for families
> > > > which don't have a model number. And define PHY IDs for Topaz and Peridot
> > > > families.
> > > >
> > > > Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
> > > > The only difference from Peridot's PHY driver is the HWMON probing
> > > > method.
> > > >
> > > > Prior this change Topaz's internal PHY is detected by kernel as:
> > > >
> > > > PHY [...] driver [Marvell 88E6390] (irq=63)
> > > >
> > > > And afterwards as:
> > > >
> > > > PHY [...] driver [Marvell 88E6341 Family] (irq=63)
> > > >
> > > > Signed-off-by: Pali Rohár <pali@kernel.org>
> > > > BugLink: https://github.com/globalscaletechnologies/linux/issues/1
> > > > Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
> > > > Reviewed-by: Marek Behún <kabel@kernel.org>
> > > > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> > > > Signed-off-by: David S. Miller <davem@davemloft.net>
> > > > [pali: Backported to 5.4 version]
> > > > ---
> > > > This patch is backported to 5.4 version. Tested on Turris Mox with Topaz switch.
> > >
> > > What about a 5.10 version?
> >
> > Is manual backport required also for 5.10? I got email that automatic
> > backporting failed only for 4.19 and 5.4 versions.
>
> It also failed for 5.10.y, so yes, if you could provide a version for
> that tree it would be most appreciated.
Ok! I will prepare it, no problem. I just did not know that it failed
also for 5.10 as I have not received any email about it.
> thanks,
>
> greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
2021-04-19 12:47 ` Pali Rohár
@ 2021-04-19 12:56 ` Greg KH
2021-04-19 13:49 ` Pali Rohár
2021-04-19 14:31 ` Sasha Levin
0 siblings, 2 replies; 10+ messages in thread
From: Greg KH @ 2021-04-19 12:56 UTC (permalink / raw)
To: Pali Rohár; +Cc: stable, andrew, davem, kabel
On Mon, Apr 19, 2021 at 02:47:11PM +0200, Pali Rohár wrote:
> On Monday 19 April 2021 14:35:19 Greg KH wrote:
> > On Mon, Apr 19, 2021 at 02:08:56PM +0200, Pali Rohár wrote:
> > > On Monday 19 April 2021 14:05:18 Greg KH wrote:
> > > > On Sun, Apr 18, 2021 at 03:13:44PM +0200, Pali Rohár wrote:
> > > > > commit 1fe976d308acb6374c899a4ee8025a0a016e453e upstream.
> > > > >
> > > > > Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
> > > > > sensor reading"), Linux reports the temperature of Topaz hwmon as
> > > > > constant -75°C.
> > > > >
> > > > > This is because switches from the Topaz family (88E6141 / 88E6341) have
> > > > > the address of the temperature sensor register different from Peridot.
> > > > >
> > > > > This address is instead compatible with 88E1510 PHYs, as was used for
> > > > > Topaz before the above mentioned commit.
> > > > >
> > > > > Create a new mapping table between switch family and PHY ID for families
> > > > > which don't have a model number. And define PHY IDs for Topaz and Peridot
> > > > > families.
> > > > >
> > > > > Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
> > > > > The only difference from Peridot's PHY driver is the HWMON probing
> > > > > method.
> > > > >
> > > > > Prior this change Topaz's internal PHY is detected by kernel as:
> > > > >
> > > > > PHY [...] driver [Marvell 88E6390] (irq=63)
> > > > >
> > > > > And afterwards as:
> > > > >
> > > > > PHY [...] driver [Marvell 88E6341 Family] (irq=63)
> > > > >
> > > > > Signed-off-by: Pali Rohár <pali@kernel.org>
> > > > > BugLink: https://github.com/globalscaletechnologies/linux/issues/1
> > > > > Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
> > > > > Reviewed-by: Marek Behún <kabel@kernel.org>
> > > > > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> > > > > Signed-off-by: David S. Miller <davem@davemloft.net>
> > > > > [pali: Backported to 5.4 version]
> > > > > ---
> > > > > This patch is backported to 5.4 version. Tested on Turris Mox with Topaz switch.
> > > >
> > > > What about a 5.10 version?
> > >
> > > Is manual backport required also for 5.10? I got email that automatic
> > > backporting failed only for 4.19 and 5.4 versions.
> >
> > It also failed for 5.10.y, so yes, if you could provide a version for
> > that tree it would be most appreciated.
>
> Ok! I will prepare it, no problem. I just did not know that it failed
> also for 5.10 as I have not received any email about it.
Odd, I must have forgotten to add that version to the command line
script I run to tell people that a patch failed, sorry about that.
greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
2021-04-19 12:56 ` Greg KH
@ 2021-04-19 13:49 ` Pali Rohár
2021-04-19 14:31 ` Sasha Levin
1 sibling, 0 replies; 10+ messages in thread
From: Pali Rohár @ 2021-04-19 13:49 UTC (permalink / raw)
To: Greg KH; +Cc: stable, andrew, davem, kabel
On Monday 19 April 2021 14:56:54 Greg KH wrote:
> On Mon, Apr 19, 2021 at 02:47:11PM +0200, Pali Rohár wrote:
> > On Monday 19 April 2021 14:35:19 Greg KH wrote:
> > > On Mon, Apr 19, 2021 at 02:08:56PM +0200, Pali Rohár wrote:
> > > > On Monday 19 April 2021 14:05:18 Greg KH wrote:
> > > > > On Sun, Apr 18, 2021 at 03:13:44PM +0200, Pali Rohár wrote:
> > > > > > commit 1fe976d308acb6374c899a4ee8025a0a016e453e upstream.
> > > > > >
> > > > > > Since commit fee2d546414d ("net: phy: marvell: mv88e6390 temperature
> > > > > > sensor reading"), Linux reports the temperature of Topaz hwmon as
> > > > > > constant -75°C.
> > > > > >
> > > > > > This is because switches from the Topaz family (88E6141 / 88E6341) have
> > > > > > the address of the temperature sensor register different from Peridot.
> > > > > >
> > > > > > This address is instead compatible with 88E1510 PHYs, as was used for
> > > > > > Topaz before the above mentioned commit.
> > > > > >
> > > > > > Create a new mapping table between switch family and PHY ID for families
> > > > > > which don't have a model number. And define PHY IDs for Topaz and Peridot
> > > > > > families.
> > > > > >
> > > > > > Create a new PHY ID and a new PHY driver for Topaz's internal PHY.
> > > > > > The only difference from Peridot's PHY driver is the HWMON probing
> > > > > > method.
> > > > > >
> > > > > > Prior this change Topaz's internal PHY is detected by kernel as:
> > > > > >
> > > > > > PHY [...] driver [Marvell 88E6390] (irq=63)
> > > > > >
> > > > > > And afterwards as:
> > > > > >
> > > > > > PHY [...] driver [Marvell 88E6341 Family] (irq=63)
> > > > > >
> > > > > > Signed-off-by: Pali Rohár <pali@kernel.org>
> > > > > > BugLink: https://github.com/globalscaletechnologies/linux/issues/1
> > > > > > Fixes: fee2d546414d ("net: phy: marvell: mv88e6390 temperature sensor reading")
> > > > > > Reviewed-by: Marek Behún <kabel@kernel.org>
> > > > > > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> > > > > > Signed-off-by: David S. Miller <davem@davemloft.net>
> > > > > > [pali: Backported to 5.4 version]
> > > > > > ---
> > > > > > This patch is backported to 5.4 version. Tested on Turris Mox with Topaz switch.
> > > > >
> > > > > What about a 5.10 version?
> > > >
> > > > Is manual backport required also for 5.10? I got email that automatic
> > > > backporting failed only for 4.19 and 5.4 versions.
> > >
> > > It also failed for 5.10.y, so yes, if you could provide a version for
> > > that tree it would be most appreciated.
> >
> > Ok! I will prepare it, no problem. I just did not know that it failed
> > also for 5.10 as I have not received any email about it.
>
> Odd, I must have forgotten to add that version to the command line
> script I run to tell people that a patch failed, sorry about that.
>
> greg k-h
Now I have sent version also for 5.10. Beware that patch for every
kernel version is slightly different.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches
2021-04-19 12:56 ` Greg KH
2021-04-19 13:49 ` Pali Rohár
@ 2021-04-19 14:31 ` Sasha Levin
1 sibling, 0 replies; 10+ messages in thread
From: Sasha Levin @ 2021-04-19 14:31 UTC (permalink / raw)
To: Greg KH; +Cc: Pali Rohár, stable, andrew, davem, kabel
On Mon, Apr 19, 2021 at 02:56:54PM +0200, Greg KH wrote:
>On Mon, Apr 19, 2021 at 02:47:11PM +0200, Pali Rohár wrote:
>> Ok! I will prepare it, no problem. I just did not know that it failed
>> also for 5.10 as I have not received any email about it.
>
>Odd, I must have forgotten to add that version to the command line
>script I run to tell people that a patch failed, sorry about that.
Not sure what happened, but there are 2 "FAILED" mails for 5.4, one of
them must have been for 5.10 :)
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-04-19 14:31 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-18 12:17 FAILED: patch "[PATCH] net: phy: marvell: fix detection of PHY on Topaz switches" failed to apply to 5.4-stable tree gregkh
2021-04-18 12:23 ` gregkh
2021-04-18 13:13 ` [PATCH] net: phy: marvell: fix detection of PHY on Topaz switches Pali Rohár
2021-04-19 12:05 ` Greg KH
2021-04-19 12:08 ` Pali Rohár
2021-04-19 12:35 ` Greg KH
2021-04-19 12:47 ` Pali Rohár
2021-04-19 12:56 ` Greg KH
2021-04-19 13:49 ` Pali Rohár
2021-04-19 14:31 ` Sasha Levin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.