lkml.org 
[lkml]   [2023]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] drm/panel: simple: Fix AUO G121EAN01 panel timings according to the docs
On 04/08/2023 17:12, Luca Ceresoli wrote:
> Commit 03e909acd95a ("drm/panel: simple: Add support for AUO G121EAN01.4
> panel") added support for this panel model, but the timings it implements
> are very different from what the datasheet describes. I checked both the
> G121EAN01.0 datasheet from [0] and the G121EAN01.4 one from [1] and they
> all have the same timings: for example the LVDS clock typical value is 74.4
> MHz, not 66.7 MHz as implemented.
>
> Replace the timings with the ones from the documentation. These timings
> have been tested and the clock frequencies verified with an oscilloscope to
> ensure they are correct.
>
> Also use struct display_timing instead of struct drm_display_mode in order
> to also specify the minimum and maximum values.
>
> [0] https://embedded.avnet.com/product/g121ean01-0/
> [1] https://embedded.avnet.com/product/g121ean01-4/
>
> Fixes: 03e909acd95a ("drm/panel: simple: Add support for AUO G121EAN01.4 panel")
> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
> ---
> drivers/gpu/drm/panel/panel-simple.c | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 701013b3ad13..56854f78441e 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -999,21 +999,21 @@ static const struct panel_desc auo_g104sn02 = {
> .connector_type = DRM_MODE_CONNECTOR_LVDS,
> };
>
> -static const struct drm_display_mode auo_g121ean01_mode = {
> - .clock = 66700,
> - .hdisplay = 1280,
> - .hsync_start = 1280 + 58,
> - .hsync_end = 1280 + 58 + 8,
> - .htotal = 1280 + 58 + 8 + 70,
> - .vdisplay = 800,
> - .vsync_start = 800 + 6,
> - .vsync_end = 800 + 6 + 4,
> - .vtotal = 800 + 6 + 4 + 10,
> +static const struct display_timing auo_g121ean01_timing = {
> + .pixelclock = { 60000000, 74400000, 90000000 },
> + .hactive = { 1280, 1280, 1280 },
> + .hfront_porch = { 20, 50, 100 },
> + .hback_porch = { 20, 50, 100 },
> + .hsync_len = { 30, 100, 200 },
> + .vactive = { 800, 800, 800 },
> + .vfront_porch = { 2, 10, 25 },
> + .vback_porch = { 2, 10, 25 },
> + .vsync_len = { 4, 18, 50 },
> };
>
> static const struct panel_desc auo_g121ean01 = {
> - .modes = &auo_g121ean01_mode,
> - .num_modes = 1,
> + .timings = &auo_g121ean01_timing,
> + .num_timings = 1,
> .bpc = 8,
> .size = {
> .width = 261,

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>

\
 
 \ /
  Last update: 2023-08-14 14:38    [W:0.048 / U:0.216 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site