Subject: Re: net: micrel: confusion about phyids used in driver

From: Andrew Lunn <[email-masked]>
Date: Thu, 9 May 2019 23:07:45 +0200

On Thu, May 09, 2019 at 10:55:29PM +0200, Heiner Kallweit wrote:
> On 09.05.2019 22:29, Uwe Kleine-König wrote:
> > Hello,
> > 
> > I have a board here that has a KSZ8051MLL (datasheet:
> > http://ww1.microchip.com/downloads/en/DeviceDoc/ksz8051mll.pdf, phyid:
> > 0x0022155x) assembled. The actual phyid is 0x00221556.
> > 
> I think the datasheets are the source of the confusion. If the
> datasheets for different chips list 0x0022155x as PHYID each, and
> authors of support for additional chips don't check the existing code,
> then happens what happened.
> However it's not a rare exception and not Microchip-specific that
> sometimes vendors use the same PHYID for different chips.
> 
> And it seems you even missed one: KSZ8795
> It's a switch and the internal PHY's have id 0x00221550.
> 
> If the drivers for the respective chips are actually different then we
> may change the driver to match the exact model number only.
> However, if there should be a PHY with e.g. id 0x00221554 out there,
> it wouldn't be supported any longer and the generic PHY driver would
> be used (what may work or not).

Hi Heiner

We might also want to take a look at the code which matches a driver
to a PHY ID. Ideally we want the most specific match when looking at
the mask. We can then have device specific matches, and then a more
general fallback match using a wider mask.

No idea how to actually implement that :-(

   Andrew