Re: [PATCH net-next 2/4] r8152: Add support for the RTL8159 chip

Andrew Lunn
2026-04-29T01:53:06Z

> @@ -3431,6 +3432,7 @@ static void rtl8152_nic_reset(struct r8152 *tp)
> ocp_word_clr_bits(tp, MCU_TYPE_USB, USB_USB_CTRL, CDC_ECM_EN);
> break;
>
> + case RTL_VER_17:
> case RTL_VER_16:
> ocp_byte_clr_bits(tp, MCU_TYPE_PLA, PLA_CR, CR_RE | CR_TE);

nitpick. The other switch statements seem to be sorted. So 17 should
be after 16.

> + /* Power level tuning */
> + // test mode power level
> + sram_write_w0w1(tp, 0x8415, 0xff00, 0x9300);
> + // normal link power level 10G, 5G, 2.5G
> + sram_write_w0w1(tp, 0x81a3, 0xff00, 0x0f00);
> + sram_write_w0w1(tp, 0x81ae, 0xff00, 0x0f00);
> + sram_write_w0w1(tp, 0x81b9, 0xff00, 0xb900);
> + //nomal link TX filter

normal? Please also add a space after the //. netdev also prefers /*
*/.

> + /* XG INRX parameters */
> + // RC coefficients
> + sram2_write(tp, 0x84ac, 0x0000);
> + sram2_write(tp, 0x84ae, 0x0000);
> + sram2_write(tp, 0x84b0, 0xf818);
> + sram2_write_w0w1(tp, 0x84b2, 0xff00, 0x6000);
> + //Training AAGC PAR (with uc2 patch)

space

> +static int r8159_wait_backup_restore(struct r8152 *tp)
> +{
> + u32 ocp_data;
> +
> + ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0);
> + if (!(ocp_data & PCUT_STATUS))
> + return 0;
> +
> + return poll_timeout_us(ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_GPHY_CTRL),
> + ocp_data & BACKUP_RESTRORE, 200, 2000, false);
> +}
> +
> static void r8156_init(struct r8152 *tp)
> @@ -8221,6 +8421,9 @@ static void r8156_init(struct r8152 *tp)
> return;
> }
>
> + if (tp->version == RTL_VER_17 && r8159_wait_backup_restore(tp))
> + return;

You should probably do something with the return value from
r8159_wait_backup_restore(). At minimum a dev_err().

Andrew

---
pw-bot: cr