[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <355d0805-61df-4834-a266-e74117e21302@gmx.net>
Date: Mon, 24 Feb 2025 19:11:39 +0100
From: Hans-Frieder Vogt <hfdevel@....net>
To: Ratheesh Kannoth <rkannoth@...vell.com>
Cc: 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>,
FUJITA Tomonori <fujita.tomonori@...il.com>,
Andrew Lunn <andrew+netdev@...n.ch>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH net-next v5 5/7] net: tn40xx: create swnode for mdio and
aqr105 phy and add to mdiobus
Hi Kannoth,
On 24.02.2025 05.08, Ratheesh Kannoth wrote:
> On 2025-02-22 at 15:19:32, Hans-Frieder Vogt via B4 Relay (devnull+hfdevel.gmx.net@...nel.org) wrote:
>> From: Hans-Frieder Vogt <hfdevel@....net>
>> int tn40_mdiobus_init(struct tn40_priv *priv)
>> {
>> struct pci_dev *pdev = priv->pdev;
>> @@ -129,14 +181,36 @@ int tn40_mdiobus_init(struct tn40_priv *priv)
>>
>> bus->read_c45 = tn40_mdio_read_c45;
>> bus->write_c45 = tn40_mdio_write_c45;
>> + priv->mdio = bus;
>> +
>> + /* provide swnodes for AQR105-based cards only */
>> + if (pdev->device == 0x4025) {
>> + ret = tn40_swnodes_register(priv);
>> + if (ret) {
>> + pr_err("swnodes failed\n");
>> + return ret;
>> + }
>> +
>> + ret = device_add_software_node(&bus->dev,
>> + priv->nodes.group[SWNODE_MDIO]);
>> + if (ret) {
>> + dev_err(&pdev->dev,
>> + "device_add_software_node failed: %d\n", ret);
> No need to return on this error ?
Good catch. Yes, indeed, all TN4010-based cards that I know of need to
load the firmware from
the filesystem. And this will only work if the software node is
available to provide a file
name.
I'll add a
return ret;
in the next version.
>> + }
>> + }
>>
>> ret = devm_mdiobus_register(&pdev->dev, bus);
>> if (ret) {
>> dev_err(&pdev->dev, "failed to register mdiobus %d %u %u\n",
>> ret, bus->state, MDIOBUS_UNREGISTERED);
>> - return ret;
>> + goto err_swnodes_cleanup;
>> }
>> tn40_mdio_set_speed(priv, TN40_MDIO_SPEED_6MHZ);
>> - priv->mdio = bus;
>> return 0;
>> +
>> +err_swnodes_cleanup:
> No need to call device_remove_software_node() ?
It is called from tn40_swnodes_cleanup.
>> + tn40_swnodes_cleanup(priv);
>> + return ret;
>> }
>> +
>> +MODULE_FIRMWARE(AQR105_FIRMWARE);
>>
>> --
>> 2.47.2
>>
>>
Thanks,
Hans-Frieder
Powered by blists - more mailing lists