Thread (11 messages) 11 messages, 4 authors, 2026-03-31

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

From: Chih Kai Hsu <hidden>
Date: 2026-03-31 05:47:04
Also in: linux-usb, lkml

On 31/03/26 10:02 am, Jakub Kicinski wrote:
quoted
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
[ ... ]
quoted
+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?
Yes, this actually writes 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.
The address pointer, OCP_SRAM_ADDR, is not auto-incremented after sram_read(tp, addr).
However, the address pointer is incremented automatically after ocp_reg_write(tp, OCP_SRAM_DATA, data).

Best Regards,
Chih-Kai
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help