Looks good to me, I have a couple of questions below:

El vie, 25-09-2026 a las 16:10 -0300, Maíra Canal escribió:
(...)
> diff --git a/drivers/gpu/drm/vc4/vc4_irq.c
> b/drivers/gpu/drm/vc4/vc4_irq.c
> index 7877d493d80e..98a8db720091 100644
> --- a/drivers/gpu/drm/vc4/vc4_irq.c
> +++ b/drivers/gpu/drm/vc4/vc4_irq.c
> @@ -276,7 +276,7 @@ vc4_irq_disable(struct drm_device *dev)
>       V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS);
>  
>       /* Finish any interrupt handler still in flight. */
> -     synchronize_irq(vc4->irq);
> +     disable_irq(vc4->irq);

With this change, do we still need the 2 V3D_WRITEs above this?
> 
> 
>       cancel_work_sync(&vc4->overflow_mem_work);
>  }
> @@ -284,7 +284,6 @@ vc4_irq_disable(struct drm_device *dev)
>  int vc4_irq_install(struct drm_device *dev, int irq)
>  {
>       struct vc4_dev *vc4 = to_vc4_dev(dev);
> -     int ret;
>  
>       if (WARN_ON_ONCE(vc4->gen > VC4_GEN_4))
>               return -ENODEV;
> @@ -298,19 +297,8 @@ int vc4_irq_install(struct drm_device *dev, int
> irq)
>       init_waitqueue_head(&vc4->job_wait_queue);
>       INIT_WORK(&vc4->overflow_mem_work, vc4_overflow_mem_work);
>  
> -     /* Clear any pending interrupts someone might have left
> around
> -      * for us.
> -      */
> -     V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS);

Why this change?

> -
> -     ret = devm_request_irq(dev->dev, irq, vc4_irq, 0,
> -                            dev_name(dev->dev), dev);
> -     if (ret)
> -             return ret;
> -
> -     vc4_irq_enable(dev);
> -
> -     return 0;
> +     return devm_request_irq(dev->dev, irq, vc4_irq,
> IRQF_NO_AUTOEN,
> +                             dev_name(dev->dev), dev);
>  }

Reply via email to