mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-30 16:13:18 +00:00 
			
		
		
		
	 4b9d0d3b81
			
		
	
	
		4b9d0d3b81
		
	
	
	
	
		
			
			In the near future, the driver core is going to not allow direct access to the driver_data pointer in struct device. Instead, the functions dev_get_drvdata() and dev_set_drvdata() should be used. These functions have been around since the beginning, so are backwards compatible with all older kernel versions. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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;
 | |
| 
 | |
| static int __init pci_eisa_init(struct pci_dev *pdev,
 | |
| 				const struct pci_device_id *ent)
 | |
| {
 | |
| 	int rc;
 | |
| 
 | |
| 	if ((rc = pci_enable_device (pdev))) {
 | |
| 		printk (KERN_ERR "pci_eisa : Could not enable device %s\n",
 | |
| 			pci_name(pdev));
 | |
| 		return rc;
 | |
| 	}
 | |
| 
 | |
| 	pci_eisa_root.dev              = &pdev->dev;
 | |
| 	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;
 | |
| 	dev_set_drvdata(pci_eisa_root.dev, &pci_eisa_root);
 | |
| 
 | |
| 	if (eisa_root_register (&pci_eisa_root)) {
 | |
| 		printk (KERN_ERR "pci_eisa : Could not register EISA root\n");
 | |
| 		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);
 |