From: Maxime Chevallier <maxime.chevallier@bootlin.com>
To: davem@davemloft.net, Andrew Lunn <andrew@lunn.ch>,
Jakub Kicinski <kuba@kernel.org>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>,
Russell King <linux@armlinux.org.uk>,
Heiner Kallweit <hkallweit1@gmail.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
thomas.petazzoni@bootlin.com,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Köry Maincent" <kory.maincent@bootlin.com>,
"Simon Horman" <horms@kernel.org>,
"Romain Gantois" <romain.gantois@bootlin.com>,
"Antoine Tenart" <atenart@kernel.org>,
"Marek Behún" <kabel@kernel.org>,
"Sean Anderson" <sean.anderson@linux.dev>,
"Bjørn Mork" <bjorn@mork.no>
Subject: Re: [PATCH net-next v2 1/2] net: phy: sfp: Add support for SMBus module access
Date: Sat, 8 Mar 2025 19:42:51 +0100 [thread overview]
Message-ID: <20250308194251.30622971@fedora.home> (raw)
In-Reply-To: <20250225112043.419189-2-maxime.chevallier@bootlin.com>
Hi,
On Tue, 25 Feb 2025 12:20:39 +0100
Maxime Chevallier <maxime.chevallier@bootlin.com> wrote:
> The SFP module's eeprom and internals are accessible through an i2c bus.
> However, all the i2c transfers that are performed are SMBus-style
> transfers for read and write operations.
>
> It is possible that the SFP might be connected to an SMBus-only
> controller, such as the one found in some PHY devices in the VSC85xx
> family.
>
> Introduce a set of sfp read/write ops that are going to be used if the
> i2c bus is only capable of doing smbus byte accesses.
>
> As Single-byte SMBus transaction go against SFF-8472 and breaks the
> atomicity for diagnostics data access, hwmon is disabled in the case
> of SMBus access.
>
> Moreover, as this may cause other instabilities, print a warning at
> probe time to indicate that the setup may be unreliable because of the
> hardware design.
>
> Tested-by: Sean Anderson <sean.anderson@linux.dev>
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
> ---
>
> V2: - Added Sean's tested-by
> - Added a warning indicating that operations won't be reliable, from
> Russell and Andrew's reviews
> - Also added a flag saying we're under a single-byte-access bus, to
> both print the warning and disable hwmon.
>
> drivers/net/phy/sfp.c | 79 +++++++++++++++++++++++++++++++++++++++----
> 1 file changed, 73 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
> index 9369f5297769..6e9d3d95eb95 100644
> --- a/drivers/net/phy/sfp.c
> +++ b/drivers/net/phy/sfp.c
> @@ -282,6 +282,7 @@ struct sfp {
> unsigned int rs_state_mask;
>
> bool have_a2;
> + bool single_byte_access;
Looking back at that code and our discussions, struct sfp already has an
"i2c_block_size", that is set to 1 for modules with broken emulated
eeprom, and there's already some logging and all the logic to disable
hwmon in such case.
So I think V3 will ditch that "single_byte_access" bool, and rather add
a "i2c_max_block_size" member, set depending on the bus capabilities,
that we'll use to clamp the i2c_block_size.
Of course the big warning to say that the design is inherently broken
because we're on a bus that's limited will stay, but that should make
our life easier for proper non-single-byte smbus support, and also
keep the code flow cleaner.
Let me know what you think,
Maxime
next prev parent reply other threads:[~2025-03-08 18:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-25 11:20 [PATCH net-next v2 0/2] net: phy: sfp: Add single-byte SMBus SFP access Maxime Chevallier
2025-02-25 11:20 ` [PATCH net-next v2 1/2] net: phy: sfp: Add support for SMBus module access Maxime Chevallier
2025-02-25 13:41 ` Andrew Lunn
2025-02-25 13:56 ` Maxime Chevallier
2025-02-25 14:58 ` Andrew Lunn
2025-02-25 18:23 ` Russell King (Oracle)
2025-02-25 18:06 ` Russell King (Oracle)
2025-02-25 18:04 ` Russell King (Oracle)
2025-02-25 18:20 ` Maxime Chevallier
2025-02-25 18:41 ` Sean Anderson
2025-02-25 18:48 ` Maxime Chevallier
2025-03-08 18:42 ` Maxime Chevallier [this message]
2025-02-25 11:20 ` [PATCH net-next v2 2/2] net: mdio: mdio-i2c: Add support for single-byte SMBus operations Maxime Chevallier
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=20250308194251.30622971@fedora.home \
--to=maxime.chevallier@bootlin.com \
--cc=andrew@lunn.ch \
--cc=atenart@kernel.org \
--cc=bjorn@mork.no \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=horms@kernel.org \
--cc=kabel@kernel.org \
--cc=kory.maincent@bootlin.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=romain.gantois@bootlin.com \
--cc=sean.anderson@linux.dev \
--cc=thomas.petazzoni@bootlin.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.