mbox series

[0/3] dsa: mv88e6xxx: Add RMU enable/disable ops

Message ID 20241215-v6-13-rc1-net-next-mv88e6xxx-rmu-ops-v1-0-87671db17a65@lunn.ch (mailing list archive)
Headers show
Series dsa: mv88e6xxx: Add RMU enable/disable ops | expand

Message

Andrew Lunn Dec. 15, 2024, 5:30 p.m. UTC
Add internal APIs for enabling the Remote Management Unit, and
extending the existing implementation to other families. Actually
making use of the RMU is not included here, that will be part of a
later big patch set, which without this preliminary patchset would be
too big.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
Andrew Lunn (2):
      net: dsa: mv88e6xxx: Enable RMU on 6165 family
      net: dsa: mv88e6xxx: Enable RMU on 6351 family

Mattias Forsblad (1):
      net: dsa: mv88e6xxx: Add RMU enable for switches that support disable.

 drivers/net/dsa/mv88e6xxx/chip.c    | 29 ++++++++++++
 drivers/net/dsa/mv88e6xxx/chip.h    |  1 +
 drivers/net/dsa/mv88e6xxx/global1.c | 89 +++++++++++++++++++++++++++++++++++++
 drivers/net/dsa/mv88e6xxx/global1.h | 10 +++++
 4 files changed, 129 insertions(+)
---
base-commit: 2c2b61d2138f472e50b5531ec0cb4a1485837e21
change-id: 20241207-v6-13-rc1-net-next-mv88e6xxx-rmu-ops-4d0a84f5f7d1

Best regards,

Comments

Andrew Lunn Dec. 15, 2024, 5:42 p.m. UTC | #1
On Sun, Dec 15, 2024 at 05:30:02PM +0000, Andrew Lunn wrote:
> Add internal APIs for enabling the Remote Management Unit, and
> extending the existing implementation to other families. Actually
> making use of the RMU is not included here, that will be part of a
> later big patch set, which without this preliminary patchset would be
> too big.

Gerr, forget to use b4 --set-prefixes net-next

	Andrew
Vladimir Oltean Dec. 15, 2024, 10:59 p.m. UTC | #2
Hi Andrew,

On Sun, Dec 15, 2024 at 05:30:02PM +0000, Andrew Lunn wrote:
> Add internal APIs for enabling the Remote Management Unit, and
> extending the existing implementation to other families. Actually
> making use of the RMU is not included here, that will be part of a
> later big patch set, which without this preliminary patchset would be
> too big.
> 
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> ---

How big is the later patch set? Too big to accept even one more patch?

There is a risk that the RMU effort gets abandoned before it becomes
functional. And in that case, we will have a newly introduced rmu_enable()
operation which does nothing.

Could you splice the first patch of this set, providing rmu_enable() for
some switches but not all, with the set that integrates the RMU with DSA?
If the big set is accepted, a trivial follow-up will be necessary to
complete the support. If it is not accepted, we don't end up with merged
code that we don't need.
Andrew Lunn Dec. 16, 2024, 9:50 a.m. UTC | #3
On Mon, Dec 16, 2024 at 12:59:10AM +0200, Vladimir Oltean wrote:
> Hi Andrew,
> 
> On Sun, Dec 15, 2024 at 05:30:02PM +0000, Andrew Lunn wrote:
> > Add internal APIs for enabling the Remote Management Unit, and
> > extending the existing implementation to other families. Actually
> > making use of the RMU is not included here, that will be part of a
> > later big patch set, which without this preliminary patchset would be
> > too big.
> > 
> > Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> > ---
> 
> How big is the later patch set? Too big to accept even one more patch?

The patchset is 21 patches, if i only support one switch family.

I can remove a couple of patches, getting statistics via RMU, and
timing the RMU vs MDIO and disabling RMU if it is slower.

The other way i can slice it is split it into two patchsets:

1) incremental modifications to qca8k to centralise code
2) implement the mv88e6xxx changes to add RMU to it.

I did not really want to slice it like this, because the central API
is designed around what both QCA8K and Marvell needs, and hopefully is
generic enough for other devices. But there might be questions asked
when you can only see the qca8k refactor without the Marvell parts.

I can maybe squash some of the QCA patches together. Previously i was
doing lots of simple changes because i did not have hardware to test
on. I do have a QCA8K test system now.

> There is a risk that the RMU effort gets abandoned before it becomes
> functional. And in that case, we will have a newly introduced rmu_enable()
> operation which does nothing.

True, but i'm more motivated this time, i'm getting paid for the work :-)

And there is one other interested party as well that i know of.

This patch series is fully self contained, so it easy to revert, if
this ends up going nowhere.

	Andrew
Vladimir Oltean Dec. 16, 2024, 2:59 p.m. UTC | #4
On Mon, Dec 16, 2024 at 10:50:47AM +0100, Andrew Lunn wrote:
> > How big is the later patch set? Too big to accept even one more patch?
> 
> The patchset is 21 patches, if i only support one switch family.
> 
> I can remove a couple of patches, getting statistics via RMU, and
> timing the RMU vs MDIO and disabling RMU if it is slower.
> 
> The other way i can slice it is split it into two patchsets:
> 
> 1) incremental modifications to qca8k to centralise code
> 2) implement the mv88e6xxx changes to add RMU to it.
> 
> I did not really want to slice it like this, because the central API
> is designed around what both QCA8K and Marvell needs, and hopefully is
> generic enough for other devices. But there might be questions asked
> when you can only see the qca8k refactor without the Marvell parts.
> 
> I can maybe squash some of the QCA patches together. Previously i was
> doing lots of simple changes because i did not have hardware to test
> on. I do have a QCA8K test system now.
> 
> > There is a risk that the RMU effort gets abandoned before it becomes
> > functional. And in that case, we will have a newly introduced rmu_enable()
> > operation which does nothing.
> 
> True, but i'm more motivated this time, i'm getting paid for the work :-)
> 
> And there is one other interested party as well that i know of.
> 
> This patch series is fully self contained, so it easy to revert, if
> this ends up going nowhere.

So what's a no-go is introducing code with no user.

Splitting into 2 sets like this should be fine. You could post a link to
Github with the complete picture when you post the qca8k refactoring, so
that we know what to expect next and where things are going. Hopefully
it makes sense on its own and does not leave loose ends hanging.

I don't think that squashing multiple logical changes to fit the 15
patch limit is a good idea.
Jakub Kicinski Dec. 18, 2024, 3:31 a.m. UTC | #5
On Mon, 16 Dec 2024 16:59:40 +0200 Vladimir Oltean wrote:
> > > There is a risk that the RMU effort gets abandoned before it becomes
> > > functional. And in that case, we will have a newly introduced rmu_enable()
> > > operation which does nothing.  
> > 
> > True, but i'm more motivated this time, i'm getting paid for the work :-)
> > 
> > And there is one other interested party as well that i know of.
> > 
> > This patch series is fully self contained, so it easy to revert, if
> > this ends up going nowhere.  
> 
> So what's a no-go is introducing code with no user.
> 
> Splitting into 2 sets like this should be fine. You could post a link to
> Github with the complete picture when you post the qca8k refactoring, so
> that we know what to expect next and where things are going. Hopefully
> it makes sense on its own and does not leave loose ends hanging.
> 
> I don't think that squashing multiple logical changes to fit the 15
> patch limit is a good idea.

Yes, we're not religious about the 15 patch rule. If you give it 
an honest try and it doesn't make sense just say so in the cover
letter.