diff options
Diffstat (limited to 'drivers/gpu/drm/qxl/qxl_irq.c')
| -rw-r--r-- | drivers/gpu/drm/qxl/qxl_irq.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_irq.c b/drivers/gpu/drm/qxl/qxl_irq.c index 21393dc4700..0bf1e20c6e4 100644 --- a/drivers/gpu/drm/qxl/qxl_irq.c +++ b/drivers/gpu/drm/qxl/qxl_irq.c @@ -25,7 +25,7 @@  #include "qxl_drv.h" -irqreturn_t qxl_irq_handler(DRM_IRQ_ARGS) +irqreturn_t qxl_irq_handler(int irq, void *arg)  {  	struct drm_device *dev = (struct drm_device *) arg;  	struct qxl_device *qdev = (struct qxl_device *)dev->dev_private; @@ -33,6 +33,9 @@ irqreturn_t qxl_irq_handler(DRM_IRQ_ARGS)  	pending = xchg(&qdev->ram_header->int_pending, 0); +	if (!pending) +		return IRQ_NONE; +  	atomic_inc(&qdev->irq_received);  	if (pending & QXL_INTERRUPT_DISPLAY) { @@ -87,7 +90,7 @@ int qxl_irq_init(struct qxl_device *qdev)  	atomic_set(&qdev->irq_received_cursor, 0);  	atomic_set(&qdev->irq_received_io_cmd, 0);  	qdev->irq_received_error = 0; -	ret = drm_irq_install(qdev->ddev); +	ret = drm_irq_install(qdev->ddev, qdev->ddev->pdev->irq);  	qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;  	if (unlikely(ret != 0)) {  		DRM_ERROR("Failed installing irq: %d\n", ret);  | 
