Subject: Re: [PATCH net-next v2 2/2] net: dsa: microchip: remove MICREL_NO_EEE workaround

From: Oleksij Rempel <[email-masked]>
Date: Tue, 7 Jan 2025 08:42:25 +0100

On Mon, Jan 06, 2025 at 02:23:36PM +0100, Heiner Kallweit wrote:
> The integrated PHY's on all these switch types have the same PHY ID.
> So we can assume that the issue is related to the PHY type, not the
> switch type. After having disabled EEE for this PHY type, we can remove
> the workaround code here.
> 
> Note: On the fast ethernet models listed here the integrated PHY has
>       PHY ID 0x00221550, which is handled by PHY driver
>       "Micrel KSZ87XX Switch". This PHY driver doesn't handle flag
>       MICREL_NO_EEE, therefore setting the flag for these models
>       results in a no-op.

Yes, it feels like no one is using KSZ87XX switches with the kernel DSA
driver.

> Signed-off-by: Heiner Kallweit <[email-masked]>
> ---
>  drivers/net/dsa/microchip/ksz_common.c | 25 -------------------------
>  include/linux/micrel_phy.h             |  1 -
>  2 files changed, 26 deletions(-)
> 
> diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c
> index e3512e324..4871bb1fc 100644
> --- a/drivers/net/dsa/microchip/ksz_common.c
> +++ b/drivers/net/dsa/microchip/ksz_common.c
> @@ -3008,31 +3008,6 @@ static u32 ksz_get_phy_flags(struct dsa_switch *ds, int port)
>  		if (!port)
>  			return MICREL_KSZ8_P1_ERRATA;
>  		break;
> -	case KSZ8567_CHIP_ID:
> -		/* KSZ8567R Errata DS80000752C Module 4 */
> -	case KSZ8765_CHIP_ID:
> -	case KSZ8794_CHIP_ID:
> -	case KSZ8795_CHIP_ID:
> -		/* KSZ879x/KSZ877x/KSZ876x Errata DS80000687C Module 2 */
> -	case KSZ9477_CHIP_ID:
> -		/* KSZ9477S Errata DS80000754A Module 4 */
> -	case KSZ9567_CHIP_ID:
> -		/* KSZ9567S Errata DS80000756A Module 4 */
> -	case KSZ9896_CHIP_ID:
> -		/* KSZ9896C Errata DS80000757A Module 3 */
> -	case KSZ9897_CHIP_ID:
> -	case LAN9646_CHIP_ID:
> -		/* KSZ9897R Errata DS80000758C Module 4 */
> -		/* Energy Efficient Ethernet (EEE) feature select must be manually disabled
> -		 *   The EEE feature is enabled by default, but it is not fully
> -		 *   operational. It must be manually disabled through register
> -		 *   controls. If not disabled, the PHY ports can auto-negotiate
> -		 *   to enable EEE, and this feature can cause link drops when
> -		 *   linked to another device supporting EEE.
> -		 *
> -		 * The same item appears in the errata for all switches above.
> -		 */

I have two problems with current patch set:
- dropped documentation, not all switches are officially broken, so
  keeping it documented is important.
- not all KSZ9xxx based switches are officially broken. All 3 port
  switches are not broken but still match against the KSZ9477 PHY
  driver:
  KSZ8563_CHIP_ID - 0x00221631
  KSZ9563_CHIP_ID - 0x00221631
  KSZ9893_CHIP_ID - 0x00221631

Best Regards,
Oleksij
-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |