diff mbox

[v3,4/6] drm/panel: simple: Add support for Samsung LSN122DL01-C01 2560x1600 panel

Message ID 1465700173-13671-1-git-send-email-ykk@rock-chips.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yakir Yang June 12, 2016, 2:56 a.m. UTC
The Samsung LSN122DL01-C01 is an 12.2" 2560x1600 (WQXGA) TFT-LCD panel
connected using eDP interfaces.

Signed-off-by: Yakir Yang <ykk@rock-chips.com>
---
Changes in v3:
- Correct the size of panel_desc to active area 262mmx164mm (Emil, Stéphane)

Changes in v2: None

 drivers/gpu/drm/panel/panel-simple.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

Comments

Doug Anderson June 13, 2016, 5 p.m. UTC | #1
Yakir,

On Sat, Jun 11, 2016 at 7:56 PM, Yakir Yang <ykk@rock-chips.com> wrote:
> The Samsung LSN122DL01-C01 is an 12.2" 2560x1600 (WQXGA) TFT-LCD panel
> connected using eDP interfaces.
>
> Signed-off-by: Yakir Yang <ykk@rock-chips.com>
> ---
> Changes in v3:
> - Correct the size of panel_desc to active area 262mmx164mm (Emil, Stéphane)
>
> Changes in v2: None
>
>  drivers/gpu/drm/panel/panel-simple.c | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 2d40a21..17cc973 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -1246,6 +1246,28 @@ static const struct panel_desc qd43003c0_40 = {
>         .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
>  };
>
> +static const struct drm_display_mode samsung_lsn122dl01_c01_mode = {
> +       .clock = 271560,
> +       .hdisplay = 2560,
> +       .hsync_start = 2560 + 48,
> +       .hsync_end = 2560 + 48 + 32,
> +       .htotal = 2560 + 48 + 32 + 80,
> +       .vdisplay = 1600,
> +       .vsync_start = 1600 + 2,
> +       .vsync_end = 1600 + 2 + 5,
> +       .vtotal = 1600 + 2 + 5 + 57,
> +       .vrefresh = 60,
> +};
> +
> +static const struct panel_desc samsung_lsn122dl01_c01 = {
> +       .modes = &samsung_lsn122dl01_c01_mode,
> +       .num_modes = 1,
> +       .size = {
> +               .width = 262,
> +               .height = 164,

Earlier you said that the active area of this panel was:

> Display area     262.656(H) X 164.16(V)         (12.2”diagonal)

In other panels I looked at the EDID tended to round numbers, not
truncate them.  For instance the Starry panel that I sent the patch
for says in the manual "262.7712 (H) x 164.232 (V)" but then the EDID
says "263 x 164".

That would mean your width should be 263 mm, not 262 mm.

-Doug
Thierry Reding June 14, 2016, 8:57 a.m. UTC | #2
On Mon, Jun 13, 2016 at 10:00:45AM -0700, Doug Anderson wrote:
> Yakir,
> 
> On Sat, Jun 11, 2016 at 7:56 PM, Yakir Yang <ykk@rock-chips.com> wrote:
> > The Samsung LSN122DL01-C01 is an 12.2" 2560x1600 (WQXGA) TFT-LCD panel
> > connected using eDP interfaces.
> >
> > Signed-off-by: Yakir Yang <ykk@rock-chips.com>
> > ---
> > Changes in v3:
> > - Correct the size of panel_desc to active area 262mmx164mm (Emil, Stéphane)
> >
> > Changes in v2: None
> >
> >  drivers/gpu/drm/panel/panel-simple.c | 25 +++++++++++++++++++++++++
> >  1 file changed, 25 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> > index 2d40a21..17cc973 100644
> > --- a/drivers/gpu/drm/panel/panel-simple.c
> > +++ b/drivers/gpu/drm/panel/panel-simple.c
> > @@ -1246,6 +1246,28 @@ static const struct panel_desc qd43003c0_40 = {
> >         .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> >  };
> >
> > +static const struct drm_display_mode samsung_lsn122dl01_c01_mode = {
> > +       .clock = 271560,
> > +       .hdisplay = 2560,
> > +       .hsync_start = 2560 + 48,
> > +       .hsync_end = 2560 + 48 + 32,
> > +       .htotal = 2560 + 48 + 32 + 80,
> > +       .vdisplay = 1600,
> > +       .vsync_start = 1600 + 2,
> > +       .vsync_end = 1600 + 2 + 5,
> > +       .vtotal = 1600 + 2 + 5 + 57,
> > +       .vrefresh = 60,
> > +};
> > +
> > +static const struct panel_desc samsung_lsn122dl01_c01 = {
> > +       .modes = &samsung_lsn122dl01_c01_mode,
> > +       .num_modes = 1,
> > +       .size = {
> > +               .width = 262,
> > +               .height = 164,
> 
> Earlier you said that the active area of this panel was:
> 
> > Display area     262.656(H) X 164.16(V)         (12.2”diagonal)
> 
> In other panels I looked at the EDID tended to round numbers, not
> truncate them.  For instance the Starry panel that I sent the patch
> for says in the manual "262.7712 (H) x 164.232 (V)" but then the EDID
> says "263 x 164".
> 
> That would mean your width should be 263 mm, not 262 mm.

Yes, rounding is what I've also applied to all panels that I added.
While it isn't documented I hope that other panels did round, rather
than truncate, as well.

Thierry
Yakir Yang July 8, 2016, 1:51 a.m. UTC | #3
Doug,

On 06/14/2016 01:00 AM, Doug Anderson wrote:
> Yakir,
>
> On Sat, Jun 11, 2016 at 7:56 PM, Yakir Yang <ykk@rock-chips.com> wrote:
>> The Samsung LSN122DL01-C01 is an 12.2" 2560x1600 (WQXGA) TFT-LCD panel
>> connected using eDP interfaces.
>>
>> Signed-off-by: Yakir Yang <ykk@rock-chips.com>
>> ---
>> Changes in v3:
>> - Correct the size of panel_desc to active area 262mmx164mm (Emil, Stéphane)
>>
>> Changes in v2: None
>>
>>   drivers/gpu/drm/panel/panel-simple.c | 25 +++++++++++++++++++++++++
>>   1 file changed, 25 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
>> index 2d40a21..17cc973 100644
>> --- a/drivers/gpu/drm/panel/panel-simple.c
>> +++ b/drivers/gpu/drm/panel/panel-simple.c
>> @@ -1246,6 +1246,28 @@ static const struct panel_desc qd43003c0_40 = {
>>          .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
>>   };
>>
>> +static const struct drm_display_mode samsung_lsn122dl01_c01_mode = {
>> +       .clock = 271560,
>> +       .hdisplay = 2560,
>> +       .hsync_start = 2560 + 48,
>> +       .hsync_end = 2560 + 48 + 32,
>> +       .htotal = 2560 + 48 + 32 + 80,
>> +       .vdisplay = 1600,
>> +       .vsync_start = 1600 + 2,
>> +       .vsync_end = 1600 + 2 + 5,
>> +       .vtotal = 1600 + 2 + 5 + 57,
>> +       .vrefresh = 60,
>> +};
>> +
>> +static const struct panel_desc samsung_lsn122dl01_c01 = {
>> +       .modes = &samsung_lsn122dl01_c01_mode,
>> +       .num_modes = 1,
>> +       .size = {
>> +               .width = 262,
>> +               .height = 164,
> Earlier you said that the active area of this panel was:
>
>> Display area     262.656(H) X 164.16(V)         (12.2”diagonal)
> In other panels I looked at the EDID tended to round numbers, not
> truncate them.  For instance the Starry panel that I sent the patch
> for says in the manual "262.7712 (H) x 164.232 (V)" but then the EDID
> says "263 x 164".

Ah, got it, done.

Thanks,
- Yakir

> That would mean your width should be 263 mm, not 262 mm.
>
> -Doug
>
>
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 2d40a21..17cc973 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1246,6 +1246,28 @@  static const struct panel_desc qd43003c0_40 = {
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
 };
 
+static const struct drm_display_mode samsung_lsn122dl01_c01_mode = {
+	.clock = 271560,
+	.hdisplay = 2560,
+	.hsync_start = 2560 + 48,
+	.hsync_end = 2560 + 48 + 32,
+	.htotal = 2560 + 48 + 32 + 80,
+	.vdisplay = 1600,
+	.vsync_start = 1600 + 2,
+	.vsync_end = 1600 + 2 + 5,
+	.vtotal = 1600 + 2 + 5 + 57,
+	.vrefresh = 60,
+};
+
+static const struct panel_desc samsung_lsn122dl01_c01 = {
+	.modes = &samsung_lsn122dl01_c01_mode,
+	.num_modes = 1,
+	.size = {
+		.width = 262,
+		.height = 164,
+	},
+};
+
 static const struct drm_display_mode samsung_ltn101nt05_mode = {
 	.clock = 54030,
 	.hdisplay = 1024,
@@ -1506,6 +1528,9 @@  static const struct of_device_id platform_of_match[] = {
 		.compatible = "qiaodian,qd43003c0-40",
 		.data = &qd43003c0_40,
 	}, {
+		.compatible = "samsung,lsn122dl01-c01",
+		.data = &samsung_lsn122dl01_c01,
+	}, {
 		.compatible = "samsung,ltn101nt05",
 		.data = &samsung_ltn101nt05,
 	}, {