Re: [PATCH net-next v4 11/12] microchip: lan865x: add driver support for Microchip's LAN865X MAC-PHY

From: Conor Dooley
Date: Sat Apr 27 2024 - 16:22:40 EST


On Sat, Apr 27, 2024 at 10:13:33PM +0200, Ramón Nordin Rodriguez wrote:
> On Sat, Apr 27, 2024 at 08:57:43PM +0100, Conor Dooley wrote:
> > > static const struct of_device_id lan865x_dt_ids[] = {
> > > - { .compatible = "microchip,lan8651", "microchip,lan8650" },
> >
> > Huh, that's very strange. I don't see a single instance in the tree of a
> > of_device_id struct like this with two compatibles like this (at least
> > with a search of `rg "\.compatible.*\", \"" drivers/`.
> >
> > Given the fallbacks in the binding, only "microchip,lan8650" actually
> > needs to be here.
> >
> > > + { .compatible = "microchip,lan865x", "microchip,lan8650" },
> > > { /* Sentinel */ }
> > > };
> > > MODULE_DEVICE_TABLE(of, lan865x_dt_ids);
> > >
> > > Along with compatible = "microchip,lan865x" in the dts
> >
> > Just to be clear, the compatible w/ an x is unacceptable due to the
> > wildcard and the binding should stay as-is. Whatever probing bugs
> > the code has need to be resolved instead :)
> >
>
> All right, so when I change to
>
> @@ -364,7 +364,7 @@ static void lan865x_remove(struct spi_device *spi)
> }
>
> static const struct of_device_id lan865x_dt_ids[] = {
> - { .compatible = "microchip,lan8651", "microchip,lan8650" },
> + { .compatible = "microchip,lan8650" },
> { /* Sentinel */ }
> };
> MODULE_DEVICE_TABLE(of, lan865x_dt_ids);
>
> I still get the output
> [ 0.124266] SPI driver lan865x has no spi_device_id for microchip,lan8650
> But the driver does probe and I get a network interface.
>
> If no one beats me to it I'll single step the probe tomorrow.

I think the error pretty much is what it says it is, the driver doesn't
appear to have a spi_device_id table containing lan8650. The name of
the driver is lan685x which is used in the fallback clause in
__spi_register_driver(), so it complains as it does not find lan8650 in
either. If my understanding is correct, either a spi_device_id table is
required or the driver needs a rename with s/x/0/.

Cheers,
Conor.

Attachment: signature.asc
Description: PGP signature