Just a kind reminder to check this patch, thank you!

Best regards,
NepNep7601

On 27/08/2026 03:44, NepNep7601 wrote:
> acquire_i2c_hw_engine() opens the DDC pins before setting up the
> hardware engine. If setup_engine() fails, the error path releases the
> engine but leaves the DDC pins open and the engine's DDC pointer set.
> 
> Subsequent attempts to open the pins then return
> GPIO_RESULT_ALREADY_OPENED, preventing further I2C transfers, EDID
> reads and hotplug detection on that port until reboot.
> 
> Mirror the normal teardown path by closing the DDC pins and clearing
> the pointer after releasing the engine.
> 
> Assisted-by: Codex:gpt-5
> Signed-off-by: NepNep7601 <[email protected]>
> ---
>   drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c 
> b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c
> index 05892ab4529f..e7a05494abab 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c
> @@ -485,6 +485,8 @@ struct dce_i2c_hw *acquire_i2c_hw_engine(
>   
>       if (!setup_engine(dce_i2c_hw)) {
>               release_engine(dce_i2c_hw);
> +             dal_ddc_close(dce_i2c_hw->ddc);
> +             dce_i2c_hw->ddc = NULL;
>               return NULL;
>       }

Reply via email to