From patchwork Tue Mar 12 08:06:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1910855 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Tv5sr2Lnkz23r8 for ; Tue, 12 Mar 2024 19:10:07 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1rjxCt-0007PQ-QI; Tue, 12 Mar 2024 08:09:55 +0000 Received: from mail-pl1-f169.google.com ([209.85.214.169]) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1rjx9b-0006dx-Ot for kernel-team@lists.ubuntu.com; Tue, 12 Mar 2024 08:06:32 +0000 Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-1dd611d5645so31148085ad.1 for ; Tue, 12 Mar 2024 01:06:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710230790; x=1710835590; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=zrux9SKt0wT4T4ElbdUgZJebfiJ3SAIZdna66BlObjk=; b=CP8EpdlRPqfeh1pASa9OMHJQ+gSTyfEWba1jTPY3iEmt02uokpcQPYBK6kQdAJhjPZ SGkMizv4kDgOm5SQ7mDB3Bz0Q2E08xrbh6aGHGieSc4GTUAm2UmIqQ8rCaF5prQ8LowQ BySAFipcsgKkPVSNGciqLKgO+2AVr1B3bWm3qfy2nMSWY78FMPOv7CtIi4oXXNNs6gyZ ppc5Bjovy+dqo6pIqUfMrI/hUTt0EDI88U8CFusyd2nsok+a2SoqWqCGeBeS+oeBbQ22 saY3TQ1mKMFd47bxhJKpvVKt5b/6EN7GWcgjsmGi9NbKXND6PyJY0AYbj7HMPnZvrVby ZeKg== X-Gm-Message-State: AOJu0YyR/4ZlQidhk8e5SIVtcof9OVaY9e5AK2TWsvaCUveDo5gkZpui phGjo4weEzLfn+aSjaRPg4m2+GyqMvCDAdxsnT+T6tGUw99MSdAUfLtr058Z X-Google-Smtp-Source: AGHT+IGqUtIoP0x4Ljn7UpMJiTLWDgJlzgdeDYSsjp+m7g3KtKtMZsV6A9uyLPnO5+EoOPntWYYUuQ== X-Received: by 2002:a17:903:32d2:b0:1dd:619e:aeaf with SMTP id i18-20020a17090332d200b001dd619eaeafmr11047467plr.22.1710230789464; Tue, 12 Mar 2024 01:06:29 -0700 (PDT) Received: from localhost (220-135-95-34.hinet-ip.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id m12-20020a170902f20c00b001dd08ed9eeasm6063622plc.259.2024.03.12.01.06.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 01:06:29 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/4][SRU][M] drm/amd/display: Re-add aux intercept disable delay generically for 2+ LTTPRs Date: Tue, 12 Mar 2024 16:06:21 +0800 Message-Id: <20240312080624.169161-2-acelan.kao@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312080624.169161-1-acelan.kao@canonical.com> References: <20240312080624.169161-1-acelan.kao@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.214.169; envelope-from=acelan@gmail.com; helo=mail-pl1-f169.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Michael Strauss BugLink: https://bugs.launchpad.net/bugs/2057430 [WHY] Issue not display generic, required for multiple 2+ LTTPR link configurations. [HOW] Revert monitor patch change and remove delay for single LTTPR case Reviewed-by: George Shen Acked-by: Alan Liu Signed-off-by: Michael Strauss Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher (cherry picked from commit c4e532f75336ad03a4d7248b38fa56091dbaeba4) Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/gpu/drm/amd/display/dc/dc.h | 1 + drivers/gpu/drm/amd/display/dc/dc_types.h | 1 - .../link_dp_training_fixed_vs_pe_retimer.c | 25 +++++++++---------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h index a594c6c442f51..074dd6f096c87 100644 --- a/drivers/gpu/drm/amd/display/dc/dc.h +++ b/drivers/gpu/drm/amd/display/dc/dc.h @@ -866,6 +866,7 @@ struct dc_debug_options { bool psr_skip_crtc_disable; union dpia_debug_options dpia_debug; bool disable_fixed_vs_aux_timeout_wa; + uint32_t fixed_vs_aux_delay_config_wa; bool force_disable_subvp; bool force_subvp_mclk_switch; bool allow_sw_cursor_fallback; diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h index 0ce7728a5a4be..0564f55aa5957 100644 --- a/drivers/gpu/drm/amd/display/dc/dc_types.h +++ b/drivers/gpu/drm/amd/display/dc/dc_types.h @@ -189,7 +189,6 @@ struct dc_panel_patch { unsigned int disable_fams; unsigned int skip_avmute; unsigned int mst_start_top_delay; - unsigned int delay_disable_aux_intercept_ms; }; struct dc_edid_caps { diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c index 2ece710743d44..534ef9b0b7988 100644 --- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c +++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c @@ -244,10 +244,6 @@ enum link_training_result dp_perform_fixed_vs_pe_training_sequence_legacy( uint8_t toggle_rate; uint8_t rate; - if (link->local_sink) - pre_disable_intercept_delay_ms = - link->local_sink->edid_caps.panel_patch.delay_disable_aux_intercept_ms; - /* Only 8b/10b is supported */ ASSERT(link_dp_get_encoding_format(<_settings->link_settings) == DP_8b_10b_ENCODING); @@ -260,10 +256,13 @@ enum link_training_result dp_perform_fixed_vs_pe_training_sequence_legacy( if (offset != 0xFF) { vendor_lttpr_write_address += ((DP_REPEATER_CONFIGURATION_AND_STATUS_SIZE) * (offset - 1)); + if (offset == 2) { + pre_disable_intercept_delay_ms = link->dc->debug.fixed_vs_aux_delay_config_wa; /* Certain display and cable configuration require extra delay */ - if (offset > 2) - pre_disable_intercept_delay_ms = pre_disable_intercept_delay_ms * 2; + } else if (offset > 2) { + pre_disable_intercept_delay_ms = link->dc->debug.fixed_vs_aux_delay_config_wa * 2; + } } /* Vendor specific: Reset lane settings */ @@ -596,9 +595,10 @@ enum link_training_result dp_perform_fixed_vs_pe_training_sequence( const uint8_t vendor_lttpr_write_data_adicora_eq1[4] = {0x1, 0x55, 0x63, 0x2E}; const uint8_t vendor_lttpr_write_data_adicora_eq2[4] = {0x1, 0x55, 0x63, 0x01}; const uint8_t vendor_lttpr_write_data_adicora_eq3[4] = {0x1, 0x55, 0x63, 0x68}; + uint32_t pre_disable_intercept_delay_ms = 0; uint8_t vendor_lttpr_write_data_vs[4] = {0x1, 0x51, 0x63, 0x0}; uint8_t vendor_lttpr_write_data_pe[4] = {0x1, 0x52, 0x63, 0x0}; - uint32_t pre_disable_intercept_delay_ms = 0; + uint32_t vendor_lttpr_write_address = 0xF004F; enum link_training_result status = LINK_TRAINING_SUCCESS; uint8_t lane = 0; @@ -607,10 +607,6 @@ enum link_training_result dp_perform_fixed_vs_pe_training_sequence( uint8_t toggle_rate; uint8_t rate; - if (link->local_sink) - pre_disable_intercept_delay_ms = - link->local_sink->edid_caps.panel_patch.delay_disable_aux_intercept_ms; - /* Only 8b/10b is supported */ ASSERT(link_dp_get_encoding_format(<_settings->link_settings) == DP_8b_10b_ENCODING); @@ -623,10 +619,13 @@ enum link_training_result dp_perform_fixed_vs_pe_training_sequence( if (offset != 0xFF) { vendor_lttpr_write_address += ((DP_REPEATER_CONFIGURATION_AND_STATUS_SIZE) * (offset - 1)); + if (offset == 2) { + pre_disable_intercept_delay_ms = link->dc->debug.fixed_vs_aux_delay_config_wa; /* Certain display and cable configuration require extra delay */ - if (offset > 2) - pre_disable_intercept_delay_ms = pre_disable_intercept_delay_ms * 2; + } else if (offset > 2) { + pre_disable_intercept_delay_ms = link->dc->debug.fixed_vs_aux_delay_config_wa * 2; + } } /* Vendor specific: Reset lane settings */ From patchwork Tue Mar 12 08:06:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1910854 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Tv5sr4FK6z23rC for ; Tue, 12 Mar 2024 19:10:08 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1rjxCv-0007Qf-PW; Tue, 12 Mar 2024 08:09:57 +0000 Received: from mail-pl1-f179.google.com ([209.85.214.179]) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1rjx9d-0006eJ-3h for kernel-team@lists.ubuntu.com; Tue, 12 Mar 2024 08:06:36 +0000 Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-1dc3b4b9b62so31407905ad.1 for ; Tue, 12 Mar 2024 01:06:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710230791; x=1710835591; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=mbFJW7rbdu5SWGgIbM9d0mYdzvNzm/Atk1NrcuOBGoc=; b=M5EqCgcm4Af5TvvnikjKys41IyN5v2qyykf3q9NAo+iJZT8UTCY0bxQvfQcjY+sIkn 0bGezgkKOaD8EDzHpZ7GjeItpXY24LzJHCg9IgCcXbzldpGZL4WrJ25sC6Bb6pMoKqlB 3RmBX5jL3eMYZE6N6YlcqEPQqSPUt2PbM88Jez/0pQcV0L8TaJYQphpXGpwsCMhEroaw PCj+QgkpzFohsU2QeK9BCt7R3NStu0NpjKnCXkudijAY660G7hg1MbDcPzJXXoZsdbL0 vH/7wZHUZzVwxh54r91cHKlT4iAEAzeQ2AWeJfaNJGrRO0nRJqDdVjJZZfXojWg5OXKx zAdQ== X-Gm-Message-State: AOJu0YwHpcigxoiIkZHcwiVU27q54qQeHaT2EQ+WLwvJW353fYDfXkD6 W6Y3ckeW2wo3hKblpI7gf+Pks07Q/SxbF0BsINterlg2SRnJCDezEBfVnlBc X-Google-Smtp-Source: AGHT+IHovULlxaFkodOT8aLM1VAMvbBEqBe6qCxRgpQuEJvYZHE07Cwm6Km8GA4egj6f06H9AQcpjQ== X-Received: by 2002:a17:902:c402:b0:1dd:1c6f:af51 with SMTP id k2-20020a170902c40200b001dd1c6faf51mr13712612plk.16.1710230791141; Tue, 12 Mar 2024 01:06:31 -0700 (PDT) Received: from localhost (220-135-95-34.hinet-ip.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id b11-20020a170903228b00b001dca40bb727sm5941415plh.88.2024.03.12.01.06.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 01:06:30 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/4][SRU][M] drm/amd/display: Clear dpcd_sink_ext_caps if not set Date: Tue, 12 Mar 2024 16:06:22 +0800 Message-Id: <20240312080624.169161-3-acelan.kao@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312080624.169161-1-acelan.kao@canonical.com> References: <20240312080624.169161-1-acelan.kao@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.214.179; envelope-from=acelan@gmail.com; helo=mail-pl1-f179.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Paul Hsieh BugLink: https://bugs.launchpad.net/bugs/2057430 [WHY] Some eDP panels' ext caps don't set initial values and the value of dpcd_addr (0x317) is random. It means that sometimes the eDP can be OLED, miniLED and etc, and cause incorrect backlight control interface. [HOW] Add remove_sink_ext_caps to remove sink ext caps (HDR, OLED and etc) Cc: Mario Limonciello Cc: Alex Deucher Cc: stable@vger.kernel.org Reviewed-by: Anthony Koo Acked-by: Alex Hung Signed-off-by: Paul Hsieh Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher (cherry picked from commit 923bbfe6c888812db1088d684bd30c24036226d2) Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/gpu/drm/amd/display/dc/dc_types.h | 1 + drivers/gpu/drm/amd/display/dc/link/link_detection.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h index 0564f55aa5957..36e0a95513061 100644 --- a/drivers/gpu/drm/amd/display/dc/dc_types.h +++ b/drivers/gpu/drm/amd/display/dc/dc_types.h @@ -189,6 +189,7 @@ struct dc_panel_patch { unsigned int disable_fams; unsigned int skip_avmute; unsigned int mst_start_top_delay; + unsigned int remove_sink_ext_caps; }; struct dc_edid_caps { diff --git a/drivers/gpu/drm/amd/display/dc/link/link_detection.c b/drivers/gpu/drm/amd/display/dc/link/link_detection.c index 2fe27e76da699..a015557244b95 100644 --- a/drivers/gpu/drm/amd/display/dc/link/link_detection.c +++ b/drivers/gpu/drm/amd/display/dc/link/link_detection.c @@ -1086,6 +1086,9 @@ static bool detect_link_and_local_sink(struct dc_link *link, if (sink->edid_caps.panel_patch.skip_scdc_overwrite) link->ctx->dc->debug.hdmi20_disable = true; + if (sink->edid_caps.panel_patch.remove_sink_ext_caps) + link->dpcd_sink_ext_caps.raw = 0; + if (dc_is_hdmi_signal(link->connector_signal)) read_scdc_caps(link->ddc, link->local_sink); From patchwork Tue Mar 12 08:06:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1910852 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Tv5sr1zbVz1yWt for ; Tue, 12 Mar 2024 19:10:07 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1rjxCv-0007Pm-22; Tue, 12 Mar 2024 08:09:57 +0000 Received: from mail-pl1-f182.google.com ([209.85.214.182]) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1rjx9f-0006et-0g for kernel-team@lists.ubuntu.com; Tue, 12 Mar 2024 08:06:36 +0000 Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-1dd611d5645so31148275ad.1 for ; Tue, 12 Mar 2024 01:06:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710230793; x=1710835593; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=JEkKTUoNuoqxh+GXD8Ye5i9t+K4hMNeShXpLD2EcKHw=; b=Z1q1cjcHNN6qLaCKpMIxPeLvqVrP51QE4wlwzHOGFa/FOdM+GnaC2cDFkCYBaPztYW S56u1RhKseoEor+k/KKAGvcVsCvjr8PlUQBtnMb91kESaCJ4YU6B7BDthYXovZnNmTYg /U2Cs6+ZjmMrcfBa7FaLAPJFJ2ydOUTFezoCqa9JamaYgMNpfT+uw2wvcf4XjlZc3k4Z O6x3lN7gx5Xss3kL5abMFs6mHHpzNb3sWS0uU9YaqM9hZwILd2cpk/MgnuR0IotUXuD3 /B3SMyaFYI7dIr6YwGmavjxvSRkYoz9Vy/YtT41uvZIgRaiUR0eE37lmcaSWFw98D/5t uGlQ== X-Gm-Message-State: AOJu0YxAOV3M4FZIU1Zcp6Jf8pTODvfIAOs5lXaDZQyYNJNz5v8Zowi3 4nSgMBrrrA3sjd5aJtekXhCLdsisKGrZruKwjWcOWFH1OmMLRhluaRE0dQPG X-Google-Smtp-Source: AGHT+IHkPMCNSRdATNDjw5WW683deedl6Hj0wkJp7yCLu3EKAcRh4Y0auHwPilwXR+x78az2EBHKUA== X-Received: by 2002:a17:902:e9cc:b0:1dd:6285:b84a with SMTP id 12-20020a170902e9cc00b001dd6285b84amr10301949plk.9.1710230792982; Tue, 12 Mar 2024 01:06:32 -0700 (PDT) Received: from localhost (220-135-95-34.hinet-ip.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id jj14-20020a170903048e00b001dc30f13e6asm6010489plb.137.2024.03.12.01.06.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 01:06:32 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 3/4][SRU][M] drm/amd/display: Add monitor patch for specific eDP Date: Tue, 12 Mar 2024 16:06:23 +0800 Message-Id: <20240312080624.169161-4-acelan.kao@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312080624.169161-1-acelan.kao@canonical.com> References: <20240312080624.169161-1-acelan.kao@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.214.182; envelope-from=acelan@gmail.com; helo=mail-pl1-f182.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Ivan Lipski BugLink: https://bugs.launchpad.net/bugs/2057430 [WHY] Some eDP panels's ext caps don't write initial value cause the value of dpcd_addr(0x317) is random. It means that sometimes the eDP will clarify it is OLED, miniLED...etc cause the backlight control interface is incorrect. [HOW] Add a new panel patch to remove sink ext caps(HDR,OLED...etc) Tested-by: Daniel Wheeler Reviewed-by: Sun peng Li Acked-by: Rodrigo Siqueira Signed-off-by: Ivan Lipski Signed-off-by: Alex Deucher (cherry picked from commit 3d71a8726e05a35beb9de394e86ce896d69e563f) Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c index d9a482908380d..764dc3ffd91bb 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c @@ -63,6 +63,12 @@ static void apply_edid_quirks(struct edid *edid, struct dc_edid_caps *edid_caps) DRM_DEBUG_DRIVER("Disabling FAMS on monitor with panel id %X\n", panel_id); edid_caps->panel_patch.disable_fams = true; break; + /* Workaround for some monitors that do not clear DPCD 0x317 if FreeSync is unsupported */ + case drm_edid_encode_panel_id('A', 'U', 'O', 0xA7AB): + case drm_edid_encode_panel_id('A', 'U', 'O', 0xE69B): + DRM_DEBUG_DRIVER("Clearing DPCD 0x317 on monitor with panel id %X\n", panel_id); + edid_caps->panel_patch.remove_sink_ext_caps = true; + break; default: return; } From patchwork Tue Mar 12 08:06:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1910856 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Tv5t40JYbz1yWn for ; Tue, 12 Mar 2024 19:10:20 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1rjxD1-0007TL-1k; Tue, 12 Mar 2024 08:10:05 +0000 Received: from mail-pf1-f177.google.com ([209.85.210.177]) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1rjx9g-0006f8-PN for kernel-team@lists.ubuntu.com; Tue, 12 Mar 2024 08:06:37 +0000 Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-6e64a9df6c3so4282505b3a.3 for ; Tue, 12 Mar 2024 01:06:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710230795; x=1710835595; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=UiRr5s2X/0TvdyfMRJAcc8uWMy8JKqi541VZnAeeK1A=; b=OLQwiVW7kF+8iFOkPYx+wZpQEdCdzepYWxsddbMPH7DI+gII2ZMybwPGk1ErjcUYvY Ztc6Yn1YmHA9i4p3DC/P9ftPq5c2KjdC+WPLj6AS5wJ3+wDPgbpQumZx7hV+Us5s+KHH 5rRu/1cQN1tQ7iSh4c3e9YNwRNZOkPwYLRTM5WfLnfM3zwjQbyXUFWvaRaGkyDL1hEzB Wvxaom6JUh+u/AswsjxN7Erfs7t75LMHKgtzuZfAx9kqXBnCwqUTodAv32TiGg6cWGso O1YmVx1y54pQApjSJHKvcqUcqohlKxBpVMIm/6BUqu27a70uFD+nGKaS1EuYga7Eu9QF 2deA== X-Gm-Message-State: AOJu0Yzt3Mn3i0g+UpsHeZUJGs9BqHjJ0KMf+G/K2+0E0L1Gvbb6vOwU cTZ2iq5RdyoJExsPWrKEeeTphuk0zNwFtzV4CahsUuN+qg0cD/cFbruvgeEq X-Google-Smtp-Source: AGHT+IGXRxikdbSUvZgZXkY1zWEDGIBiwly6VFsUJLAEBMZU32d+/GVnQ3jnFGBZg6SPuOL7amYUKA== X-Received: by 2002:a05:6a00:240d:b0:6e6:977e:6427 with SMTP id z13-20020a056a00240d00b006e6977e6427mr4824200pfh.8.1710230794800; Tue, 12 Mar 2024 01:06:34 -0700 (PDT) Received: from localhost (220-135-95-34.hinet-ip.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id kt10-20020a056a004baa00b006e69b046796sm2119007pfb.32.2024.03.12.01.06.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Mar 2024 01:06:34 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 4/4][SRU][M] drm/amd/display: Add monitor patch for specific eDP Date: Tue, 12 Mar 2024 16:06:24 +0800 Message-Id: <20240312080624.169161-5-acelan.kao@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240312080624.169161-1-acelan.kao@canonical.com> References: <20240312080624.169161-1-acelan.kao@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.210.177; envelope-from=acelan@gmail.com; helo=mail-pf1-f177.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Ryan Lin BugLink: https://bugs.launchpad.net/bugs/2057430 [WHY] Some eDP panels' ext caps don't write initial values. The value of dpcd_addr (0x317) can be random and the backlight control interface will be incorrect. [HOW] Add new panel patches to remove sink ext caps. Cc: Mario Limonciello Cc: Alex Deucher Cc: stable@vger.kernel.org # 6.5.x Cc: Tsung-hua Lin Cc: Chris Chi Reviewed-by: Wayne Lin Acked-by: Alex Hung Signed-off-by: Ryan Lin Signed-off-by: Alex Deucher (cherry picked from commit b7cdccc6a849568775f738b1e233f751a8fed013) Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c index 764dc3ffd91bb..5a51c5156c1ac 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c @@ -66,6 +66,8 @@ static void apply_edid_quirks(struct edid *edid, struct dc_edid_caps *edid_caps) /* Workaround for some monitors that do not clear DPCD 0x317 if FreeSync is unsupported */ case drm_edid_encode_panel_id('A', 'U', 'O', 0xA7AB): case drm_edid_encode_panel_id('A', 'U', 'O', 0xE69B): + case drm_edid_encode_panel_id('B', 'O', 'E', 0x092A): + case drm_edid_encode_panel_id('L', 'G', 'D', 0x06D1): DRM_DEBUG_DRIVER("Clearing DPCD 0x317 on monitor with panel id %X\n", panel_id); edid_caps->panel_patch.remove_sink_ext_caps = true; break; @@ -119,6 +121,8 @@ enum dc_edid_status dm_helpers_parse_edid_caps( edid_caps->edid_hdmi = connector->display_info.is_hdmi; + apply_edid_quirks(edid_buf, edid_caps); + sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads); if (sad_count <= 0) return result; @@ -145,8 +149,6 @@ enum dc_edid_status dm_helpers_parse_edid_caps( else edid_caps->speaker_flags = DEFAULT_SPEAKER_LOCATION; - apply_edid_quirks(edid_buf, edid_caps); - kfree(sads); kfree(sadb);