Re: [PATCH net-next v4 3/3] r8152: add helper functions for PHY OCP registers

From: Jakub Kicinski

Date: Mon Mar 30 2026 - 22:03:11 EST


> diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
> index 32a4e8d423115..8747c55e0a484 100644
> --- a/drivers/net/usb/r8152.c
> +++ b/drivers/net/usb/r8152.c
[ ... ]
> +static void sram_write_w0w1(struct r8152 *tp, u16 addr, u16 clear, u16 set)
> +{
> + u16 data;
> +
> + data = sram_read(tp, addr);
> + data = (data & ~clear) | set;
> + ocp_reg_write(tp, OCP_SRAM_DATA, data);

AI flags:

Does writing directly to OCP_SRAM_DATA here actually write to the intended
address?

Because hardware indirect SRAM access ports typically auto-increment their
internal address pointer upon access, the sram_read() call will advance the
pointer. By writing directly to OCP_SRAM_DATA instead of using
sram_write(tp, addr, data) to re-establish the address, the updated value
would be written to the next address (addr + 1) rather than the original addr.

Could this corrupt the PHY configuration memory across the initialization paths
that now use sram_clr_bits() and sram_set_bits()?

Can you confirm if this is legit? Not sure whether this device / register
auto-increments or where AI got it from.