Re: serial port driver 8250_pci - pci_device_id structure

From: Greg KH
Date: Tue Jun 14 2005 - 16:21:06 EST


On Tue, Jun 14, 2005 at 04:05:40PM -0500, V. ANANDA KRISHNAN wrote:
> Hi All,
>
> In ppc architecture, I am trying to find out the codes that populate
> the pci_devic_id structure ( drivers/serial/8250_pci.c file) in the
> following init_one function:
>
> static int __devinit
> pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)

It comes from the driver itself, as you point out:

> I have the (pci card) data hard-coded in the following tables of
> 8250_pci.c file:
> static struct pci_device_id serial_pci_tbl[]
> static struct pci_board pci_boards[] __devinitdata={...}

Yup, that's what the pci core sets that pointer to.

> Since I could not find the data in the pci_device_id for pci card, I
> went thru the drivers/pci/search.c and drivers/pci/pci-driver.c files. I
> am not successful in locating those codes that populate the
> pci_device_id structure for a given pci card.

drivers/pci/pci-driver.c::pci_device_probe_static() does it. See the
latest edition of the Linux Device Drivers book for a full description
and walk-through of how a pci device get added and removed from the
driver core (it's free online if you don't want to buy it.)

Hope this helps,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/