Skip to content

Commit

Permalink
drm: remove the DRM pci domain
Browse files Browse the repository at this point in the history
This patch removes the pci_domain from the DRM device structure, and
gets it via a macro that either asks the platform or does the alpha special
case. jgarzik asked for this to just use the platform magic, but I've no
alpha experience and I'd rather not just break it and wait for someone to
give out.

Signed-off-by: Dave Airlie <airlied@linux.ie>
  • Loading branch information
Dave Airlie committed Sep 21, 2006
1 parent 242ef0e commit 3322960
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 7 deletions.
7 changes: 6 additions & 1 deletion drivers/char/drm/drmP.h
Original file line number Diff line number Diff line change
Expand Up @@ -699,7 +699,6 @@ typedef struct drm_device {
drm_agp_head_t *agp; /**< AGP data */

struct pci_dev *pdev; /**< PCI device structure */
int pci_domain; /**< PCI bus domain number */
#ifdef __alpha__
struct pci_controller *hose;
#endif
Expand All @@ -721,6 +720,12 @@ static __inline__ int drm_core_check_feature(struct drm_device *dev,
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
static inline int drm_core_has_AGP(struct drm_device *dev)
{
Expand Down
4 changes: 2 additions & 2 deletions drivers/char/drm/drm_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ int drm_setunique(struct inode *inode, struct file *filp,
domain = bus >> 8;
bus &= 0xff;

if ((domain != dev->pci_domain) ||
if ((domain != drm_get_pci_domain(dev)) ||
(bus != dev->pdev->bus->number) ||
(slot != PCI_SLOT(dev->pdev->devfn)) ||
(func != PCI_FUNC(dev->pdev->devfn)))
Expand All @@ -149,7 +149,7 @@ static int drm_set_busid(drm_device_t * dev)
return ENOMEM;

len = snprintf(dev->unique, dev->unique_len, "pci:%04x:%02x:%02x.%d",
dev->pci_domain, dev->pdev->bus->number,
drm_get_pci_domain(dev), dev->pdev->bus->number,
PCI_SLOT(dev->pdev->devfn),
PCI_FUNC(dev->pdev->devfn));

Expand Down
2 changes: 1 addition & 1 deletion drivers/char/drm/drm_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ int drm_irq_by_busid(struct inode *inode, struct file *filp,
if (copy_from_user(&p, argp, sizeof(p)))
return -EFAULT;

if ((p.busnum >> 8) != dev->pci_domain ||
if ((p.busnum >> 8) != drm_get_pci_domain(dev) ||
(p.busnum & 0xff) != dev->pdev->bus->number ||
p.devnum != PCI_SLOT(dev->pdev->devfn) || p.funcnum != PCI_FUNC(dev->pdev->devfn))
return -EINVAL;
Expand Down
3 changes: 0 additions & 3 deletions drivers/char/drm/drm_stub.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,6 @@ static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev,

#ifdef __alpha__
dev->hose = pdev->sysdata;
dev->pci_domain = dev->hose->bus->number;
#else
dev->pci_domain = 0;
#endif
dev->irq = pdev->irq;

Expand Down

0 comments on commit 3322960

Please sign in to comment.