[PATCH v3 6/6] drm/bridge: cdns-mhdp8546: Fix the interrupt enable/disable
Tomi Valkeinen
tomi.valkeinen at ti.com
Mon Nov 23 14:54:30 UTC 2020
On 19/11/2020 18:01, Nikhil Devshatwar wrote:
> When removing the tidss driver, there is a warning reported by
> kernel about an unhandled interrupt for mhdp driver.
>
> [ 43.238895] irq 31: nobody cared (try booting with the "irqpoll" option)
> ... [snipped backtrace]
> [ 43.330735] handlers:
> [ 43.333020] [<000000005367c4f9>] irq_default_primary_handler threaded [<000000007e02b601>]
> cdns_mhdp_irq_handler [cdns_mhdp8546]
> [ 43.344607] Disabling IRQ #31
>
> This happens because as part of cdns_mhdp_bridge_hpd_disable, driver tries
> to disable the interrupts. While disabling the SW_EVENT interrupts,
> it accidentally enables the MBOX interrupts, which are not handled by
> the driver.
>
> Fix this with a read-modify-write to update only required bits.
> Use the enable / disable function as required in other places.
>
> Signed-off-by: Nikhil Devshatwar <nikhil.nd at ti.com>
> Reviewed-by: Swapnil Jakhade <sjakhade at cadence.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
I think this is fine as a fix for this issue, but at some point the irq management needs some work.
E.g. we call cdns_mhdp_bridge_hpd_enable when attaching/enabling the hw, but also via
drm_bridge_funcs->hpd_enable. This doesn't make sense, as one of those calls doesn't achieve
anything, as cdns_mhdp_bridge_hpd_enable has already been called.
Tomi
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
More information about the dri-devel
mailing list