From: Jakub Kicinski Date: Mon, 15 Jun 2026 21:14:50 +0000 (-0700) Subject: Merge branch 'net-sfp-extend-smbus-support' X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86bbdbac174231c6a1da839e45d656acae8b74f9;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'net-sfp-extend-smbus-support' Jonas Jelonek says: ==================== net: sfp: extend SMBus support Today, the SFP driver only drives I2C adapters that advertise full I2C_FUNC_I2C, or SMBus-only adapters via single-byte transfers (with hwmon disabled). Several SoCs ship I2C/SMBus-only controllers that support more than just byte access -- e.g. word and I2C block -- and have SFP cages wired to them. Today, those adapters either work poorly or not at all. This series teaches the SFP driver to use the larger SMBus access modes when the adapter advertises them, and along the way starts honoring i2c_adapter quirks on read/write length so adapters that cap below the SFP block size are handled correctly. Patch 1 is a small prep doing only the quirks handling; patch 2 extends the SMBus path itself. Capability matrix supported by patch 2: - BYTE only: single-byte access (unchanged). - BYTE + WORD: word for >=2-byte chunks, byte tail. - I2C_BLOCK present: block as the universal transport. - WORD only (no BYTE/BLOCK): accepted with WARN_ONCE; works for even-length transfers, odd-length transfers will error at xfer time. Adapters with asymmetric R/W capabilities (e.g. only READ_I2C_BLOCK without WRITE_I2C_BLOCK) remain functionally correct but use the worse-supported direction's max for both directions, since i2c_max_block_size is a single field. No mainline I2C driver was seen advertising such asymmetry; per-direction sizes can be added later if needed. ==================== Link: https://patch.msgid.link/20260614133418.2068201-1-jelonek.jonas@gmail.com Signed-off-by: Jakub Kicinski --- 86bbdbac174231c6a1da839e45d656acae8b74f9