Blame view

drivers/eisa/pci_eisa.c 1.66 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  /*
   * Minimalist driver for a generic PCI-to-EISA bridge.
   *
   * (C) 2003 Marc Zyngier <maz@wild-wind.fr.eu.org>
   *
   * This code is released under the GPL version 2.
   *
   * Ivan Kokshaysky <ink@jurassic.park.msu.ru> :
   * Generalisation from i82375 to PCI_CLASS_BRIDGE_EISA.
   */
  
  #include <linux/kernel.h>
  #include <linux/device.h>
  #include <linux/eisa.h>
  #include <linux/pci.h>
  #include <linux/module.h>
  #include <linux/init.h>
  
  /* There is only *one* pci_eisa device per machine, right ? */
  static struct eisa_root_device pci_eisa_root;
74b9a2978   Adrian Bunk   [PATCH] drivers/e...
21
22
  static int __init pci_eisa_init(struct pci_dev *pdev,
  				const struct pci_device_id *ent)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
23
24
25
26
27
28
29
30
31
32
33
  {
  	int rc;
  
  	if ((rc = pci_enable_device (pdev))) {
  		printk (KERN_ERR "pci_eisa : Could not enable device %s
  ",
  			pci_name(pdev));
  		return rc;
  	}
  
  	pci_eisa_root.dev              = &pdev->dev;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
34
35
36
37
  	pci_eisa_root.res	       = pdev->bus->resource[0];
  	pci_eisa_root.bus_base_addr    = pdev->bus->resource[0]->start;
  	pci_eisa_root.slots	       = EISA_MAX_SLOTS;
  	pci_eisa_root.dma_mask         = pdev->dma_mask;
4b9d0d3b8   Greg Kroah-Hartman   eisa: remove driv...
38
  	dev_set_drvdata(pci_eisa_root.dev, &pci_eisa_root);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
  
  	if (eisa_root_register (&pci_eisa_root)) {
  		printk (KERN_ERR "pci_eisa : Could not register EISA root
  ");
  		return -1;
  	}
  
  	return 0;
  }
  
  static struct pci_device_id pci_eisa_pci_tbl[] = {
  	{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
  	  PCI_CLASS_BRIDGE_EISA << 8, 0xffff00, 0 },
  	{ 0, }
  };
  
  static struct pci_driver pci_eisa_driver = {
  	.name		= "pci_eisa",
  	.id_table	= pci_eisa_pci_tbl,
  	.probe		= pci_eisa_init,
  };
  
  static int __init pci_eisa_init_module (void)
  {
  	return pci_register_driver (&pci_eisa_driver);
  }
  
  device_initcall(pci_eisa_init_module);
  MODULE_DEVICE_TABLE(pci, pci_eisa_pci_tbl);