Subject: Re: [PATCH] r8169: add support for RTL8127ATF

From: Fabio Baltieri <[email-masked]>
Date: Fri, 21 Nov 2025 12:09:46 +0000

On Fri, Nov 21, 2025 at 12:17:33AM +0100, Heiner Kallweit wrote:
> Could you please test whether the following fixes the chip hang on suspend / shutdown?
> 
> diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
> index de304d1eb..97dbe8f89 100644
> --- a/drivers/net/ethernet/realtek/r8169_main.c
> +++ b/drivers/net/ethernet/realtek/r8169_main.c
> @@ -1517,11 +1517,20 @@ static enum rtl_dash_type rtl_get_dash_type(struct rtl8169_private *tp)
>  
>  static void rtl_set_d3_pll_down(struct rtl8169_private *tp, bool enable)
>  {
> -	if (tp->mac_version >= RTL_GIGA_MAC_VER_25 &&
> -	    tp->mac_version != RTL_GIGA_MAC_VER_28 &&
> -	    tp->mac_version != RTL_GIGA_MAC_VER_31 &&
> -	    tp->mac_version != RTL_GIGA_MAC_VER_38)
> -		r8169_mod_reg8_cond(tp, PMCH, D3_NO_PLL_DOWN, !enable);
> +	switch (tp->mac_version) {
> +	case RTL_GIGA_MAC_VER_02 ... RTL_GIGA_MAC_VER_24:
> +	case RTL_GIGA_MAC_VER_28:
> +	case RTL_GIGA_MAC_VER_31:
> +	case RTL_GIGA_MAC_VER_38:
> +		break;
> +	case RTL_GIGA_MAC_VER_80:
> +		r8169_mod_reg8_cond(tp, PMCH, D3_NO_PLL_DOWN, true);
> +		break;
> +	default:
> +		r8169_mod_reg8_cond(tp, PMCH, D3HOT_NO_PLL_DOWN, true);
> +		r8169_mod_reg8_cond(tp, PMCH, D3COLD_NO_PLL_DOWN, !enable);
> +		break;
> +	}
>  }
>  
>  static void rtl_reset_packet_filter(struct rtl8169_private *tp)

Yes, patched it in and tested on both suspend and reboot without
touching the wol flags, seems to be working correctly.

Thanks!