Hi Bingbu, On Thu, 2023-10-19 at 16:28 +0800, Bingbu Cao wrote: > On 10/3/23 6:13 PM, Andreas Helbech Kleist wrote: > > On Thu, 2023-07-27 at 15:15 +0800, bingbu.cao@xxxxxxxxx wrote: > > > > > +static const struct pci_device_id isys_pci_tbl[] = { > > > + { PCI_VDEVICE(INTEL, IPU6_PCI_ID) }, > > > + { PCI_VDEVICE(INTEL, IPU6SE_PCI_ID) }, > > > + { PCI_VDEVICE(INTEL, IPU6EP_ADL_P_PCI_ID) }, > > > + { PCI_VDEVICE(INTEL, IPU6EP_ADL_N_PCI_ID) }, > > > + { PCI_VDEVICE(INTEL, IPU6EP_RPL_P_PCI_ID) }, > > > + { PCI_VDEVICE(INTEL, IPU6EP_MTL_PCI_ID) }, > > > + { } > > > +}; > > > > Unused > > Have you tried that whether isys driver can be auto-loaded w/o > this pci id table? It cannot on my side. I've only tried it on my WIP IPU4 hack of this driver, but I think it is correct for IPU6 as well. The reason is that isys_driver is an auxiliary_driver, so I don't think MODULE_DEVICE_TABLE(pci, isys_pci_tbl); has any effect. The PCI probe happens in ipu6_pci_probe in ipu6.c (because it has a pci_device_id table as well), and the isys_driver is probed indirectly by ipu6-bus.c. /Andreas