netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: macb: Correct usage of MACB_CAPS_CLK_HW_CHG flag on Zynq
@ 2020-12-23 18:41 Charles Keepax
  2020-12-23 19:24 ` Andrew Lunn
  0 siblings, 1 reply; 3+ messages in thread
From: Charles Keepax @ 2020-12-23 18:41 UTC (permalink / raw)
  To: nicolas.ferre, claudiu.beznea, davem, kuba; +Cc: andrew, netdev, linux-kernel

A new flag MACB_CAPS_CLK_HW_CHG was added and all callers of
macb_set_tx_clk were gated on the presence of this flag.

if (!bp->tx_clk || !(bp->caps & MACB_CAPS_CLK_HW_CHG))

However the flag was not added to anything other than the new
sama7g5_gem, turning that function call into a no op for all other
systems. This breaks the networking on Zynq.

This patch adds that flag to Zynq config, it is probably needed on other
systems as well but it is hard to know that without having access to
those systems, so I guess we just have to wait to see who else spots
breakage here.

Fixes: daafa1d33cc9 ("net: macb: add capability to not set the clock rate")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
 drivers/net/ethernet/cadence/macb_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index d5d910916c2e8..590116b236ef7 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -4536,7 +4536,7 @@ static const struct macb_config zynqmp_config = {
 
 static const struct macb_config zynq_config = {
 	.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_NO_GIGABIT_HALF |
-		MACB_CAPS_NEEDS_RSTONUBR,
+		MACB_CAPS_NEEDS_RSTONUBR | MACB_CAPS_CLK_HW_CHG,
 	.dma_burst_length = 16,
 	.clk_init = macb_clk_init,
 	.init = macb_init,
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] net: macb: Correct usage of MACB_CAPS_CLK_HW_CHG flag on Zynq
  2020-12-23 18:41 [PATCH] net: macb: Correct usage of MACB_CAPS_CLK_HW_CHG flag on Zynq Charles Keepax
@ 2020-12-23 19:24 ` Andrew Lunn
  2020-12-23 19:41   ` Charles Keepax
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Lunn @ 2020-12-23 19:24 UTC (permalink / raw)
  To: Charles Keepax
  Cc: nicolas.ferre, claudiu.beznea, davem, kuba, netdev, linux-kernel

On Wed, Dec 23, 2020 at 06:41:44PM +0000, Charles Keepax wrote:
> A new flag MACB_CAPS_CLK_HW_CHG was added and all callers of
> macb_set_tx_clk were gated on the presence of this flag.
> 
> if (!bp->tx_clk || !(bp->caps & MACB_CAPS_CLK_HW_CHG))
> 
> However the flag was not added to anything other than the new
> sama7g5_gem, turning that function call into a no op for all other
> systems. This breaks the networking on Zynq.

I'm not sure this is the correct fix. I think the original patch might
be broken. Look at the commit message wording:

                                                      The patch adds a new
    capability so that macb_set_tx_clock() to not be called for IPs having
    this capability

So MACB_CAPS_CLK_HW_CHG disables something, not enables it. So i
suspect this if statement is wrong and needs fixing.

	Andrew

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] net: macb: Correct usage of MACB_CAPS_CLK_HW_CHG flag on Zynq
  2020-12-23 19:24 ` Andrew Lunn
@ 2020-12-23 19:41   ` Charles Keepax
  0 siblings, 0 replies; 3+ messages in thread
From: Charles Keepax @ 2020-12-23 19:41 UTC (permalink / raw)
  To: Andrew Lunn
  Cc: nicolas.ferre, claudiu.beznea, davem, kuba, netdev, linux-kernel

On Wed, Dec 23, 2020 at 08:24:41PM +0100, Andrew Lunn wrote:
> On Wed, Dec 23, 2020 at 06:41:44PM +0000, Charles Keepax wrote:
> > A new flag MACB_CAPS_CLK_HW_CHG was added and all callers of
> > macb_set_tx_clk were gated on the presence of this flag.
> > 
> > if (!bp->tx_clk || !(bp->caps & MACB_CAPS_CLK_HW_CHG))
> > 
> > However the flag was not added to anything other than the new
> > sama7g5_gem, turning that function call into a no op for all other
> > systems. This breaks the networking on Zynq.
> 
> I'm not sure this is the correct fix. I think the original patch might
> be broken. Look at the commit message wording:
> 
>                                                       The patch adds a new
>     capability so that macb_set_tx_clock() to not be called for IPs having
>     this capability
> 
> So MACB_CAPS_CLK_HW_CHG disables something, not enables it. So i
> suspect this if statement is wrong and needs fixing.

Hmm... good spot, hopefully the original author can comment. The
flag name reads to me as clock rate can change, the commit message
definitely implies the opposite.

So it really depends if this function was intended to be skipped
for the sama7g5 gem or emac.

Thanks,
Charles

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-12-23 19:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-23 18:41 [PATCH] net: macb: Correct usage of MACB_CAPS_CLK_HW_CHG flag on Zynq Charles Keepax
2020-12-23 19:24 ` Andrew Lunn
2020-12-23 19:41   ` Charles Keepax

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).