I forgot to include Mario's Reviewed-by in the commit message:

Reviewed-by: Mario Limonciello (AMD) <[email protected]>

On 5/26/2026 10:59 AM, Chenyu Chen wrote:
> Wire up the newly parsed panel_type from drm_display_info into
> amdgpu_dm's panel type detection path. When neither the AMD VSDB
> nor DPCD determines the panel type, fall back to the DisplayID
> Display Device Technology field to set PANEL_TYPE_LCD or
> PANEL_TYPE_OLED accordingly. Also expose LCD to userspace via
> the panel_type connector property.
> 
> Assisted-by: Copilot:Claude-Opus-4.6
> Signed-off-by: Chenyu Chen <[email protected]>
> ---
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c    | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> 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 e42a5eecdf46..ccf933ed63de 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -3944,11 +3944,13 @@ static void dm_set_panel_type(struct 
> amdgpu_dm_connector *aconnector)
>                       link->panel_type = PANEL_TYPE_OLED;
>       }
>  
> -     /*
> -      * TODO: get panel type from DID2 that has device technology field
> -      * to specify if it's OLED or not. But we need to wait for DID2
> -      * support in DC and EDID parser to be able to use it here.
> -      */
> +     /* If VSDB and DPCD didn't determine panel type, check DID */
> +     if (link->panel_type == PANEL_TYPE_NONE) {
> +             if (display_info->panel_type == DRM_MODE_PANEL_TYPE_LCD)
> +                     link->panel_type = PANEL_TYPE_LCD;
> +             else if (display_info->panel_type == DRM_MODE_PANEL_TYPE_OLED)
> +                     link->panel_type = PANEL_TYPE_OLED;
> +     }
>  
>       if (link->panel_type == PANEL_TYPE_NONE) {
>               struct drm_amd_vsdb_info *vsdb = &display_info->amd_vsdb;
> @@ -3966,6 +3968,10 @@ static void dm_set_panel_type(struct 
> amdgpu_dm_connector *aconnector)
>               drm_object_property_set_value(&connector->base,
>                   adev_to_drm(adev)->mode_config.panel_type_property,
>                   DRM_MODE_PANEL_TYPE_OLED);
> +     else if (link->panel_type == PANEL_TYPE_LCD)
> +             drm_object_property_set_value(&connector->base,
> +                 adev_to_drm(adev)->mode_config.panel_type_property,
> +                 DRM_MODE_PANEL_TYPE_LCD);
>       else
>               drm_object_property_set_value(&connector->base,
>                   adev_to_drm(adev)->mode_config.panel_type_property,

Reply via email to