Re: [PATCH v2 0/4] i2c: SMBus ARP support
From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date: 2026-01-26 13:57:11
Also in:
linux-i2c, lkml
Hi Jeremy, Sat, Jan 24, 2026 at 04:32:42PM +1100, Jeremy Kerr wrote:
Hi Heikki, Thanks for submitting these. Supporting SMBus ARP for MCTP has been on my wishlist for a while, so it's great to have a solid proposal here. I'm curious about why you're proposing a kernel approach though; the actual ARP protocol implementation would likely be implementable in userspace. I think the only kernel facility we would need is a notification facility for the possible presence of ARP-able devices (ie, through a Notify ARP Master, or another mechanism described by 5.6.3.9). I *think* we have existing interfaces for the rest of the ARP process. It's entirely possible I've missed something there; perhaps it's neater with the match tables and address allocation being all in-kernel. I'm keen to hear a bit of the rationale for the in-kernel implementation overall.
Since we use kernel mode device drivers, we need the kernel device instances (struct device) that bind to them. If you want to deal with user mode drivers then you can always do that with the i2c-dev interface, but then you will not be using the kernel drivers such as the mctp-i2c.c in this case. But just to be clear, this is not only about MCTP. The ARP-capable i2c-clients can be anything. So even if you still want to scan the ARP-devices in user space separately, the kernel must enumerate those devices independently in any case. I should also point out that to my surprise the i2c-dev interface (I2C_CHARDEV) isn't always enabled, even when I2C seems to be otherwise fully supported in the kernel. We simply can't assume that it's always available. thanks, -- heikki