Hi Am 02.08.21 um 13:52 schrieb Hans de Goede: > Hi, > > On 7/6/21 9:50 AM, Thomas Zimmermann wrote: >> Drop the DRM IRQ midlayer in favor of Linux IRQ interfaces. DRM's >> IRQ helpers are mostly useful for UMS drivers. Modern KMS drivers >> don't benefit from using it. >> >> Signed-off-by: Thomas Zimmermann > > Thanks, patch looks good to me: > > Reviewed-by: Hans de Goede > > And to make sure things don't regress I've also given this a test spin: > > Tested-by: Hans de Goede > > Note I assume that you will push this out do drmi-misc yourself > (if you've not done so already given that this patch is somewhat old). Although it's been merged already, thanks for testing the patch. Best regards Thomas > > Regards, > > Hans > > > >> --- >> drivers/gpu/drm/vboxvideo/vbox_drv.c | 1 - >> drivers/gpu/drm/vboxvideo/vbox_drv.h | 1 - >> drivers/gpu/drm/vboxvideo/vbox_irq.c | 16 +++++++++++----- >> 3 files changed, 11 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpu/drm/vboxvideo/vbox_drv.c b/drivers/gpu/drm/vboxvideo/vbox_drv.c >> index 879a2445cc44..2b81cb259d23 100644 >> --- a/drivers/gpu/drm/vboxvideo/vbox_drv.c >> +++ b/drivers/gpu/drm/vboxvideo/vbox_drv.c >> @@ -184,7 +184,6 @@ static const struct drm_driver driver = { >> .lastclose = drm_fb_helper_lastclose, >> >> .fops = &vbox_fops, >> - .irq_handler = vbox_irq_handler, >> .name = DRIVER_NAME, >> .desc = DRIVER_DESC, >> .date = DRIVER_DATE, >> diff --git a/drivers/gpu/drm/vboxvideo/vbox_drv.h b/drivers/gpu/drm/vboxvideo/vbox_drv.h >> index ac7c2effc46f..4903b91d7fe4 100644 >> --- a/drivers/gpu/drm/vboxvideo/vbox_drv.h >> +++ b/drivers/gpu/drm/vboxvideo/vbox_drv.h >> @@ -145,7 +145,6 @@ void vbox_mm_fini(struct vbox_private *vbox); >> int vbox_irq_init(struct vbox_private *vbox); >> void vbox_irq_fini(struct vbox_private *vbox); >> void vbox_report_hotplug(struct vbox_private *vbox); >> -irqreturn_t vbox_irq_handler(int irq, void *arg); >> >> /* vbox_hgsmi.c */ >> void *hgsmi_buffer_alloc(struct gen_pool *guest_pool, size_t size, >> diff --git a/drivers/gpu/drm/vboxvideo/vbox_irq.c b/drivers/gpu/drm/vboxvideo/vbox_irq.c >> index b3ded68603ba..903a6c48ee8b 100644 >> --- a/drivers/gpu/drm/vboxvideo/vbox_irq.c >> +++ b/drivers/gpu/drm/vboxvideo/vbox_irq.c >> @@ -10,7 +10,8 @@ >> */ >> >> #include >> -#include >> + >> +#include >> #include >> >> #include "vbox_drv.h" >> @@ -31,7 +32,7 @@ void vbox_report_hotplug(struct vbox_private *vbox) >> schedule_work(&vbox->hotplug_work); >> } >> >> -irqreturn_t vbox_irq_handler(int irq, void *arg) >> +static irqreturn_t vbox_irq_handler(int irq, void *arg) >> { >> struct drm_device *dev = (struct drm_device *)arg; >> struct vbox_private *vbox = to_vbox_dev(dev); >> @@ -170,16 +171,21 @@ static void vbox_hotplug_worker(struct work_struct *work) >> >> int vbox_irq_init(struct vbox_private *vbox) >> { >> - struct pci_dev *pdev = to_pci_dev(vbox->ddev.dev); >> + struct drm_device *dev = &vbox->ddev; >> + struct pci_dev *pdev = to_pci_dev(dev->dev); >> >> INIT_WORK(&vbox->hotplug_work, vbox_hotplug_worker); >> vbox_update_mode_hints(vbox); >> >> - return drm_irq_install(&vbox->ddev, pdev->irq); >> + /* PCI devices require shared interrupts. */ >> + return request_irq(pdev->irq, vbox_irq_handler, IRQF_SHARED, dev->driver->name, dev); >> } >> >> void vbox_irq_fini(struct vbox_private *vbox) >> { >> - drm_irq_uninstall(&vbox->ddev); >> + struct drm_device *dev = &vbox->ddev; >> + struct pci_dev *pdev = to_pci_dev(dev->dev); >> + >> + free_irq(pdev->irq, dev); >> flush_work(&vbox->hotplug_work); >> } >> > -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer