Skip to contentSkip to conversation

Improve descriptions of a few simple-panels

PATCH In review Dmitry Osipenko 3 participants 12 messages Jun 21, 2020 – Jun 28, 2020

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover Improve descriptions of a few simple-panels

Hello,

This is a follow up to [1], which was already applied to drm-misc and then Laurent Pinchart spotted some problems. This series addresses those problems.

[1] https://patchwork.ozlabs.org/project/linux-tegra/patch/20200617222703.17080-8-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org/

Dmitry Osipenko (2):
drm/panel-simple: Correct EDT ET057090DHU connector type drm/panel-simple: Add missing BUS descriptions for some panels

 drivers/gpu/drm/panel/panel-simple.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
Signature · 1 line
2.26.0
#1 lore raw

PATCH 1/2 drm/panel-simple: Correct EDT ET057090DHU connector type

The EDT ET057090DHU panel has a DPI connector and not LVDS. This patch corrects the panel's description.

Fixes 94f07917ebe8 ("drm/panel-simple: Add missing connector type for some panels")
---
 drivers/gpu/drm/panel/panel-simple.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/panel/panel-simple.c +1 -1
index ea6973d5cf54..87edd2bdf09a 100644
@@ -1588,7 +1588,7 @@ static const struct panel_desc edt_et057090dhu = {
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
-	.connector_type = DRM_MODE_CONNECTOR_LVDS,
+	.connector_type = DRM_MODE_CONNECTOR_DPI,
 };
 
 static const struct drm_display_mode edt_etm0700g0dh6_mode = {
Signature · 1 line
2.26.0
Reviewed-by on v1 1/2
#2 lore raw

Re: [PATCH v1 1/2] drm/panel-simple: Correct EDT ET057090DHU connector type

Hi Dmitry,

Thank you for the patch.

Quoted 6 lines · Dmitry Osipenko

The EDT ET057090DHU panel has a DPI connector and not LVDS. This patch corrects the panel's description.

Fixes 94f07917ebe8 ("drm/panel-simple: Add missing connector type for some panels")
Quoted 17 lines
---
 drivers/gpu/drm/panel/panel-simple.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/panel/panel-simple.c +1 -1
index ea6973d5cf54..87edd2bdf09a 100644
@@ -1588,7 +1588,7 @@ static const struct panel_desc edt_et057090dhu = {
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
-	.connector_type = DRM_MODE_CONNECTOR_LVDS,
+	.connector_type = DRM_MODE_CONNECTOR_DPI,
 };
 
 static const struct drm_display_mode edt_etm0700g0dh6_mode = {
Signature · 3 lines
Regards,

Laurent Pinchart
#3 lore raw

Re: [PATCH v1 1/2] drm/panel-simple: Correct EDT ET057090DHU connector type

22.06.2020 01:29, Laurent Pinchart пишет:

Quoted 5 lines

Hi Dmitry,

Thank you for the patch.

On Mon, Jun 22, 2020 at 01:27:41AM +0300, Dmitry Osipenko wrote:

Quoted 8 lines
Quoted 6 lines

The EDT ET057090DHU panel has a DPI connector and not LVDS. This patch corrects the panel's description.

Fixes 94f07917ebe8 ("drm/panel-simple: Add missing connector type for some panels")

Thank you! :)

#4 lore raw

PATCH 2/2 drm/panel-simple: Add missing BUS descriptions for some panels

In reply to Dmitry Osipenko

This patch adds missing BUS fields to the display panel descriptions of the panels which are found on NVIDIA Tegra devices:

1. AUO B101AW03
2. Chunghwa CLAA070WP03XG
3. Chunghwa CLAA101WA01A
4. Chunghwa CLAA101WB01
5. Innolux N156BGE L21
6. Samsung LTN101NT05

---
 drivers/gpu/drm/panel/panel-simple.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
drivers/gpu/drm/panel/panel-simple.c +12 -0
index 87edd2bdf09a..986df9937650 100644
@@ -698,6 +698,8 @@ static const struct panel_desc auo_b101aw03 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -1352,6 +1354,8 @@ static const struct panel_desc chunghwa_claa070wp03xg = {
 		.width = 94,
 		.height = 150,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -1375,6 +1379,8 @@ static const struct panel_desc chunghwa_claa101wa01a = {
 		.width = 220,
 		.height = 120,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -1398,6 +1404,8 @@ static const struct panel_desc chunghwa_claa101wb01 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -2071,6 +2079,8 @@ static const struct panel_desc innolux_n156bge_l21 = {
 		.width = 344,
 		.height = 193,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -3018,6 +3028,8 @@ static const struct panel_desc samsung_ltn101nt05 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
Signature · 1 line
2.26.0
Reviewed-by on v1 2/2
#5 lore raw

Re: [PATCH v1 2/2] drm/panel-simple: Add missing BUS descriptions for some panels

Hi Dmitry,

Thank you for the patch.

Quoted 21 lines · Dmitry Osipenko

This patch adds missing BUS fields to the display panel descriptions of the panels which are found on NVIDIA Tegra devices:

1. AUO B101AW03
2. Chunghwa CLAA070WP03XG
3. Chunghwa CLAA101WA01A
4. Chunghwa CLAA101WB01
5. Innolux N156BGE L21
6. Samsung LTN101NT05

---
 drivers/gpu/drm/panel/panel-simple.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
drivers/gpu/drm/panel/panel-simple.c +0 -0
index 87edd2bdf09a..986df9937650 100644

drivers/gpu/drm/panel/panel-simple.c static const struct panel_desc auo_b101aw03 = { · line 702

Quoted 5 lines
drivers/gpu/drm/panel/panel-simple.c +2 -0
@@ -698,6 +698,8 @@ static const struct panel_desc auo_b101aw03 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,

Does DRM_BUS_FLAG_PIXDATA_DRIVE_* make sense for LVDS ?

The rest looks good, except the Samsung panel for which I haven't been able to locate a datasheet.

Quoted 48 lines
drivers/gpu/drm/panel/panel-simple.c +10 -0
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -1352,6 +1354,8 @@ static const struct panel_desc chunghwa_claa070wp03xg = {
 		.width = 94,
 		.height = 150,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -1375,6 +1379,8 @@ static const struct panel_desc chunghwa_claa101wa01a = {
 		.width = 220,
 		.height = 120,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -1398,6 +1404,8 @@ static const struct panel_desc chunghwa_claa101wb01 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -2071,6 +2079,8 @@ static const struct panel_desc innolux_n156bge_l21 = {
 		.width = 344,
 		.height = 193,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
@@ -3018,6 +3028,8 @@ static const struct panel_desc samsung_ltn101nt05 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
Signature · 3 lines
Regards,

Laurent Pinchart
#6 lore raw

Re: [PATCH v1 2/2] drm/panel-simple: Add missing BUS descriptions for some panels

27.06.2020 23:43, Laurent Pinchart пишет:

Quoted 21 lines

Hi Dmitry,

Thank you for the patch.

Quoted 16 lines · Dmitry Osipenko

This patch adds missing BUS fields to the display panel descriptions of the panels which are found on NVIDIA Tegra devices:

1. AUO B101AW03
2. Chunghwa CLAA070WP03XG
3. Chunghwa CLAA101WA01A
4. Chunghwa CLAA101WB01
5. Innolux N156BGE L21
6. Samsung LTN101NT05

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

drivers/gpu/drm/panel/panel-simple.c static const struct panel_desc auo_b101aw03 = { · line 702

Quoted 10 lines
drivers/gpu/drm/panel/panel-simple.c +2 -0
index 87edd2bdf09a..986df9937650 100644
@@ -698,6 +698,8 @@ static const struct panel_desc auo_b101aw03 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,

Does DRM_BUS_FLAG_PIXDATA_DRIVE_* make sense for LVDS ?

To be honest I don't know whether it make sense or not for LVDS. I saw that other LVDS panels in panel-simple.c use the PIXDATA flag and then looked at what timing diagrams in the datasheets show.

Quoted 4 lines

The rest looks good, except the Samsung panel for which I haven't been able to locate a datasheet.

Thanks to you and Sam!

#7 lore raw

Re: [PATCH v1 2/2] drm/panel-simple: Add missing BUS descriptions for some panels

Hi Dmitry,

Quoted 31 lines · Dmitry Osipenko

27.06.2020 23:43, Laurent Pinchart пишет:

Quoted 17 lines · Dmitry Osipenko
Quoted 16 lines

This patch adds missing BUS fields to the display panel descriptions of the panels which are found on NVIDIA Tegra devices:

1. AUO B101AW03
2. Chunghwa CLAA070WP03XG
3. Chunghwa CLAA101WA01A
4. Chunghwa CLAA101WB01
5. Innolux N156BGE L21
6. Samsung LTN101NT05

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

drivers/gpu/drm/panel/panel-simple.c static const struct panel_desc auo_b101aw03 = { · line 702

Quoted 10 lines
drivers/gpu/drm/panel/panel-simple.c +2 -0
index 87edd2bdf09a..986df9937650 100644
@@ -698,6 +698,8 @@ static const struct panel_desc auo_b101aw03 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,

Does DRM_BUS_FLAG_PIXDATA_DRIVE_* make sense for LVDS ?

Quoted 3 lines

To be honest I don't know whether it make sense or not for LVDS. I saw that other LVDS panels in panel-simple.c use the PIXDATA flag and then looked at what timing diagrams in the datasheets show.

I think we should drop DRM_BUS_FLAG_PIXDATA_DRIVE_* for LVDS panels. I'll submit a patch.

Quoted 6 lines
Quoted 4 lines

The rest looks good, except the Samsung panel for which I haven't been able to locate a datasheet.

Thanks to you and Sam!

Signature · 3 lines
Regards,

Laurent Pinchart
#8 lore raw

Re: [PATCH v1 2/2] drm/panel-simple: Add missing BUS descriptions for some panels

Hi Laurent.

Quoted 34 lines · Laurent Pinchart

Hi Dmitry,

Quoted 31 lines · Dmitry Osipenko

27.06.2020 23:43, Laurent Pinchart пишет:

Quoted 29 lines · Dmitry Osipenko
Quoted 21 lines

This patch adds missing BUS fields to the display panel descriptions of the panels which are found on NVIDIA Tegra devices:

1. AUO B101AW03
2. Chunghwa CLAA070WP03XG
3. Chunghwa CLAA101WA01A
4. Chunghwa CLAA101WB01
5. Innolux N156BGE L21
6. Samsung LTN101NT05

---
 drivers/gpu/drm/panel/panel-simple.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
drivers/gpu/drm/panel/panel-simple.c +0 -0
index 87edd2bdf09a..986df9937650 100644

drivers/gpu/drm/panel/panel-simple.c static const struct panel_desc auo_b101aw03 = { · line 702

Quoted 5 lines
drivers/gpu/drm/panel/panel-simple.c +2 -0
@@ -698,6 +698,8 @@ static const struct panel_desc auo_b101aw03 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,

Does DRM_BUS_FLAG_PIXDATA_DRIVE_* make sense for LVDS ?

Quoted 6 lines
Quoted 3 lines

To be honest I don't know whether it make sense or not for LVDS. I saw that other LVDS panels in panel-simple.c use the PIXDATA flag and then looked at what timing diagrams in the datasheets show.

I think we should drop DRM_BUS_FLAG_PIXDATA_DRIVE_* for LVDS panels. I'll submit a patch.

We should also clean up all the DRM_BUS_FLAG_* one day. No need for the deprecated values, so a few files needs an update. And we could document what flags makes sense for LVDS etc.

On the TODO list...

Sam

Quoted 12 lines
Quoted 7 lines
Quoted 5 lines

The rest looks good, except the Samsung panel for which I haven't been able to locate a datasheet.

Thanks to you and Sam!

Signature · 3 lines
Regards,

Laurent Pinchart
#9 lore raw

Re: [PATCH v1 2/2] drm/panel-simple: Add missing BUS descriptions for some panels

Hi Sam,

Quoted 37 lines · Sam Ravnborg
Quoted 36 lines · Laurent Pinchart
Quoted 34 lines · Dmitry Osipenko

27.06.2020 23:43, Laurent Pinchart пишет:

Quoted 17 lines · Dmitry Osipenko
Quoted 16 lines

This patch adds missing BUS fields to the display panel descriptions of the panels which are found on NVIDIA Tegra devices:

1. AUO B101AW03
2. Chunghwa CLAA070WP03XG
3. Chunghwa CLAA101WA01A
4. Chunghwa CLAA101WB01
5. Innolux N156BGE L21
6. Samsung LTN101NT05

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

drivers/gpu/drm/panel/panel-simple.c static const struct panel_desc auo_b101aw03 = { · line 702

Quoted 10 lines
drivers/gpu/drm/panel/panel-simple.c +2 -0
index 87edd2bdf09a..986df9937650 100644
@@ -698,6 +698,8 @@ static const struct panel_desc auo_b101aw03 = {
 		.width = 223,
 		.height = 125,
 	},
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,

Does DRM_BUS_FLAG_PIXDATA_DRIVE_* make sense for LVDS ?

To be honest I don't know whether it make sense or not for LVDS. I saw that other LVDS panels in panel-simple.c use the PIXDATA flag and then looked at what timing diagrams in the datasheets show.

Quoted 6 lines
Quoted 2 lines

I think we should drop DRM_BUS_FLAG_PIXDATA_DRIVE_* for LVDS panels. I'll submit a patch.

We should also clean up all the DRM_BUS_FLAG_* one day. No need for the deprecated values, so a few files needs an update. And we could document what flags makes sense for LVDS etc.

Where would you add that documentation ? The hardest part is to find a place that will be noticed by developers :-)

I've just submitted a patch that adds a WARN_ON to catch similar issues in the panel-simple driver. It's not ideal as we really shouldn't have such code in the kernel, this is something that should be caught as part of the integration process.

Quoted 6 lines

On the TODO list...

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

The rest looks good, except the Samsung panel for which I haven't been able to locate a datasheet.

Signature · 3 lines
Regards,

Laurent Pinchart
#10 lore raw

Re: [PATCH v1 2/2] drm/panel-simple: Add missing BUS descriptions for some panels

Quoted 8 lines · Laurent Pinchart

Hi Sam,

Quoted 3 lines

We should also clean up all the DRM_BUS_FLAG_* one day. No need for the deprecated values, so a few files needs an update. And we could document what flags makes sense for LVDS etc.

Where would you add that documentation ? The hardest part is to find a place that will be noticed by developers :-)

I will try to extend drm_bus_flags documentation in drm_connector.h And then add a few comments in panel-simple as well.

Sam

Quoted 18 lines

I've just submitted a patch that adds a WARN_ON to catch similar issues in the panel-simple driver. It's not ideal as we really shouldn't have such code in the kernel, this is something that should be caught as part of the integration process.

Quoted 6 lines

On the TODO list...

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

The rest looks good, except the Samsung panel for which I haven't been able to locate a datasheet.

Signature · 3 lines
Regards,

Laurent Pinchart
#11 lore raw
In reply to Dmitry Osipenko
Quoted 10 lines · Dmitry Osipenko

Hello,

This is a follow up to [1], which was already applied to drm-misc and then Laurent Pinchart spotted some problems. This series addresses those problems.

[1] https://patchwork.ozlabs.org/project/linux-tegra/patch/20200617222703.17080-8-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org/

Dmitry Osipenko (2):
drm/panel-simple: Correct EDT ET057090DHU connector type drm/panel-simple: Add missing BUS descriptions for some panels

Thanks for the quick fixes, both are now applied to drm-misc-next.

Sam