netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Heiner Kallweit <hkallweit1@gmail.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Yuiko Oshino <yuiko.oshino@microchip.com>,
	netdev@vger.kernel.org, kernel@pengutronix.de
Subject: Re: net: micrel: confusion about phyids used in driver
Date: Fri, 10 May 2019 09:22:43 +0200	[thread overview]
Message-ID: <20190510072243.h6h3bgvr2ovsh5g5@pengutronix.de> (raw)
In-Reply-To: <20190509210745.GD11588@lunn.ch>

On Thu, May 09, 2019 at 11:07:45PM +0200, Andrew Lunn wrote:
> On Thu, May 09, 2019 at 10:55:29PM +0200, Heiner Kallweit wrote:
> > On 09.05.2019 22:29, Uwe Kleine-König wrote:
> > > 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.

From the vendor's POV it is even sensible to reuse the phy IDs iff the
chips are "compatible".

Assuming that the last nibble of the phy ID actually helps to
distinguish the different (not completely) compatible chips, we need
some more detailed information than available in the data sheets I have.
There is one person in the recipents of this mail with an @microchip.com
address (hint, hint!).

> > 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).
> 
> 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 :-(

As this is not a detailed enough description to get a total order[1] we
either must tune the requirement or just rely on the order of
the drivers (as is). Then the more specific entries should be listed
first.

Alternatively if there is no way to distinguish different chips (where
the difference is important) the only possibility is to rely on
additional information that must be provided in a board-specific way.
(i2c is similar here. In the beginning they relied on the slave address,
but this wasn't good enough either.)

Best regards
Uwe

[1] Consider phyid = 0x12345678 and available mask/id pairs:
	0xffffff0f/0x12345608
	0xfffffff0/0x12345670

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

  reply	other threads:[~2019-05-10  7:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-09 20:29 net: micrel: confusion about phyids used in driver Uwe Kleine-König
2019-05-09 20:55 ` Heiner Kallweit
2019-05-09 21:07   ` Andrew Lunn
2019-05-10  7:22     ` Uwe Kleine-König [this message]
2019-07-02 20:31       ` Uwe Kleine-König
2019-07-02 20:55         ` Yuiko.Oshino
2019-08-08  8:36           ` Uwe Kleine-König
2019-08-20 20:25             ` Uwe Kleine-König
2019-08-20 20:30               ` Heiner Kallweit
2019-08-21 17:24               ` Florian Fainelli
2019-08-21 18:49                 ` allan.nielsen
2019-08-21 19:53                   ` Woojung.Huh
2019-10-16  9:09                     ` Uwe Kleine-König
2019-10-16 11:45                       ` Yuiko.Oshino
2019-05-11 14:00     ` Heiner Kallweit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190510072243.h6h3bgvr2ovsh5g5@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=andrew@lunn.ch \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=yuiko.oshino@microchip.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).