On Thu, Aug 05, 2021 at 07:52:24AM +0200, Ahmad Fatoum wrote:
Hello Oleksij,
On 05.08.21 06:37, Oleksij Rempel wrote:
From: Sam Ravnborg sam@ravnborg.org
The Multi Innotechnology is a 10.1" 1280x800 panel.
The datasheet did not specify specific values for sync, back, front porch. The values are a best guess based on values for similar panels.
Co-Developed-by: Sam Ravnborg sam@ravnborg.org Co-Developed-by: Ulrich Ölmann u.oelmann@pengutronix.de Signed-off-by: Sam Ravnborg sam@ravnborg.org Signed-off-by: Ulrich Ölmann u.oelmann@pengutronix.de Signed-off-by: Oleksij Rempel o.rempel@pengutronix.de
drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 21939d4352cf..fda79a986d12 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -3033,6 +3033,37 @@ static const struct panel_desc mitsubishi_aa070mc01 = { .bus_flags = DRM_BUS_FLAG_DE_HIGH, };
+static const struct display_timing multi_inno_mi1010ait_1cp_timing = {
- .pixelclock = { 68900000, 70000000, 73400000 },
- .hactive = { 1280, 1280, 1280 },
- .hfront_porch = { 30, 60, 71 },
- .hback_porch = { 30, 60, 71 },
- .hsync_len = { 10, 10, 48 },
- .vactive = { 800, 800, 800 },
- .vfront_porch = { 5, 10, 10 },
- .vback_porch = { 5, 10, 10 },
- .vsync_len = { 5, 6, 13 },
- .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
DISPLAY_FLAGS_DE_HIGH,
+};
Here you specify DISPLAY_FLAGS_DE_HIGH.
+static const struct panel_desc multi_inno_mi1010ait_1cp = {
- .timings = &multi_inno_mi1010ait_1cp_timing,
- .num_timings = 1,
- .bpc = 8,
- .size = {
.width = 217,
.height = 136,
- },
- .delay = {
.enable = 50,
.disable = 50,
- },
- .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
- .bus_flags = DRM_BUS_FLAG_DE_HIGH,
And here DRM_BUS_FLAG_DE_HIGH. I see that some other panels do this too and some only specify one of them. Do you know if they are redundant or one of them is ignored?
Hmm... there is a drm_bus_flags_from_videomode(): if (vm->flags & DISPLAY_FLAGS_DE_HIGH) *bus_flags |= DRM_BUS_FLAG_DE_HIGH;
It looks like for DPI panel it would be set automatically. This function is not execute in case of LVDS panel.
Regards, Oleksij