 694f88ef7a
			
		
	
	
	694f88ef7a
	
	
	
		
			
			Remove 'port_type' field in struct pcie_port_data(), because we can get port type information from struct pci_dev. With this change, this patch also does followings: - Remove struct pcie_port_data because it no longer has any field. - Remove portdrv private definitions about port type (PCIE_RC_PORT, PCIE_SW_UPSTREAM_PORT and PCIE_SW_DOWNSTREAM_PORT), and use generic definitions instead. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * File:	portdrv_bus.c
 | |
|  * Purpose:	PCI Express Port Bus Driver's Bus Overloading Functions
 | |
|  *
 | |
|  * Copyright (C) 2004 Intel
 | |
|  * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
 | |
|  */
 | |
| 
 | |
| #include <linux/module.h>
 | |
| #include <linux/pci.h>
 | |
| #include <linux/kernel.h>
 | |
| #include <linux/errno.h>
 | |
| #include <linux/pm.h>
 | |
| 
 | |
| #include <linux/pcieport_if.h>
 | |
| #include "portdrv.h"
 | |
| 
 | |
| static int pcie_port_bus_match(struct device *dev, struct device_driver *drv);
 | |
| 
 | |
| struct bus_type pcie_port_bus_type = {
 | |
| 	.name 		= "pci_express",
 | |
| 	.match 		= pcie_port_bus_match,
 | |
| };
 | |
| EXPORT_SYMBOL_GPL(pcie_port_bus_type);
 | |
| 
 | |
| static int pcie_port_bus_match(struct device *dev, struct device_driver *drv)
 | |
| {
 | |
| 	struct pcie_device *pciedev;
 | |
| 	struct pcie_port_service_driver *driver;
 | |
| 
 | |
| 	if (drv->bus != &pcie_port_bus_type || dev->bus != &pcie_port_bus_type)
 | |
| 		return 0;
 | |
| 
 | |
| 	pciedev = to_pcie_device(dev);
 | |
| 	driver = to_service_driver(drv);
 | |
| 
 | |
| 	if (driver->service != pciedev->service)
 | |
| 		return 0;
 | |
| 
 | |
| 	if ((driver->port_type != PCIE_ANY_PORT) &&
 | |
| 	    (driver->port_type != pciedev->port->pcie_type))
 | |
| 		return 0;
 | |
| 
 | |
| 	return 1;
 | |
| }
 | |
| 
 | |
| int pcie_port_bus_register(void)
 | |
| {
 | |
| 	return bus_register(&pcie_port_bus_type);
 | |
| }
 | |
| 
 | |
| void pcie_port_bus_unregister(void)
 | |
| {
 | |
| 	bus_unregister(&pcie_port_bus_type);
 | |
| }
 |