remove local copies of pci domain/bus/slot/num

main
Dave Airlie 2006-08-19 16:55:00 +10:00
parent cc71393559
commit 3a681bb4c1
4 changed files with 17 additions and 17 deletions

View File

@ -747,10 +747,6 @@ typedef struct drm_device {
drm_agp_head_t *agp; /**< AGP data */ drm_agp_head_t *agp; /**< AGP data */
struct pci_dev *pdev; /**< PCI device structure */ struct pci_dev *pdev; /**< PCI device structure */
int pci_domain; /**< PCI bus domain number */
int pci_bus; /**< PCI bus number */
int pci_slot; /**< PCI slot number */
int pci_func; /**< PCI function number */
#ifdef __alpha__ #ifdef __alpha__
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,3) #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,3)
struct pci_controler *hose; struct pci_controler *hose;
@ -776,6 +772,12 @@ static __inline__ int drm_core_check_feature(struct drm_device *dev,
return ((dev->driver->driver_features & feature) ? 1 : 0); return ((dev->driver->driver_features & feature) ? 1 : 0);
} }
#ifdef __alpha__
#define drm_get_pci_domain(dev) dev->hose->bus->number
#else
#define drm_get_pci_domain(dev) pci_domain_nr(dev->pdev->bus)
#endif
#if __OS_HAS_AGP #if __OS_HAS_AGP
static inline int drm_core_has_AGP(struct drm_device *dev) static inline int drm_core_has_AGP(struct drm_device *dev)
{ {

View File

@ -125,9 +125,10 @@ int drm_setunique(struct inode *inode, struct file *filp,
domain = bus >> 8; domain = bus >> 8;
bus &= 0xff; bus &= 0xff;
if ((domain != dev->pci_domain) || if ((domain != drm_get_pci_domain(dev)) ||
(bus != dev->pci_bus) || (bus != dev->pdev->bus->number) ||
(slot != dev->pci_slot) || (func != dev->pci_func)) (slot != PCI_SLOT(dev->pdev->devfn)) ||
(func != PCI_FUNC(dev->pdev->devfn)))
return -EINVAL; return -EINVAL;
return 0; return 0;
@ -145,7 +146,10 @@ static int drm_set_busid(drm_device_t * dev)
return ENOMEM; return ENOMEM;
len = snprintf(dev->unique, dev->unique_len, "pci:%04x:%02x:%02x.%d", len = snprintf(dev->unique, dev->unique_len, "pci:%04x:%02x:%02x.%d",
dev->pci_domain, dev->pci_bus, dev->pci_slot, dev->pci_func); drm_get_pci_domain(dev),
dev->pdev->bus->number,
PCI_SLOT(dev->pdev->devfn),
PCI_FUNC(dev->pdev->devfn));
if (len > dev->unique_len) if (len > dev->unique_len)
DRM_ERROR("buffer overflow"); DRM_ERROR("buffer overflow");

View File

@ -64,9 +64,9 @@ int drm_irq_by_busid(struct inode *inode, struct file *filp,
if (copy_from_user(&p, argp, sizeof(p))) if (copy_from_user(&p, argp, sizeof(p)))
return -EFAULT; return -EFAULT;
if ((p.busnum >> 8) != dev->pci_domain || if ((p.busnum >> 8) != drm_get_pci_domain(dev) ||
(p.busnum & 0xff) != dev->pci_bus || (p.busnum & 0xff) != dev->pdev->bus->number ||
p.devnum != dev->pci_slot || p.funcnum != dev->pci_func) p.devnum != PCI_SLOT(dev->pdev->devfn) || p.funcnum != PCI_FUNC(dev->pdev->devfn))
return -EINVAL; return -EINVAL;
p.irq = dev->irq; p.irq = dev->irq;

View File

@ -69,13 +69,7 @@ static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev,
#ifdef __alpha__ #ifdef __alpha__
dev->hose = pdev->sysdata; dev->hose = pdev->sysdata;
dev->pci_domain = dev->hose->bus->number;
#else
dev->pci_domain = 0;
#endif #endif
dev->pci_bus = pdev->bus->number;
dev->pci_slot = PCI_SLOT(pdev->devfn);
dev->pci_func = PCI_FUNC(pdev->devfn);
dev->irq = pdev->irq; dev->irq = pdev->irq;
dev->maplist = drm_calloc(1, sizeof(*dev->maplist), DRM_MEM_MAPS); dev->maplist = drm_calloc(1, sizeof(*dev->maplist), DRM_MEM_MAPS);