Hi,<br><br>I have written a simulated driver for a PCI board and am looking for a clean way to use the driver. Currently, I am setting the PCI ids to PCI_ANY_ID and only allowing a single probe call to go through using a global variable (concurrency issues but I don&#39;t care for the simulation).<br>

<br>static int n<br>...<br>static int fake_board_probe(struct pci_dev *pdev, const struct pci_device_id *ent)<br>{<br>    if (n == 1)<br>        return -1;<br>    n = 1;<br>    ...<br>}<br>static int fake_board_init(void)<br>

{<br>    n = 0;<br>    ....<br>}<br><br>I want to do a cleaner job of this and wanted to write a PCI bridge driver that actually registers the devices with the correct IDs that I need. This also gives me the advantage of being able to register multiple devices which is a useful for the simulation I am working on.<br>

Can anyone point me in the right direction for this? Most of the code (eg. struct pci_controller) seem to be architecture specific.<br><br>The code is available for anyone interested at:<br> <a href="https://github.com/mvanga/wbonesim">https://github.com/mvanga/wbonesim</a><br>

<br>Thanks and best regards.<br>-- <br>/manohar<br>