net: phy: micrel: Fix detection of ksz87xx switch
authorSteve Bennett <steveb@workware.net.au>
Fri, 30 Jul 2021 22:57:50 +0000 (08:57 +1000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Aug 2021 14:07:49 +0000 (15:07 +0100)
commita5e63c7d38d548b8dab6c6205e0b6af76899dbf5
treec38d2223384587a4931d19bbf0060872e3480833
parentcebb5103f07e0924ff3e2a7feaf962d6f0c0aa88
net: phy: micrel: Fix detection of ksz87xx switch

The logic for discerning between KSZ8051 and KSZ87XX PHYs is incorrect
such that the that KSZ87XX switch is not identified correctly.

ksz8051_ksz8795_match_phy_device() uses the parameter ksz_phy_id
to discriminate whether it was called from ksz8051_match_phy_device()
or from ksz8795_match_phy_device() but since PHY_ID_KSZ87XX is the
same value as PHY_ID_KSZ8051, this doesn't work.

Instead use a bool to discriminate the caller.

Without this patch, the KSZ8795 switch port identifies as:

ksz8795-switch spi3.1 ade1 (uninitialized): PHY [dsa-0.1:03] driver [Generic PHY]

With the patch, it identifies correctly:

ksz8795-switch spi3.1 ade1 (uninitialized): PHY [dsa-0.1:03] driver [Micrel KSZ87XX Switch]

Fixes: 8b95599c55ed24b36cf4 ("net: phy: micrel: Discern KSZ8051 and KSZ8795 PHYs")
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/micrel.c