Re: [PATCH] drm/i915/dmc_wl: Do not check for DMC payload

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2025-01-24 at 16:12 -0300, Gustavo Sousa wrote:
> Enabling and disabling of DMC wakelock is already coupled with enabling
> and disabling of dynamic DC states, which already depend on the DMC
> being properly loaded. As such, we do not need to check if we already
> have a DMC payload parsed in __intel_dmc_wl_supported().
> 
> Furthermore, the presence of such a check causes inconsistencies in the
> refcount if the following sequence of events happen:
> 
>   1. A call to one of the register accessors from intel_de.h is done
>      before the DMC payload is parsed. That causes intel_dmc_wl_get() to
>      be called. Suppose the register offset qualifies as needing the
>      wakelock.
> 
>      In normal circumstances, the refcount would be incremented, but,
>      because __intel_dmc_wl_supported() returns false, the refcount is
>      untouched.
> 
>   2. In a separate worker thread, the DMC firmware is parsed. Parsing of
>      the DMC payload is finished before the corresponding
>      intel_dmc_wl_put() from (1) is called.
> 
>   3. When in the context of (1), intel_dmc_wl_put() gets called, now we
>      have __intel_dmc_wl_supported() returning true and we hit the
>      warning, because the code doesn't expect a zero refcount.
> 
> Let's remove that check, since it is unnecessary and causes the
> inconsistency illustrated above.
> 
> Signed-off-by: Gustavo Sousa <gustavo.sousa@xxxxxxxxx>
> ---

Reviewed-by: Luca Coelho <luciano.coelho@xxxxxxxxx>

--
Cheers,
Luca.




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux