From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
michal.simek@amd.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, git@amd.com,
Sarath Babu Naidu Gaddam <sarath.babu.naidu.gaddam@amd.com>
Subject: Re: [PATCH net-next v6 2/3] net: axienet: Preparatory changes for dmaengine support
Date: Tue, 19 Sep 2023 10:52:15 +0100 [thread overview]
Message-ID: <ZQlvT7wIuxfvFLLL@shell.armlinux.org.uk> (raw)
In-Reply-To: <1695064615-3164315-3-git-send-email-radhey.shyam.pandey@amd.com>
On Tue, Sep 19, 2023 at 12:46:54AM +0530, Radhey Shyam Pandey wrote:
> +/**
> + * axienet_open - Driver open routine.
> + * @ndev: Pointer to net_device structure
> + *
> + * Return: 0, on success.
> + * non-zero error value on failure
> + *
> + * This is the driver open routine. It calls phylink_start to start the
> + * PHY device.
> + * It also allocates interrupt service routines, enables the interrupt lines
> + * and ISR handling. Axi Ethernet core is reset through Axi DMA core. Buffer
> + * descriptors are initialized.
> + */
> +static int axienet_open(struct net_device *ndev)
> +{
> + int ret;
> + struct axienet_local *lp = netdev_priv(ndev);
> +
> + dev_dbg(&ndev->dev, "%s\n", __func__);
> +
> + /* When we do an Axi Ethernet reset, it resets the complete core
> + * including the MDIO. MDIO must be disabled before resetting.
> + * Hold MDIO bus lock to avoid MDIO accesses during the reset.
> + */
> + axienet_lock_mii(lp);
> + ret = axienet_device_reset(ndev);
> + axienet_unlock_mii(lp);
> +
> + ret = phylink_of_phy_connect(lp->phylink, lp->dev->of_node, 0);
> + if (ret) {
> + dev_err(lp->dev, "phylink_of_phy_connect() failed: %d\n", ret);
> + return ret;
> + }
> +
> + phylink_start(lp->phylink);
... and at this point, the link can come up while phylink_start() is
completing. Could that cause a problem if this happens before:
> +
> + if (!lp->use_dmaengine) {
> + ret = axienet_init_legacy_dma(ndev);
> + if (ret)
> + goto error_code;
> + }
?
I suppose I should add this statement to the phylink_start()
documentation so that this point is clear for everyone.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
michal.simek@amd.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, git@amd.com,
Sarath Babu Naidu Gaddam <sarath.babu.naidu.gaddam@amd.com>
Subject: Re: [PATCH net-next v6 2/3] net: axienet: Preparatory changes for dmaengine support
Date: Tue, 19 Sep 2023 10:52:15 +0100 [thread overview]
Message-ID: <ZQlvT7wIuxfvFLLL@shell.armlinux.org.uk> (raw)
In-Reply-To: <1695064615-3164315-3-git-send-email-radhey.shyam.pandey@amd.com>
On Tue, Sep 19, 2023 at 12:46:54AM +0530, Radhey Shyam Pandey wrote:
> +/**
> + * axienet_open - Driver open routine.
> + * @ndev: Pointer to net_device structure
> + *
> + * Return: 0, on success.
> + * non-zero error value on failure
> + *
> + * This is the driver open routine. It calls phylink_start to start the
> + * PHY device.
> + * It also allocates interrupt service routines, enables the interrupt lines
> + * and ISR handling. Axi Ethernet core is reset through Axi DMA core. Buffer
> + * descriptors are initialized.
> + */
> +static int axienet_open(struct net_device *ndev)
> +{
> + int ret;
> + struct axienet_local *lp = netdev_priv(ndev);
> +
> + dev_dbg(&ndev->dev, "%s\n", __func__);
> +
> + /* When we do an Axi Ethernet reset, it resets the complete core
> + * including the MDIO. MDIO must be disabled before resetting.
> + * Hold MDIO bus lock to avoid MDIO accesses during the reset.
> + */
> + axienet_lock_mii(lp);
> + ret = axienet_device_reset(ndev);
> + axienet_unlock_mii(lp);
> +
> + ret = phylink_of_phy_connect(lp->phylink, lp->dev->of_node, 0);
> + if (ret) {
> + dev_err(lp->dev, "phylink_of_phy_connect() failed: %d\n", ret);
> + return ret;
> + }
> +
> + phylink_start(lp->phylink);
... and at this point, the link can come up while phylink_start() is
completing. Could that cause a problem if this happens before:
> +
> + if (!lp->use_dmaengine) {
> + ret = axienet_init_legacy_dma(ndev);
> + if (ret)
> + goto error_code;
> + }
?
I suppose I should add this statement to the phylink_start()
documentation so that this point is clear for everyone.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2023-09-19 9:53 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-18 19:16 [PATCH net-next v6 0/3] net: axienet: Introduce dmaengine Radhey Shyam Pandey
2023-09-18 19:16 ` Radhey Shyam Pandey
2023-09-18 19:16 ` [PATCH net-next v6 1/3] dt-bindings: net: xlnx,axi-ethernet: Introduce DMA support Radhey Shyam Pandey
2023-09-18 19:16 ` Radhey Shyam Pandey
2023-09-18 19:16 ` [PATCH net-next v6 2/3] net: axienet: Preparatory changes for dmaengine support Radhey Shyam Pandey
2023-09-18 19:16 ` Radhey Shyam Pandey
2023-09-19 9:52 ` Russell King (Oracle) [this message]
2023-09-19 9:52 ` Russell King (Oracle)
2023-09-19 18:59 ` Pandey, Radhey Shyam
2023-09-19 18:59 ` Pandey, Radhey Shyam
2023-09-18 19:16 ` [PATCH net-next v6 3/3] net: axienet: Introduce " Radhey Shyam Pandey
2023-09-18 19:16 ` Radhey Shyam Pandey
2023-09-19 2:23 ` Florian Fainelli
2023-09-19 2:23 ` Florian Fainelli
2023-09-19 19:34 ` Pandey, Radhey Shyam
2023-09-19 19:34 ` Pandey, Radhey Shyam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZQlvT7wIuxfvFLLL@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=git@amd.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.simek@amd.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=radhey.shyam.pandey@amd.com \
--cc=robh+dt@kernel.org \
--cc=sarath.babu.naidu.gaddam@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.