[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ac6a4318-3a47-2c77-6b81-b5f04765c04e@linux.dev>
Date: Fri, 11 Aug 2023 17:30:01 +0100
From: Vadim Fedorenko <vadim.fedorenko@...ux.dev>
To: Daniel Golle <daniel@...rotopia.org>, Qingfang Deng <dqfext@...il.com>,
SkyLake Huang <SkyLake.Huang@...iatek.com>, Andrew Lunn <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>, Russell King
<linux@...linux.org.uk>, "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Matthias Brugger <matthias.bgg@...il.com>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-mediatek@...ts.infradead.org
Subject: Re: [PATCH net-next] net: phy: mediatek-ge-soc: support PHY LEDs
On 11/08/2023 04:35, Daniel Golle wrote:
> Implement netdev trigger and primitive bliking offloading as well as
> simple set_brigthness function for both PHY LEDs of the in-SoC PHYs
> found in MT7981 and MT7988.
>
> On MT7988 it is necessary to read the boottrap register and apply LED
> polarities accordingly to get uniform behavior from all LEDs.
>
> Signed-off-by: Daniel Golle <daniel@...rotopia.org>
[...]
> +
> +static int mt7988_phy_fix_leds_polarities(struct phy_device *phydev)
> +{
> + struct pinctrl *pinctrl;
> + int index;
> +
> + /* Setup LED polarity according to bootstrap use of LED pins */
> + for (index = 0; index < 2; ++index)
> + phy_modify_mmd(phydev, MDIO_MMD_VEND2, index ?
> + MTK_PHY_LED1_ON_CTRL : MTK_PHY_LED0_ON_CTRL,
> + MTK_PHY_LED_ON_POLARITY,
> + mt7988_phy_led_get_polarity(phydev, index) ?
> + MTK_PHY_LED_ON_POLARITY : 0);
> +
> + /* Only now setup pinctrl to avoid bogus blinking */
> + pinctrl = devm_pinctrl_get_select(&phydev->mdio.dev, "gbe-led");
This function gets reference on phydev->mdio.dev, but there is no code
to release it. It looks like a leak which will prevent module unload,
but I don't have hardware now to prove it.
> + if (IS_ERR(pinctrl))
> + dev_err(&phydev->mdio.bus->dev, "Failed to setup PHY LED pinctrl\n");
> +
> + return 0;
> +}
Powered by blists - more mailing lists