Subject: Re: [PATCH net-next] net: sfp: add quirk for OEM DFP-34X-2C2 GPON ONU SFP

From: "Russell King (Oracle)" <[email-masked]>
Date: Fri, 2 Feb 2024 23:45:43 +0000

On Sat, Feb 03, 2024 at 12:18:13AM +0100, Sergio Palumbo wrote:
> Hello Russell,
> thanks for your  explanation. I have to say that:
> Module default is LAN_SDS_MODE=1
> Host banana PI R3 supporting 1000base-X + 2500base-X
> I would update the table as follows:
> 
> The current situation:
> Host supports		Module		Mode		Functional
> 1000base-X		LAN_SDS_MODE=1	1000base-X	Not tested, but expect to work as 1000base-X + 2500base-X
> 1000base-X		LAN_SDS_MODE=6	1000base-X	Not tested, but expect to work as 1000base-X + 2500base-X
> 1000base-X + 2500base-X	LAN_SDS_MODE=1	1000base-X	Yes
> 1000base-X + 2500base-X	LAN_SDS_MODE=6	1000base-X	Yes (host forcing module at 1000base-X)
> 
> I suppose that Banana PI R3 host is forced by linux drivers
> at 1000base-X so first two cases should be same as second two cases.
> 
> 
> With the quirk:
> Host supports		Module		Mode		Functional
> 1000base-X		LAN_SDS_MODE=1	1000base-X	Not tested, but expect to work as 1000base-X + 2500base-X host
> 1000base-X		LAN_SDS_MODE=6	1000base-X	Not tested, but expect to work as 1000base-X + 2500base-X host
> 1000base-X + 2500base-X	LAN_SDS_MODE=1	1000base-X	Yes (module forcing host at 1000base-X)
> 1000base-X + 2500base-X	LAN_SDS_MODE=6	2500base-X	Yes

Your third line is just wrong. Given the capabilities of the host
_and_ the capabilities of the module adjusted by your quirk, phylink
_will_ choose 2500base-X _not_ 1000base-X for that. With your quirk,
there is no way for Linux to know what LAN_SDS_MODE has been set
in the module. Even without your quirk, _unless_ the module updates
the EEPROM contents which is unlikely, there isn't a way to know.

Add #define DEBUG in phylink.c, rebuild and run that kernel. Try
that exact configuration. Report to me the kernel messages.

Adding a quirk that makes it not work in its default state is
technically a regression. We can't know whether people are already
using this module with Linux in this state. Adding this change
potentially breaks users setups.

> I suppose Banana PI R3 forcing Linux drivers at 1000-X when
> module in LAN_SDS_MODE=1 and expect it should work alpso with
> hosts at 1000base-X only in LAN_SDS_MODE=1 and LAN_SDS_MODE=6

There is no way for Linux to know what LAN_SDS_MODE the module is
in.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!