diff mbox series

drm/panel-edp: Add panel used by T14s Gen6 Snapdragon (OLED)

Message ID 20250320-wip-obbardc-qcom-t14s-oled-panel-v1-1-05bc4bdcd82a@linaro.org (mailing list archive)
State New
Headers show
Series drm/panel-edp: Add panel used by T14s Gen6 Snapdragon (OLED) | expand

Commit Message

Christopher Obbard March 20, 2025, 12:47 p.m. UTC
The Lenovo Thinkpad T14s Gen6 Snapdragon OLED model has a Samsung
panel. The kernel currently prints a warning due to not having the
correct timings.

This panel appears to work with the default conservative timings,
so add the OLED panel to the list of supported panels with default
timings.

The raw EDID is:

00 ff ff ff ff ff ff 00 4c 83 9f 41 00 00 00 00
00 21 01 04 b5 1e 13 78 02 0c f1 ae 52 3c b9 23
0c 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 ca fe 40 64 b0 08 18 70 20 08
88 00 2e bd 10 00 00 1b ca fe 40 64 b0 08 38 77
08 20 88 00 2e bd 10 00 00 1b 00 00 00 fe 00 53
44 43 20 20 20 20 20 20 20 20 20 20 00 00 00 fe
00 41 54 4e 41 34 30 59 4b 32 30 2d 30 20 01 cf
02 03 0f 00 e3 05 80 00 e6 06 05 01 74 60 07 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b7

Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
---
 drivers/gpu/drm/panel/panel-edp.c | 2 ++
 1 file changed, 2 insertions(+)


---
base-commit: 707bd8cceaac1af31d3eeeee166687bdde580fd3
change-id: 20250320-wip-obbardc-qcom-t14s-oled-panel-b74fed21d600

Best regards,

Comments

Dmitry Baryshkov March 20, 2025, 1:47 p.m. UTC | #1
On Thu, Mar 20, 2025 at 12:47:09PM +0000, Christopher Obbard wrote:
> The Lenovo Thinkpad T14s Gen6 Snapdragon OLED model has a Samsung
> panel. The kernel currently prints a warning due to not having the
> correct timings.
> 
> This panel appears to work with the default conservative timings,
> so add the OLED panel to the list of supported panels with default
> timings.

Are you sure that this panel can be handled by panel-edp.c correctly and
it doesn't require a workaround implemented in
panel-samsung-atna33xc20.c?

> 
> The raw EDID is:
> 
> 00 ff ff ff ff ff ff 00 4c 83 9f 41 00 00 00 00
> 00 21 01 04 b5 1e 13 78 02 0c f1 ae 52 3c b9 23
> 0c 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
> 01 01 01 01 01 01 ca fe 40 64 b0 08 18 70 20 08
> 88 00 2e bd 10 00 00 1b ca fe 40 64 b0 08 38 77
> 08 20 88 00 2e bd 10 00 00 1b 00 00 00 fe 00 53
> 44 43 20 20 20 20 20 20 20 20 20 20 00 00 00 fe
> 00 41 54 4e 41 34 30 59 4b 32 30 2d 30 20 01 cf
> 02 03 0f 00 e3 05 80 00 e6 06 05 01 74 60 07 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b7
> 
> Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
> ---
>  drivers/gpu/drm/panel/panel-edp.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
> index 52028c8f8988d4b771bd2604256aea4cde4f4020..56eb57c8023fbbb5ba39f5fdbfa8e577400f751a 100644
> --- a/drivers/gpu/drm/panel/panel-edp.c
> +++ b/drivers/gpu/drm/panel/panel-edp.c
> @@ -2008,6 +2008,8 @@ static const struct edp_panel_entry edp_panels[] = {
>  	EDP_PANEL_ENTRY('L', 'G', 'D', 0x05f1, &delay_200_500_e200_d200, "Unknown"),
>  	EDP_PANEL_ENTRY('L', 'G', 'D', 0x0778, &delay_200_500_e200_d200, "134WT1"),
>  
> +	EDP_PANEL_ENTRY('S', 'D', 'C', 0x419f, &delay_200_500_e200, "ATNA40YK20-0"),
> +
>  	EDP_PANEL_ENTRY('S', 'H', 'P', 0x1511, &delay_200_500_e50, "LQ140M1JW48"),
>  	EDP_PANEL_ENTRY('S', 'H', 'P', 0x1523, &delay_80_500_e50, "LQ140M1JW46"),
>  	EDP_PANEL_ENTRY('S', 'H', 'P', 0x153a, &delay_200_500_e50, "LQ140T1JH01"),
> 
> ---
> base-commit: 707bd8cceaac1af31d3eeeee166687bdde580fd3
> change-id: 20250320-wip-obbardc-qcom-t14s-oled-panel-b74fed21d600
> 
> Best regards,
> -- 
> Christopher Obbard <christopher.obbard@linaro.org>
>
Doug Anderson March 20, 2025, 2:10 p.m. UTC | #2
Hi,

On Thu, Mar 20, 2025 at 6:47 AM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Thu, Mar 20, 2025 at 12:47:09PM +0000, Christopher Obbard wrote:
> > The Lenovo Thinkpad T14s Gen6 Snapdragon OLED model has a Samsung
> > panel. The kernel currently prints a warning due to not having the
> > correct timings.
> >
> > This panel appears to work with the default conservative timings,
> > so add the OLED panel to the list of supported panels with default
> > timings.
>
> Are you sure that this panel can be handled by panel-edp.c correctly and
> it doesn't require a workaround implemented in
> panel-samsung-atna33xc20.c?

Yeah, I'd agree with Dmitry here. To the last person who wanted to add
a Samsung OLED panel, I replied [1]

It's much more likely that this should use the
`panel-samsung-atna33xc20.c` driver, which gets the timings more
correct for Samsung OLED panels (there's an extra GPIO it needs to
manage). To use that driver, you'll actually just need to need to add
a new compatible and use the existing one as a fallback. See recent
changes to:

Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml

[1] https://lore.kernel.org/r/CAD=FV=X+WnSKZTFhzdXEFfpKCEqfPDc77h7oG=ZU6Nqq6XHOmA@mail.gmail.com
Christopher Obbard March 20, 2025, 2:44 p.m. UTC | #3
Hi Doug & Dmitry,

On Thu, 20 Mar 2025 at 14:10, Doug Anderson <dianders@chromium.org> wrote:
>
> Hi,
>
> On Thu, Mar 20, 2025 at 6:47 AM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Thu, Mar 20, 2025 at 12:47:09PM +0000, Christopher Obbard wrote:
> > > The Lenovo Thinkpad T14s Gen6 Snapdragon OLED model has a Samsung
> > > panel. The kernel currently prints a warning due to not having the
> > > correct timings.
> > >
> > > This panel appears to work with the default conservative timings,
> > > so add the OLED panel to the list of supported panels with default
> > > timings.
> >
> > Are you sure that this panel can be handled by panel-edp.c correctly and
> > it doesn't require a workaround implemented in
> > panel-samsung-atna33xc20.c?
>
> Yeah, I'd agree with Dmitry here. To the last person who wanted to add
> a Samsung OLED panel, I replied [1]
>
> It's much more likely that this should use the
> `panel-samsung-atna33xc20.c` driver, which gets the timings more
> correct for Samsung OLED panels (there's an extra GPIO it needs to
> manage). To use that driver, you'll actually just need to need to add
> a new compatible and use the existing one as a fallback.

Thanks; I will look at this and prepare v2.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
index 52028c8f8988d4b771bd2604256aea4cde4f4020..56eb57c8023fbbb5ba39f5fdbfa8e577400f751a 100644
--- a/drivers/gpu/drm/panel/panel-edp.c
+++ b/drivers/gpu/drm/panel/panel-edp.c
@@ -2008,6 +2008,8 @@  static const struct edp_panel_entry edp_panels[] = {
 	EDP_PANEL_ENTRY('L', 'G', 'D', 0x05f1, &delay_200_500_e200_d200, "Unknown"),
 	EDP_PANEL_ENTRY('L', 'G', 'D', 0x0778, &delay_200_500_e200_d200, "134WT1"),
 
+	EDP_PANEL_ENTRY('S', 'D', 'C', 0x419f, &delay_200_500_e200, "ATNA40YK20-0"),
+
 	EDP_PANEL_ENTRY('S', 'H', 'P', 0x1511, &delay_200_500_e50, "LQ140M1JW48"),
 	EDP_PANEL_ENTRY('S', 'H', 'P', 0x1523, &delay_80_500_e50, "LQ140M1JW46"),
 	EDP_PANEL_ENTRY('S', 'H', 'P', 0x153a, &delay_200_500_e50, "LQ140T1JH01"),