diff mbox

[4/7] drm/panel: Add Sinlinx SinA33 7" panel

Message ID 20160901153204.11217-5-maxime.ripard@free-electrons.com (mailing list archive)
State New, archived
Headers show

Commit Message

Maxime Ripard Sept. 1, 2016, 3:32 p.m. UTC
The SinA33 has an unidentified panel. Add the timings for it under a new
compatible.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
 drivers/gpu/drm/panel/panel-simple.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Chen-Yu Tsai Sept. 2, 2016, 7:01 a.m. UTC | #1
On Thu, Sep 1, 2016 at 11:32 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> The SinA33 has an unidentified panel. Add the timings for it under a new
> compatible.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
> ---
>  drivers/gpu/drm/panel/panel-simple.c | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 85143d1b9b31..af142e804245 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -1409,6 +1409,29 @@ static const struct panel_desc shelly_sca07010_bfn_lnn = {
>         .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
>  };
>
> +static const struct drm_display_mode sinlinx_sina33_lcd_7_mode = {

Nit on the name: the lcd panel also works with sina31s. The only
difference is the ribbon cable used to connect it to the board.
Maybe sinlinx_sinaxx_lcd_7? Just a suggestion though, the patch
looks fine.

ChenYu

> +       .clock = 66000,
> +       .hdisplay = 1024,
> +       .hsync_start = 1024 + 160,
> +       .hsync_end = 1024 + 160 + 70,
> +       .htotal = 1024 + 160 + 70 + 90,
> +       .vdisplay = 600,
> +       .vsync_start = 600 + 127,
> +       .vsync_end = 600 + 127 + 20,
> +       .vtotal = 600 + 127 + 20 + 3,
> +       .vrefresh = 60,
> +};
> +
> +static const struct panel_desc sinlinx_sina33_lcd_7 = {
> +       .modes = &sinlinx_sina33_lcd_7_mode,
> +       .num_modes = 1,
> +       .size = {
> +               .width = 154,
> +               .height = 87,
> +       },
> +       .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
> +};
> +
>  static const struct drm_display_mode starry_kr122ea0sra_mode = {
>         .clock = 147000,
>         .hdisplay = 1920,
> @@ -1644,6 +1667,9 @@ static const struct of_device_id platform_of_match[] = {
>                 .compatible = "shelly,sca07010-bfn-lnn",
>                 .data = &shelly_sca07010_bfn_lnn,
>         }, {
> +               .compatible = "sinlinx,sina33-lcd-7",
> +               .data = &sinlinx_sina33_lcd_7,
> +       }, {
>                 .compatible = "starry,kr122ea0sra",
>                 .data = &starry_kr122ea0sra,
>         }, {
> --
> 2.9.2
>
Icenowy Zheng Sept. 4, 2016, 5:03 p.m. UTC | #2
Hi Everyone,

01.09.2016, 23:40, "Maxime Ripard" <maxime.ripard@free-electrons.com>:
>  The SinA33 has an unidentified panel. Add the timings for it under a new
>  compatible.



Excuse me...
I will ask a question which is not fully related to the patch here...
If I want to add a generic panel for Q8 tablets, what should it be called?
"allwinner,q8-lcd-panel-800x480"?

And, Hans, do you have any examples for a 1024x600 Q8 A33 tablet?
(If the answer is yes, I think sun8i-a33-q8-tablet.dts will met a split...)

Thanks,
Icenowy

>  Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
>  ---
>   drivers/gpu/drm/panel/panel-simple.c | 26 ++++++++++++++++++++++++++
>   1 file changed, 26 insertions(+)
>
>  diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
>  index 85143d1b9b31..af142e804245 100644
>  --- a/drivers/gpu/drm/panel/panel-simple.c
>  +++ b/drivers/gpu/drm/panel/panel-simple.c
>  @@ -1409,6 +1409,29 @@ static const struct panel_desc shelly_sca07010_bfn_lnn = {
>           .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
>   };
>
>  +static const struct drm_display_mode sinlinx_sina33_lcd_7_mode = {
>  + .clock = 66000,
>  + .hdisplay = 1024,
>  + .hsync_start = 1024 + 160,
>  + .hsync_end = 1024 + 160 + 70,
>  + .htotal = 1024 + 160 + 70 + 90,
>  + .vdisplay = 600,
>  + .vsync_start = 600 + 127,
>  + .vsync_end = 600 + 127 + 20,
>  + .vtotal = 600 + 127 + 20 + 3,
>  + .vrefresh = 60,
>  +};
>  +
>  +static const struct panel_desc sinlinx_sina33_lcd_7 = {
>  + .modes = &sinlinx_sina33_lcd_7_mode,
>  + .num_modes = 1,
>  + .size = {
>  + .width = 154,
>  + .height = 87,
>  + },
>  + .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
>  +};
>  +
>   static const struct drm_display_mode starry_kr122ea0sra_mode = {
>           .clock = 147000,
>           .hdisplay = 1920,
>  @@ -1644,6 +1667,9 @@ static const struct of_device_id platform_of_match[] = {
>                   .compatible = "shelly,sca07010-bfn-lnn",
>                   .data = &shelly_sca07010_bfn_lnn,
>           }, {
>  + .compatible = "sinlinx,sina33-lcd-7",
>  + .data = &sinlinx_sina33_lcd_7,
>  + }, {
>                   .compatible = "starry,kr122ea0sra",
>                   .data = &starry_kr122ea0sra,
>           }, {
>  --
>  2.9.2
>
>  _______________________________________________
>  linux-arm-kernel mailing list
>  linux-arm-kernel@lists.infradead.org
>  http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Maxime Ripard Sept. 5, 2016, 8:02 p.m. UTC | #3
Hi,

On Mon, Sep 05, 2016 at 01:03:03AM +0800, Icenowy Zheng wrote:
> Hi Everyone,
> 
> 01.09.2016, 23:40, "Maxime Ripard" <maxime.ripard@free-electrons.com>:
> >  The SinA33 has an unidentified panel. Add the timings for it under a new
> >  compatible.
> 
> 
> 
> Excuse me...
> I will ask a question which is not fully related to the patch here...
> If I want to add a generic panel for Q8 tablets, what should it be called?
> "allwinner,q8-lcd-panel-800x480"?

I guess it's more of a question for Thierry, but it seems like the
trend is to put the diagonal rather than the resolution in the
compatibles.

Maxime
Chen-Yu Tsai Sept. 6, 2016, 2:53 a.m. UTC | #4
On Tue, Sep 6, 2016 at 4:02 AM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Hi,
>
> On Mon, Sep 05, 2016 at 01:03:03AM +0800, Icenowy Zheng wrote:
>> Hi Everyone,
>>
>> 01.09.2016, 23:40, "Maxime Ripard" <maxime.ripard@free-electrons.com>:
>> >  The SinA33 has an unidentified panel. Add the timings for it under a new
>> >  compatible.
>>
>>
>>
>> Excuse me...
>> I will ask a question which is not fully related to the patch here...
>> If I want to add a generic panel for Q8 tablets, what should it be called?
>> "allwinner,q8-lcd-panel-800x480"?
>
> I guess it's more of a question for Thierry, but it seems like the
> trend is to put the diagonal rather than the resolution in the
> compatibles.

I think Hans (CC-ed) has some q8 tablet that has a 1024x600 LCD.
Both variants are 7". Without the exact model number we would need
the resolution to tell them apart.

ChenYu
Thierry Reding Sept. 6, 2016, 9:12 a.m. UTC | #5
On Mon, Sep 05, 2016 at 10:02:48PM +0200, Maxime Ripard wrote:
> Hi,
> 
> On Mon, Sep 05, 2016 at 01:03:03AM +0800, Icenowy Zheng wrote:
> > Hi Everyone,
> > 
> > 01.09.2016, 23:40, "Maxime Ripard" <maxime.ripard@free-electrons.com>:
> > >  The SinA33 has an unidentified panel. Add the timings for it under a new
> > >  compatible.
> > 
> > 
> > 
> > Excuse me...
> > I will ask a question which is not fully related to the patch here...
> > If I want to add a generic panel for Q8 tablets, what should it be called?
> > "allwinner,q8-lcd-panel-800x480"?
> 
> I guess it's more of a question for Thierry, but it seems like the
> trend is to put the diagonal rather than the resolution in the
> compatibles.

Compatible strings should contain the model number of the panel. There
is no such thing as a "generic panel for Q8 tablets".

Also, how is it that these panels are unidentified? Has nobody tried to
open them up and look at the panel to find a model number?

Thierry
Maxime Ripard Sept. 6, 2016, 2:33 p.m. UTC | #6
On Tue, Sep 06, 2016 at 11:12:24AM +0200, Thierry Reding wrote:
> On Mon, Sep 05, 2016 at 10:02:48PM +0200, Maxime Ripard wrote:
> > Hi,
> > 
> > On Mon, Sep 05, 2016 at 01:03:03AM +0800, Icenowy Zheng wrote:
> > > Hi Everyone,
> > > 
> > > 01.09.2016, 23:40, "Maxime Ripard" <maxime.ripard@free-electrons.com>:
> > > >  The SinA33 has an unidentified panel. Add the timings for it under a new
> > > >  compatible.
> > > 
> > > 
> > > 
> > > Excuse me...
> > > I will ask a question which is not fully related to the patch here...
> > > If I want to add a generic panel for Q8 tablets, what should it be called?
> > > "allwinner,q8-lcd-panel-800x480"?
> > 
> > I guess it's more of a question for Thierry, but it seems like the
> > trend is to put the diagonal rather than the resolution in the
> > compatibles.
> 
> Compatible strings should contain the model number of the panel. There
> is no such thing as a "generic panel for Q8 tablets".
> 
> Also, how is it that these panels are unidentified? Has nobody tried to
> open them up and look at the panel to find a model number?

It is not always possible without breaking the device apart. And I can
understand not a lot of people want to do that.

But on that particular patch, I had a bunch of spare ones, and ended
up doing just that. The reference is from an unknown brand, but at
least the part number shows up on Google, I'll use that.

Maxime
diff mbox

Patch

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 85143d1b9b31..af142e804245 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1409,6 +1409,29 @@  static const struct panel_desc shelly_sca07010_bfn_lnn = {
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
 };
 
+static const struct drm_display_mode sinlinx_sina33_lcd_7_mode = {
+	.clock = 66000,
+	.hdisplay = 1024,
+	.hsync_start = 1024 + 160,
+	.hsync_end = 1024 + 160 + 70,
+	.htotal = 1024 + 160 + 70 + 90,
+	.vdisplay = 600,
+	.vsync_start = 600 + 127,
+	.vsync_end = 600 + 127 + 20,
+	.vtotal = 600 + 127 + 20 + 3,
+	.vrefresh = 60,
+};
+
+static const struct panel_desc sinlinx_sina33_lcd_7 = {
+	.modes = &sinlinx_sina33_lcd_7_mode,
+	.num_modes = 1,
+	.size = {
+		.width = 154,
+		.height = 87,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+};
+
 static const struct drm_display_mode starry_kr122ea0sra_mode = {
 	.clock = 147000,
 	.hdisplay = 1920,
@@ -1644,6 +1667,9 @@  static const struct of_device_id platform_of_match[] = {
 		.compatible = "shelly,sca07010-bfn-lnn",
 		.data = &shelly_sca07010_bfn_lnn,
 	}, {
+		.compatible = "sinlinx,sina33-lcd-7",
+		.data = &sinlinx_sina33_lcd_7,
+	}, {
 		.compatible = "starry,kr122ea0sra",
 		.data = &starry_kr122ea0sra,
 	}, {