drm: kill drm_device->irq
Like the last patch but adds a macro to get at the irq value instead of dereferencing pdev directly. Should make things easier for the BSD guys and if we ever support non-PCI devices. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
committed by
Dave Airlie
parent
e0f0754ff6
commit
9bfbd5cb72
@@ -228,12 +228,9 @@ int drm_irq_install(struct drm_device *dev)
|
|||||||
if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED))
|
if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED))
|
||||||
sh_flags = IRQF_SHARED;
|
sh_flags = IRQF_SHARED;
|
||||||
|
|
||||||
ret = request_irq(dev->pdev->irq, dev->driver->irq_handler,
|
ret = request_irq(drm_dev_to_irq(dev), dev->driver->irq_handler,
|
||||||
sh_flags, dev->devname, dev);
|
sh_flags, dev->devname, dev);
|
||||||
/* Expose the device irq number to drivers that want to export it for
|
|
||||||
* whatever reason.
|
|
||||||
*/
|
|
||||||
dev->irq = dev->pdev->irq;
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
mutex_lock(&dev->struct_mutex);
|
mutex_lock(&dev->struct_mutex);
|
||||||
dev->irq_enabled = 0;
|
dev->irq_enabled = 0;
|
||||||
|
@@ -107,7 +107,6 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev,
|
|||||||
#ifdef __alpha__
|
#ifdef __alpha__
|
||||||
dev->hose = pdev->sysdata;
|
dev->hose = pdev->sysdata;
|
||||||
#endif
|
#endif
|
||||||
dev->irq = pdev->irq;
|
|
||||||
|
|
||||||
if (drm_ht_create(&dev->map_hash, 12)) {
|
if (drm_ht_create(&dev->map_hash, 12)) {
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@@ -1022,7 +1022,7 @@ static int mga_getparam(struct drm_device *dev, void *data, struct drm_file *fil
|
|||||||
|
|
||||||
switch (param->param) {
|
switch (param->param) {
|
||||||
case MGA_PARAM_IRQ_NR:
|
case MGA_PARAM_IRQ_NR:
|
||||||
value = dev->irq;
|
value = drm_dev_to_irq(dev);
|
||||||
break;
|
break;
|
||||||
case MGA_PARAM_CARD_TYPE:
|
case MGA_PARAM_CARD_TYPE:
|
||||||
value = dev_priv->chipset;
|
value = dev_priv->chipset;
|
||||||
|
@@ -1629,7 +1629,7 @@ static int r128_getparam(struct drm_device *dev, void *data, struct drm_file *fi
|
|||||||
|
|
||||||
switch (param->param) {
|
switch (param->param) {
|
||||||
case R128_PARAM_IRQ_NR:
|
case R128_PARAM_IRQ_NR:
|
||||||
value = dev->irq;
|
value = drm_dev_to_irq(dev);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@@ -2997,7 +2997,7 @@ static int radeon_cp_getparam(struct drm_device *dev, void *data, struct drm_fil
|
|||||||
value = GET_SCRATCH(2);
|
value = GET_SCRATCH(2);
|
||||||
break;
|
break;
|
||||||
case RADEON_PARAM_IRQ_NR:
|
case RADEON_PARAM_IRQ_NR:
|
||||||
value = dev->irq;
|
value = drm_dev_to_irq(dev);
|
||||||
break;
|
break;
|
||||||
case RADEON_PARAM_GART_BASE:
|
case RADEON_PARAM_GART_BASE:
|
||||||
value = dev_priv->gart_vm_start;
|
value = dev_priv->gart_vm_start;
|
||||||
|
@@ -354,9 +354,6 @@ int via_wait_irq(struct drm_device *dev, void *data, struct drm_file *file_priv)
|
|||||||
drm_via_irq_t *cur_irq = dev_priv->via_irqs;
|
drm_via_irq_t *cur_irq = dev_priv->via_irqs;
|
||||||
int force_sequence;
|
int force_sequence;
|
||||||
|
|
||||||
if (!dev->irq)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (irqwait->request.irq >= dev_priv->num_irqs) {
|
if (irqwait->request.irq >= dev_priv->num_irqs) {
|
||||||
DRM_ERROR("Trying to wait on unknown irq %d\n",
|
DRM_ERROR("Trying to wait on unknown irq %d\n",
|
||||||
irqwait->request.irq);
|
irqwait->request.irq);
|
||||||
|
@@ -93,8 +93,7 @@ int via_final_context(struct drm_device *dev, int context)
|
|||||||
/* Last context, perform cleanup */
|
/* Last context, perform cleanup */
|
||||||
if (dev->ctx_count == 1 && dev->dev_private) {
|
if (dev->ctx_count == 1 && dev->dev_private) {
|
||||||
DRM_DEBUG("Last Context\n");
|
DRM_DEBUG("Last Context\n");
|
||||||
if (dev->irq)
|
drm_irq_uninstall(dev);
|
||||||
drm_irq_uninstall(dev);
|
|
||||||
via_cleanup_futex(dev_priv);
|
via_cleanup_futex(dev_priv);
|
||||||
via_do_cleanup_map(dev);
|
via_do_cleanup_map(dev);
|
||||||
}
|
}
|
||||||
|
@@ -824,7 +824,6 @@ struct drm_device {
|
|||||||
|
|
||||||
/** \name Context support */
|
/** \name Context support */
|
||||||
/*@{ */
|
/*@{ */
|
||||||
int irq; /**< Interrupt used by board */
|
|
||||||
int irq_enabled; /**< True if irq handler is enabled */
|
int irq_enabled; /**< True if irq handler is enabled */
|
||||||
__volatile__ long context_flag; /**< Context swapping flag */
|
__volatile__ long context_flag; /**< Context swapping flag */
|
||||||
__volatile__ long interrupt_flag; /**< Interruption handler flag */
|
__volatile__ long interrupt_flag; /**< Interruption handler flag */
|
||||||
@@ -915,6 +914,11 @@ struct drm_device {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static inline int drm_dev_to_irq(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
return dev->pdev->irq;
|
||||||
|
}
|
||||||
|
|
||||||
static __inline__ int drm_core_check_feature(struct drm_device *dev,
|
static __inline__ int drm_core_check_feature(struct drm_device *dev,
|
||||||
int feature)
|
int feature)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user