Здраствуйте!
Суть моего вопроса в следующем: как реализовать поддержку драйвером нескольких экземпляров (идентичных) устройства.
Вот примерная структура функции инициализации.
Обе платы обнаруживаются, ресурсы доступны но что делать дальше?(Debian Etch, 2.6.20)
static int __devinit probe_xdsp(struct pci_dev *pcidev, const struct pci_device_id *pci_id)
{
if(!(pcard = kmalloc(sizeof(struct xdsp_dev), GFP_KERNEL)))
{
....
}
....
if ((ret=pci_enable_device(pcidev)))
{
....
}
....
if((pci_request_regions(pcidev, "xdsp")) == 0)
{
....
}
....
if (request_irq(pcidev->irq, &xdsp_interrupt, SA_INTERRUPT, "xdsp", pcard))
{
....
}
....
pcard->irq = pcidev->irq;
pcard->io = pci_resource_start(pcidev, 0);
....
// DMA block
memBlock = ioremap(0x7d800000, 0x2800000);
memset(memBlock, 0x0, 0x2800000);
//end of DMA block
major = register_chrdev(251, "/dev/xdsp1", &xdsp_fops);
if(major < 0) {pcard->devNumber = 1; ....}
major = register_chrdev(251, "/dev/xdsp2", &xdsp_fops);
if(major < 0) {pcard->devNumber = 2; ....}
pci_set_drvdata(pcidev, pcard);
return 0;
}
modprobe xdsp
Заранее благодарен.