mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-30 08:04:10 +00:00
generic: 6.6: backport pending fix for Aquantia PHY LEDs
The 'active-low' property was not applied correctly and two fixes are required to make inverted LEDs work as expected. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
85f7b629c3
commit
5b4131dfe8
@ -97,7 +97,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
|
|||||||
static int aqr_config_intr(struct phy_device *phydev)
|
static int aqr_config_intr(struct phy_device *phydev)
|
||||||
{
|
{
|
||||||
bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED;
|
bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED;
|
||||||
@@ -816,7 +884,7 @@ static struct phy_driver aqr_driver[] =
|
@@ -815,7 +883,7 @@ static struct phy_driver aqr_driver[] =
|
||||||
PHY_ID_MATCH_MODEL(PHY_ID_AQR112),
|
PHY_ID_MATCH_MODEL(PHY_ID_AQR112),
|
||||||
.name = "Aquantia AQR112",
|
.name = "Aquantia AQR112",
|
||||||
.probe = aqr107_probe,
|
.probe = aqr107_probe,
|
||||||
@ -106,7 +106,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
|
|||||||
.config_intr = aqr_config_intr,
|
.config_intr = aqr_config_intr,
|
||||||
.handle_interrupt = aqr_handle_interrupt,
|
.handle_interrupt = aqr_handle_interrupt,
|
||||||
.get_tunable = aqr107_get_tunable,
|
.get_tunable = aqr107_get_tunable,
|
||||||
@@ -839,7 +907,7 @@ static struct phy_driver aqr_driver[] =
|
@@ -838,7 +906,7 @@ static struct phy_driver aqr_driver[] =
|
||||||
PHY_ID_MATCH_MODEL(PHY_ID_AQR412),
|
PHY_ID_MATCH_MODEL(PHY_ID_AQR412),
|
||||||
.name = "Aquantia AQR412",
|
.name = "Aquantia AQR412",
|
||||||
.probe = aqr107_probe,
|
.probe = aqr107_probe,
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
|
|
||||||
#define MDIO_PHYXS_VEND_IF_STATUS 0xe812
|
#define MDIO_PHYXS_VEND_IF_STATUS 0xe812
|
||||||
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK GENMASK(7, 3)
|
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK GENMASK(7, 3)
|
||||||
@@ -1023,6 +1025,30 @@ static struct phy_driver aqr_driver[] =
|
@@ -1022,6 +1024,30 @@ static struct phy_driver aqr_driver[] =
|
||||||
.led_hw_control_get = aqr_phy_led_hw_control_get,
|
.led_hw_control_get = aqr_phy_led_hw_control_get,
|
||||||
.led_polarity_set = aqr_phy_led_polarity_set,
|
.led_polarity_set = aqr_phy_led_polarity_set,
|
||||||
},
|
},
|
||||||
@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
};
|
};
|
||||||
|
|
||||||
module_phy_driver(aqr_driver);
|
module_phy_driver(aqr_driver);
|
||||||
@@ -1043,6 +1069,8 @@ static struct mdio_device_id __maybe_unu
|
@@ -1042,6 +1068,8 @@ static struct mdio_device_id __maybe_unu
|
||||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
|
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
|
||||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR114C) },
|
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR114C) },
|
||||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR813) },
|
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR813) },
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
From patchwork Tue Sep 17 13:49:40 2024
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
X-Patchwork-Id: 13806176
|
||||||
|
X-Patchwork-Delegate: kuba@kernel.org
|
||||||
|
Date: Tue, 17 Sep 2024 14:49:40 +0100
|
||||||
|
From: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
To: Andrew Lunn <andrew@lunn.ch>, Heiner Kallweit <hkallweit1@gmail.com>,
|
||||||
|
Russell King <linux@armlinux.org.uk>,
|
||||||
|
"David S. Miller" <davem@davemloft.net>,
|
||||||
|
Eric Dumazet <edumazet@google.com>,
|
||||||
|
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
|
||||||
|
Daniel Golle <daniel@makrotopia.org>,
|
||||||
|
Christian Marangi <ansuelsmth@gmail.com>,
|
||||||
|
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
|
||||||
|
Robert Marko <robimarko@gmail.com>,
|
||||||
|
Russell King <rmk+kernel@armlinux.org.uk>, netdev@vger.kernel.org,
|
||||||
|
linux-kernel@vger.kernel.org
|
||||||
|
Subject: [PATCH net 1/2] net: phy: aquantia: fix setting active_low bit
|
||||||
|
Message-ID:
|
||||||
|
<ab963584b0a7e3b4dac39472a4b82ca264d79630.1726580902.git.daniel@makrotopia.org>
|
||||||
|
Precedence: bulk
|
||||||
|
X-Mailing-List: netdev@vger.kernel.org
|
||||||
|
List-Id: <netdev.vger.kernel.org>
|
||||||
|
List-Subscribe: <mailto:netdev+subscribe@vger.kernel.org>
|
||||||
|
List-Unsubscribe: <mailto:netdev+unsubscribe@vger.kernel.org>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Disposition: inline
|
||||||
|
X-Patchwork-Delegate: kuba@kernel.org
|
||||||
|
|
||||||
|
phy_modify_mmd was used wrongly in aqr_phy_led_active_low_set() resulting
|
||||||
|
in a no-op instead of setting the VEND1_GLOBAL_LED_DRIVE_VDD bit.
|
||||||
|
Correctly set VEND1_GLOBAL_LED_DRIVE_VDD bit.
|
||||||
|
|
||||||
|
Fixes: 61578f679378 ("net: phy: aquantia: add support for PHY LEDs")
|
||||||
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
||||||
|
---
|
||||||
|
drivers/net/phy/aquantia/aquantia_leds.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/phy/aquantia/aquantia_leds.c
|
||||||
|
+++ b/drivers/net/phy/aquantia/aquantia_leds.c
|
||||||
|
@@ -120,7 +120,8 @@ int aqr_phy_led_hw_control_set(struct ph
|
||||||
|
int aqr_phy_led_active_low_set(struct phy_device *phydev, int index, bool enable)
|
||||||
|
{
|
||||||
|
return phy_modify_mmd(phydev, MDIO_MMD_VEND1, AQR_LED_DRIVE(index),
|
||||||
|
- VEND1_GLOBAL_LED_DRIVE_VDD, enable);
|
||||||
|
+ VEND1_GLOBAL_LED_DRIVE_VDD,
|
||||||
|
+ enable ? VEND1_GLOBAL_LED_DRIVE_VDD : 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int aqr_phy_led_polarity_set(struct phy_device *phydev, int index, unsigned long modes)
|
@ -0,0 +1,72 @@
|
|||||||
|
From patchwork Tue Sep 17 13:49:55 2024
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
X-Patchwork-Id: 13806177
|
||||||
|
X-Patchwork-Delegate: kuba@kernel.org
|
||||||
|
Date: Tue, 17 Sep 2024 14:49:55 +0100
|
||||||
|
From: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
To: Andrew Lunn <andrew@lunn.ch>, Heiner Kallweit <hkallweit1@gmail.com>,
|
||||||
|
Russell King <linux@armlinux.org.uk>,
|
||||||
|
"David S. Miller" <davem@davemloft.net>,
|
||||||
|
Eric Dumazet <edumazet@google.com>,
|
||||||
|
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
|
||||||
|
Daniel Golle <daniel@makrotopia.org>,
|
||||||
|
Christian Marangi <ansuelsmth@gmail.com>,
|
||||||
|
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
|
||||||
|
Robert Marko <robimarko@gmail.com>,
|
||||||
|
Russell King <rmk+kernel@armlinux.org.uk>, netdev@vger.kernel.org,
|
||||||
|
linux-kernel@vger.kernel.org
|
||||||
|
Subject: [PATCH net 2/2] net: phy: aquantia: fix applying active_low bit
|
||||||
|
after reset
|
||||||
|
Message-ID:
|
||||||
|
<9b1f0cd91f4cda54c8be56b4fe780480baf4aa0f.1726580902.git.daniel@makrotopia.org>
|
||||||
|
References:
|
||||||
|
<ab963584b0a7e3b4dac39472a4b82ca264d79630.1726580902.git.daniel@makrotopia.org>
|
||||||
|
Precedence: bulk
|
||||||
|
X-Mailing-List: netdev@vger.kernel.org
|
||||||
|
List-Id: <netdev.vger.kernel.org>
|
||||||
|
List-Subscribe: <mailto:netdev+subscribe@vger.kernel.org>
|
||||||
|
List-Unsubscribe: <mailto:netdev+unsubscribe@vger.kernel.org>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Disposition: inline
|
||||||
|
In-Reply-To:
|
||||||
|
<ab963584b0a7e3b4dac39472a4b82ca264d79630.1726580902.git.daniel@makrotopia.org>
|
||||||
|
X-Patchwork-Delegate: kuba@kernel.org
|
||||||
|
|
||||||
|
for_each_set_bit was used wrongly in aqr107_config_init() when iterating
|
||||||
|
over LEDs. Drop misleading 'index' variable and call
|
||||||
|
aqr_phy_led_active_low_set() for each set bit representing an LED which
|
||||||
|
is driven by VDD instead of GND pin.
|
||||||
|
|
||||||
|
Fixes: 61578f679378 ("net: phy: aquantia: add support for PHY LEDs")
|
||||||
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
||||||
|
---
|
||||||
|
drivers/net/phy/aquantia/aquantia_main.c | 5 ++---
|
||||||
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/phy/aquantia/aquantia_main.c
|
||||||
|
+++ b/drivers/net/phy/aquantia/aquantia_main.c
|
||||||
|
@@ -501,7 +501,7 @@ static int aqr107_config_init(struct phy
|
||||||
|
{
|
||||||
|
struct aqr107_priv *priv = phydev->priv;
|
||||||
|
u32 led_active_low;
|
||||||
|
- int ret, index = 0;
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
|
/* Check that the PHY interface type is compatible */
|
||||||
|
if (phydev->interface != PHY_INTERFACE_MODE_SGMII &&
|
||||||
|
@@ -537,10 +537,9 @@ static int aqr107_config_init(struct phy
|
||||||
|
|
||||||
|
/* Restore LED polarity state after reset */
|
||||||
|
for_each_set_bit(led_active_low, &priv->leds_active_low, AQR_MAX_LEDS) {
|
||||||
|
- ret = aqr_phy_led_active_low_set(phydev, index, led_active_low);
|
||||||
|
+ ret = aqr_phy_led_active_low_set(phydev, led_active_low, true);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
- index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
Loading…
x
Reference in New Issue
Block a user