mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 22:47:56 +00:00
e430815f5a
Backport PHY package MMD patch merged upstream that add support for writing MMD regs for the PHY package and support for writing to PHY package at an offset. All affected patches automatically refreshed. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
44 lines
1.5 KiB
Diff
44 lines
1.5 KiB
Diff
From aed8fdad2152d946add50bec00a6b07c457bdcdf Mon Sep 17 00:00:00 2001
|
|
From: Alexander Stein <alexander.stein@ew.tq-group.com>
|
|
Date: Mon, 24 Apr 2023 16:16:48 +0200
|
|
Subject: [PATCH] net: phy: Fix reading LED reg property
|
|
|
|
'reg' is always encoded in 32 bits, thus it has to be read using the
|
|
function with the corresponding bit width.
|
|
|
|
Fixes: 01e5b728e9e4 ("net: phy: Add a binding for PHY LEDs")
|
|
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
|
|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
Link: https://lore.kernel.org/r/20230424141648.317944-1-alexander.stein@ew.tq-group.com
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/phy/phy_device.c | 6 +++++-
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/net/phy/phy_device.c
|
|
+++ b/drivers/net/phy/phy_device.c
|
|
@@ -2974,6 +2974,7 @@ static int of_phy_led(struct phy_device
|
|
struct led_init_data init_data = {};
|
|
struct led_classdev *cdev;
|
|
struct phy_led *phyled;
|
|
+ u32 index;
|
|
int err;
|
|
|
|
phyled = devm_kzalloc(dev, sizeof(*phyled), GFP_KERNEL);
|
|
@@ -2983,10 +2984,13 @@ static int of_phy_led(struct phy_device
|
|
cdev = &phyled->led_cdev;
|
|
phyled->phydev = phydev;
|
|
|
|
- err = of_property_read_u8(led, "reg", &phyled->index);
|
|
+ err = of_property_read_u32(led, "reg", &index);
|
|
if (err)
|
|
return err;
|
|
+ if (index > U8_MAX)
|
|
+ return -EINVAL;
|
|
|
|
+ phyled->index = index;
|
|
if (phydev->drv->led_brightness_set)
|
|
cdev->brightness_set_blocking = phy_led_set_brightness;
|
|
if (phydev->drv->led_blink_set)
|