On Thu, 2025-06-26 at 11:20 +0300, Imre Deak wrote:
> From: Imre Deak <[email protected]>
> 
> The intel_dp_get_dpcd() function called from an HPD IRQ handler reads
> out the DPRX capabilities from the sink and updates these in the
> intel_dp encoder state. Since the IRQ handler can run in parallel with
> the encoder/connector detection (intel_dp_detect()) which also calls
> intel_dp_get_dpcd(), the encoder state can get corrupted, since the two
> updates happen in a racy way.
> 
> Fix the above by checking only for any change in the sink count value in
> the HPD IRQ handler, without updating the encoder state.
> 
> Note that any state change in the sink requiring an update of the
> encoder state is handled via the sink's SINK_COUNT change,
> RX_CAPS_CHANGED, DOWNSTREAM_PORT_STATUS_CHANGED signaling, which all
> should result in a full connector detection.
> 
> Signed-off-by: Imre Deak <[email protected]>
> ---

Reviewed-by: Luca Coelho <[email protected]>

--
Cheers,
Luca.

Reply via email to