[PATCH v2 23/26] misc: lan966x_pci: Introduce board specific data

Herve Codina herve.codina at bootlin.com
Mon May 19 08:00:04 PDT 2025


Hi Andy,

On Thu, 8 May 2025 22:21:41 +0300
Andy Shevchenko <andriy.shevchenko at linux.intel.com> wrote:

> On Wed, May 07, 2025 at 09:13:05AM +0200, Herve Codina wrote:
> > Only one device-tree overlay (lan966x_evb_lan9662_nic.dtbo) is handled
> > and this overlay is directly referenced in lan966x_pci_load_overlay().
> > 
> > This avoid to use the code for an other board.
> > 
> > In order to be more generic and to allow support for other boards (PCI
> > Vendor/Device IDs), introduce the lan966x_pci_info structure and attach
> > it to PCI Vendor/Device IDs handled by the driver.
> > 
> > This structure contains information related to the PCI board such as
> > information related to the dtbo describing the board we have to load.  
> 
> ...
> 
> >  static struct pci_device_id lan966x_pci_ids[] = {
> > -	{ PCI_DEVICE(PCI_VENDOR_ID_EFAR, 0x9660) },
> > +	{ PCI_VDEVICE(EFAR, 0x9660), (kernel_ulong_t)&evb_lan9662_nic_info },  
> 
> PCI_DEVICE_DATA() ?

PCI_DEVICE_DATA() need the device ID defined using a #define in the form
PCI_DEVICE_ID_##vend##_##dev

PCI_VDEVICE() allows the device ID value passed as an integer in the same
way as for PCI_DEVICE().

Also, according to its kdoc, it allows the next field to follow as the
device private data.

IMHO, I think PCI_VDEVICE() use is correct here and I will keep it.

Best regards,
Hervé




More information about the linux-arm-kernel mailing list