On 2025-10-29 12:54, Timur Kristóf wrote:
> On Wed, 2025-10-29 at 12:16 -0400, Harry Wentland wrote:
>> Check if we have an amdgpu_dm_connector->dc_sink first before
>> adding common modes for analog outputs. If we don't have a
>> sink yet we can safely skip this.
> 
> Hi Harry, nice catch!
> 
> Out of curiosity, how is it possible to reach this code when the
> dc_sink is NULL?
> 

Huh, that was a bit of a goose chase.

amdgpu_dm_init
> amdgpu_dm_initialize_drm_device
> amdgpu_set_panel_orientation
> amdgpu_dm_connector_get_modes

This will run even on disconnected (i.e., without dc_sink)
connectors.

Maybe amdgpu_set_panel_orientation had better move into
this hunk after the amdgpu_dm_update_connector_after_detect:

        ret = dc_link_detect(link, DETECT_REASON_BOOT);
        mutex_unlock(&dm->dc_lock);
        printk("hwhw: %s %d\n", __func__, __LINE__);

        if (ret) {
                amdgpu_dm_update_connector_after_detect(aconnector);
                printk("hwhw: %s %d\n", __func__, __LINE__);

Either way, the NULL check is still prudent.

Harry

> The patch is:
> Reviewed-by: Timur Kristóf <[email protected]>
> 
>>
>> Fixes: 0c9f9ca99238 ("drm/amd/display: Add common modes to analog
>> displays without EDID")
>> Cc: Timur Kristóf <[email protected]>
>> Signed-off-by: Harry Wentland <[email protected]>
>> ---
>>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index c621e50f636a..bc5a8b8442a2 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -8669,7 +8669,7 @@ static int amdgpu_dm_connector_get_modes(struct
>> drm_connector *connector)
>>                      amdgpu_dm_connector->num_modes +=
>>                              drm_add_modes_noedid(connector,
>> 1920, 1080);
>>  
>> -            if (amdgpu_dm_connector->dc_sink->edid_caps.analog)
>> {
>> +            if (amdgpu_dm_connector->dc_sink &&
>> amdgpu_dm_connector->dc_sink->edid_caps.analog) {
>>                      /* Analog monitor connected by DAC load
>> detection.
>>                       * Add common modes. It will be up to the
>> user to select one that works.
>>                       */

Reply via email to