Exemple #1
0
static int __devinit c4_probe(struct pci_dev *dev,
			      const struct pci_device_id *ent)
{
	int nr = ent->driver_data;
	int retval = 0;
	struct capicardparams param;

	if (pci_enable_device(dev) < 0) {
		printk(KERN_ERR "c4: failed to enable AVM-C%d\n", nr);
		return -ENODEV;
	}
	pci_set_master(dev);

	param.port = pci_resource_start(dev, 1);
	param.irq = dev->irq;
	param.membase = pci_resource_start(dev, 0);
	
	printk(KERN_INFO "c4: PCI BIOS reports AVM-C%d at i/o %#x, irq %d, mem %#x\n",
	       nr, param.port, param.irq, param.membase);
	
	retval = c4_add_card(&param, dev, nr);
	if (retval != 0) {
		printk(KERN_ERR "c4: no AVM-C%d at i/o %#x, irq %d detected, mem %#x\n",
		       nr, param.port, param.irq, param.membase);
		return -ENODEV;
	}
	return 0;
}
Exemple #2
0
static int __init search_cards(struct capi_driver * driver,
				int pci_id, int nr)
{
	struct pci_dev *	dev	= NULL;
	int			retval	= 0;

	while ((dev = pci_find_subsys(
			PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285,
			PCI_VENDOR_ID_AVM, pci_id, dev))) {
		struct capicardparams param;

		if (pci_enable_device(dev) < 0) {
		        printk(KERN_ERR "%s: failed to enable AVM-C%d\n",
			       driver->name, nr);
			continue;
		}
		pci_set_master(dev);

		param.port = pci_resource_start(dev, 1);
		param.irq = dev->irq;
		param.membase = pci_resource_start(dev, 0);
  
		printk(KERN_INFO
			"%s: PCI BIOS reports AVM-C%d at i/o %#x, irq %d, mem %#x\n",
			driver->name, nr, param.port, param.irq, param.membase);
		retval = c4_add_card(driver, &param, nr);
		if (retval != 0) {
		        printk(KERN_ERR
			"%s: no AVM-C%d at i/o %#x, irq %d detected, mem %#x\n",
			driver->name, nr, param.port, param.irq, param.membase);
			continue;
		}
		ncards++;
	}
	return retval;
}