* [PATCH v2 0/4] Support panels used by MT8173 Chromebooks in edp-panel
@ 2023-12-07 8:17 Pin-yen Lin
2023-12-07 8:17 ` [PATCH v2 1/4] drm/edp-panel: Move the KDC panel to a separate group Pin-yen Lin
` (3 more replies)
0 siblings, 4 replies; 14+ messages in thread
From: Pin-yen Lin @ 2023-12-07 8:17 UTC (permalink / raw)
To: Douglas Anderson, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Daniel Vetter
Cc: linux-kernel, Guenter Roeck, dri-devel, Pin-yen Lin
This series contains 4 patches:
1. Sort the panel entries as a clean up. This one has no dependency with
other patches in this series and can be merged separately.
2. Add a new panel delay to support some BOE panels
3. Add panel entries used by Mediatek MT8173 Chromebooks.
4. Add panels missing data sheets but used to work in older kernel version
without any specified delays.
Changes in v2:
- Add a new patch to sort the list, and rebase the rest patches.
Pin-yen Lin (4):
drm/edp-panel: Move the KDC panel to a separate group
drm/panel-edp: Add powered_on_to_enable delay
drm/edp-panel: Add panels delay entries
drm/panel-edp: Add some panels with conservative timings
drivers/gpu/drm/panel/panel-edp.c | 93 ++++++++++++++++++++++++++++++-
1 file changed, 92 insertions(+), 1 deletion(-)
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply [flat|nested] 14+ messages in thread* [PATCH v2 1/4] drm/edp-panel: Move the KDC panel to a separate group 2023-12-07 8:17 [PATCH v2 0/4] Support panels used by MT8173 Chromebooks in edp-panel Pin-yen Lin @ 2023-12-07 8:17 ` Pin-yen Lin 2023-12-07 18:23 ` Doug Anderson 2023-12-07 8:17 ` [PATCH v2 2/4] drm/panel-edp: Add powered_on_to_enable delay Pin-yen Lin ` (2 subsequent siblings) 3 siblings, 1 reply; 14+ messages in thread From: Pin-yen Lin @ 2023-12-07 8:17 UTC (permalink / raw) To: Douglas Anderson, Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter Cc: linux-kernel, Guenter Roeck, dri-devel, Pin-yen Lin Move the KDC panel entry to make the list sorted by the vendor string. Signed-off-by: Pin-yen Lin <treapking@chromium.org> --- (no changes since v1) drivers/gpu/drm/panel/panel-edp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c index c76f186c4baa..a0b6f69b916f 100644 --- a/drivers/gpu/drm/panel/panel-edp.c +++ b/drivers/gpu/drm/panel/panel-edp.c @@ -1980,9 +1980,10 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('I', 'V', 'O', 0x8c4d, &delay_200_150_e200, "R140NWFM R1"), EDP_PANEL_ENTRY('K', 'D', 'B', 0x0624, &kingdisplay_kd116n21_30nv_a010.delay, "116N21-30NV-A010"), - EDP_PANEL_ENTRY('K', 'D', 'C', 0x0809, &delay_200_500_e50, "KD116N2930A15"), EDP_PANEL_ENTRY('K', 'D', 'B', 0x1120, &delay_200_500_e80_d50, "116N29-30NK-C007"), + EDP_PANEL_ENTRY('K', 'D', 'C', 0x0809, &delay_200_500_e50, "KD116N2930A15"), + EDP_PANEL_ENTRY('S', 'D', 'C', 0x416d, &delay_100_500_e200, "ATNA45AF01"), EDP_PANEL_ENTRY('S', 'H', 'P', 0x1511, &delay_200_500_e50, "LQ140M1JW48"), -- 2.43.0.472.g3155946c3a-goog ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/4] drm/edp-panel: Move the KDC panel to a separate group 2023-12-07 8:17 ` [PATCH v2 1/4] drm/edp-panel: Move the KDC panel to a separate group Pin-yen Lin @ 2023-12-07 18:23 ` Doug Anderson 0 siblings, 0 replies; 14+ messages in thread From: Doug Anderson @ 2023-12-07 18:23 UTC (permalink / raw) To: Pin-yen Lin Cc: Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel Hi, On Thu, Dec 7, 2023 at 12:18 AM Pin-yen Lin <treapking@chromium.org> wrote: > > Move the KDC panel entry to make the list sorted by the vendor string. > > Signed-off-by: Pin-yen Lin <treapking@chromium.org> > --- > > (no changes since v1) > > drivers/gpu/drm/panel/panel-edp.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Reviewed-by: Douglas Anderson <dianders@chromium.org> Pushed to drm-misc-next: 67a5f0ff3429 drm/edp-panel: Move the KDC panel to a separate group ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 2/4] drm/panel-edp: Add powered_on_to_enable delay 2023-12-07 8:17 [PATCH v2 0/4] Support panels used by MT8173 Chromebooks in edp-panel Pin-yen Lin 2023-12-07 8:17 ` [PATCH v2 1/4] drm/edp-panel: Move the KDC panel to a separate group Pin-yen Lin @ 2023-12-07 8:17 ` Pin-yen Lin 2023-12-07 18:23 ` Doug Anderson 2023-12-07 8:17 ` [PATCH v2 3/4] drm/edp-panel: Add panels delay entries Pin-yen Lin 2023-12-07 8:17 ` [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings Pin-yen Lin 3 siblings, 1 reply; 14+ messages in thread From: Pin-yen Lin @ 2023-12-07 8:17 UTC (permalink / raw) To: Douglas Anderson, Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter Cc: linux-kernel, Guenter Roeck, dri-devel, Pin-yen Lin Add the support of powered_on_to_enable delay as the minimum time that needs to have passed between the panel powered on and enable may begin. This delay is seen in BOE panels as the minimum delay of T3+T4+T5+T6+T8 in the eDP timing diagrams. Signed-off-by: Pin-yen Lin <treapking@chromium.org> --- (no changes since v1) drivers/gpu/drm/panel/panel-edp.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c index a0b6f69b916f..44acf9cacaf7 100644 --- a/drivers/gpu/drm/panel/panel-edp.c +++ b/drivers/gpu/drm/panel/panel-edp.c @@ -70,6 +70,21 @@ struct panel_delay { */ unsigned int hpd_absent; + /** + * @powered_on_to_enable: Time between panel powered on and enable. + * + * The minimum time, in milliseconds, that needs to have passed + * between when panel powered on and enable may begin. + * + * This is (T3+T4+T5+T6+T8)-min on eDP timing diagrams or after the + * power supply enabled until we can turn the backlight on and see + * valid data. + * + * This doesn't normally need to be set if timings are already met by + * prepare_to_enable or enable. + */ + unsigned int powered_on_to_enable; + /** * @prepare_to_enable: Time between prepare and enable. * @@ -216,6 +231,7 @@ struct panel_edp { bool prepared; ktime_t prepared_time; + ktime_t powered_on_time; ktime_t unprepared_time; const struct panel_desc *desc; @@ -455,6 +471,8 @@ static int panel_edp_prepare_once(struct panel_edp *p) gpiod_set_value_cansleep(p->enable_gpio, 1); + p->powered_on_time = ktime_get_boottime(); + delay = p->desc->delay.hpd_reliable; if (p->no_hpd) delay = max(delay, p->desc->delay.hpd_absent); @@ -579,6 +597,8 @@ static int panel_edp_enable(struct drm_panel *panel) panel_edp_wait(p->prepared_time, p->desc->delay.prepare_to_enable); + panel_edp_wait(p->powered_on_time, p->desc->delay.powered_on_to_enable); + p->enabled = true; return 0; -- 2.43.0.472.g3155946c3a-goog ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/4] drm/panel-edp: Add powered_on_to_enable delay 2023-12-07 8:17 ` [PATCH v2 2/4] drm/panel-edp: Add powered_on_to_enable delay Pin-yen Lin @ 2023-12-07 18:23 ` Doug Anderson 0 siblings, 0 replies; 14+ messages in thread From: Doug Anderson @ 2023-12-07 18:23 UTC (permalink / raw) To: Pin-yen Lin Cc: Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel Hi, On Thu, Dec 7, 2023 at 12:18 AM Pin-yen Lin <treapking@chromium.org> wrote: > > Add the support of powered_on_to_enable delay as the minimum time that > needs to have passed between the panel powered on and enable may begin. > > This delay is seen in BOE panels as the minimum delay of T3+T4+T5+T6+T8 > in the eDP timing diagrams. > > Signed-off-by: Pin-yen Lin <treapking@chromium.org> > --- > > (no changes since v1) > > drivers/gpu/drm/panel/panel-edp.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) Should have carried my tag from v1 since there were no changes: Reviewed-by: Douglas Anderson <dianders@chromium.org> As per my response in v1: This needs to bake a little while on the lists (1-2 weeks) before I apply it in case others have opinions. ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 3/4] drm/edp-panel: Add panels delay entries 2023-12-07 8:17 [PATCH v2 0/4] Support panels used by MT8173 Chromebooks in edp-panel Pin-yen Lin 2023-12-07 8:17 ` [PATCH v2 1/4] drm/edp-panel: Move the KDC panel to a separate group Pin-yen Lin 2023-12-07 8:17 ` [PATCH v2 2/4] drm/panel-edp: Add powered_on_to_enable delay Pin-yen Lin @ 2023-12-07 8:17 ` Pin-yen Lin 2023-12-07 18:23 ` Doug Anderson 2023-12-07 8:17 ` [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings Pin-yen Lin 3 siblings, 1 reply; 14+ messages in thread From: Pin-yen Lin @ 2023-12-07 8:17 UTC (permalink / raw) To: Douglas Anderson, Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter Cc: linux-kernel, Guenter Roeck, dri-devel, Pin-yen Lin Add panels used by Mediatek MT8173 Chromebooks. Signed-off-by: Pin-yen Lin <treapking@chromium.org> --- (no changes since v1) drivers/gpu/drm/panel/panel-edp.c | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c index 44acf9cacaf7..b059f5895d3a 100644 --- a/drivers/gpu/drm/panel/panel-edp.c +++ b/drivers/gpu/drm/panel/panel-edp.c @@ -1857,6 +1857,13 @@ static const struct panel_delay delay_200_500_p2e80 = { .prepare_to_enable = 80, }; +static const struct panel_delay delay_200_500_e50_p2e80 = { + .hpd_absent = 200, + .unprepare = 500, + .enable = 50, + .prepare_to_enable = 80, +}; + static const struct panel_delay delay_200_500_p2e100 = { .hpd_absent = 200, .unprepare = 500, @@ -1894,6 +1901,13 @@ static const struct panel_delay delay_200_500_e200 = { .enable = 200, }; +static const struct panel_delay delay_200_500_e200_d200 = { + .hpd_absent = 200, + .unprepare = 500, + .enable = 200, + .disable = 200, +}; + static const struct panel_delay delay_200_500_e200_d10 = { .hpd_absent = 200, .unprepare = 500, @@ -1907,6 +1921,13 @@ static const struct panel_delay delay_200_150_e200 = { .enable = 200, }; +static const struct panel_delay delay_200_500_e50_po2e200 = { + .hpd_absent = 200, + .unprepare = 500, + .enable = 50, + .powered_on_to_enable = 200, +}; + #define EDP_PANEL_ENTRY(vend_chr_0, vend_chr_1, vend_chr_2, product_id, _delay, _name) \ { \ .name = _name, \ @@ -1932,6 +1953,7 @@ static const struct panel_delay delay_200_150_e200 = { * Sort first by vendor, then by product ID. */ static const struct edp_panel_entry edp_panels[] = { + EDP_PANEL_ENTRY('A', 'U', 'O', 0x105c, &delay_200_500_e50, "B116XTN01.0"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x1062, &delay_200_500_e50, "B120XAN01.0"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x145c, &delay_200_500_e50, "B116XAB01.4"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x1e9b, &delay_200_500_e50, "B133UAN02.1"), @@ -1948,23 +1970,31 @@ static const struct edp_panel_entry edp_panels[] = { &auo_b116xa3_mode), EDP_PANEL_ENTRY('A', 'U', 'O', 0x635c, &delay_200_500_e50, "B116XAN06.3"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x639c, &delay_200_500_e50, "B140HAK02.7"), + EDP_PANEL_ENTRY('A', 'U', 'O', 0x723c, &delay_200_500_e50, "B140XTN07.2"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x8594, &delay_200_500_e50, "B133UAN01.0"), EDP_PANEL_ENTRY('A', 'U', 'O', 0xf390, &delay_200_500_e50, "B140XTN07.7"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0608, &delay_200_500_e50, "NT116WHM-N11"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0715, &delay_200_150_e200, "NT116WHM-N21"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0717, &delay_200_500_e50_po2e200, "NV133FHM-N42"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0731, &delay_200_500_e80, "NT116WHM-N42"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0741, &delay_200_500_e200, "NT116WHM-N44"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0754, &delay_200_500_e50_po2e200, "NV116WHM-N45"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0786, &delay_200_500_p2e80, "NV116WHM-T01"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x07d1, &boe_nv133fhm_n61.delay, "NV133FHM-N61"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x07f6, &delay_200_500_e200, "NT140FHM-N44"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0827, &delay_200_500_e50_p2e80, "NT140WHM-N44 V8.0"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x082d, &boe_nv133fhm_n61.delay, "NV133FHM-N62"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x08b2, &delay_200_500_e200, "NT140WHM-N49"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x09c3, &delay_200_500_e50, "NT116WHM-N21,836X2"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x094b, &delay_200_500_e50, "NT116WHM-N21"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0951, &delay_200_500_e80, "NV116WHM-N47"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x095f, &delay_200_500_e50, "NE135FBM-N41 v8.1"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x096e, &delay_200_500_e50_po2e200, "NV116WHM-T07 V8.0"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0979, &delay_200_500_e50, "NV116WHM-N49 V8.0"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x098d, &boe_nv110wtm_n61.delay, "NV110WTM-N61"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0993, &delay_200_500_e80, "NV116WHM-T14 V8.0"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x09ad, &delay_200_500_e80, "NV116WHM-N47"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x09ae, &delay_200_500_e200, "NT140FHM-N45"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x09dd, &delay_200_500_e50, "NT116WHM-N21"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0a5d, &delay_200_500_e50, "NV116WHM-N45"), @@ -1973,6 +2003,7 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('B', 'O', 'E', 0x0b56, &delay_200_500_e80, "NT140FHM-N47"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0c20, &delay_200_500_e80, "NT140FHM-N47"), + EDP_PANEL_ENTRY('C', 'M', 'N', 0x1130, &delay_200_500_e50, "N116BGE-EB2"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1132, &delay_200_500_e80_d50, "N116BGE-EA2"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1138, &innolux_n116bca_ea1.delay, "N116BCA-EA1-RC4"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1139, &delay_200_500_e80_d50, "N116BGE-EA2"), @@ -1985,6 +2016,7 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('C', 'M', 'N', 0x115b, &delay_200_500_e80_d50, "N116BCN-EB1"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1247, &delay_200_500_e80_d50, "N120ACA-EA1"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x142b, &delay_200_500_e80_d50, "N140HCA-EAC"), + EDP_PANEL_ENTRY('C', 'M', 'N', 0x142e, &delay_200_500_e80_d50, "N140BGA-EA4"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x144f, &delay_200_500_e80_d50, "N140HGA-EA1"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1468, &delay_200_500_e80, "N140HGA-EA1"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x14d4, &delay_200_500_e80_d50, "N140HCA-EAC"), @@ -2000,10 +2032,17 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('I', 'V', 'O', 0x8c4d, &delay_200_150_e200, "R140NWFM R1"), EDP_PANEL_ENTRY('K', 'D', 'B', 0x0624, &kingdisplay_kd116n21_30nv_a010.delay, "116N21-30NV-A010"), + EDP_PANEL_ENTRY('K', 'D', 'B', 0x1118, &delay_200_500_e50, "KD116N29-30NK-A005"), EDP_PANEL_ENTRY('K', 'D', 'B', 0x1120, &delay_200_500_e80_d50, "116N29-30NK-C007"), + EDP_PANEL_ENTRY('K', 'D', 'C', 0x044f, &delay_200_500_e50, "KD116N9-30NH-F3"), + EDP_PANEL_ENTRY('K', 'D', 'C', 0x05f1, &delay_200_500_e80_d50, "KD116N5-30NV-G7"), EDP_PANEL_ENTRY('K', 'D', 'C', 0x0809, &delay_200_500_e50, "KD116N2930A15"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x0497, &delay_200_500_e200_d200, "LP116WH7-SPB1"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x052c, &delay_200_500_e200_d200, "LP133WF2-SPL7"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x054a, &delay_200_500_e200_d200, "LP116WH8-SPC1"), + EDP_PANEL_ENTRY('S', 'D', 'C', 0x416d, &delay_100_500_e200, "ATNA45AF01"), EDP_PANEL_ENTRY('S', 'H', 'P', 0x1511, &delay_200_500_e50, "LQ140M1JW48"), -- 2.43.0.472.g3155946c3a-goog ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/4] drm/edp-panel: Add panels delay entries 2023-12-07 8:17 ` [PATCH v2 3/4] drm/edp-panel: Add panels delay entries Pin-yen Lin @ 2023-12-07 18:23 ` Doug Anderson 0 siblings, 0 replies; 14+ messages in thread From: Doug Anderson @ 2023-12-07 18:23 UTC (permalink / raw) To: Pin-yen Lin Cc: Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel Hi, On Thu, Dec 7, 2023 at 12:18 AM Pin-yen Lin <treapking@chromium.org> wrote: > > Add panels used by Mediatek MT8173 Chromebooks. > > Signed-off-by: Pin-yen Lin <treapking@chromium.org> > --- > > (no changes since v1) > > drivers/gpu/drm/panel/panel-edp.c | 39 +++++++++++++++++++++++++++++++ > 1 file changed, 39 insertions(+) Reviewed-by: Douglas Anderson <dianders@chromium.org> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings 2023-12-07 8:17 [PATCH v2 0/4] Support panels used by MT8173 Chromebooks in edp-panel Pin-yen Lin ` (2 preceding siblings ...) 2023-12-07 8:17 ` [PATCH v2 3/4] drm/edp-panel: Add panels delay entries Pin-yen Lin @ 2023-12-07 8:17 ` Pin-yen Lin 2023-12-07 18:23 ` Doug Anderson 3 siblings, 1 reply; 14+ messages in thread From: Pin-yen Lin @ 2023-12-07 8:17 UTC (permalink / raw) To: Douglas Anderson, Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter Cc: linux-kernel, Guenter Roeck, dri-devel, Pin-yen Lin These panels are used by Mediatek MT8173 Chromebooks but we can't find the corresponding data sheets, and these panels used to work on v4.19 kernel without any specified delays. Therefore, instead of having them use the default conservative timings, update them with less-conservative timings from other panels of the same vendor. The panels should still work under those timings, and we can save some delays and suppress the warnings. Signed-off-by: Pin-yen Lin <treapking@chromium.org> --- (no changes since v1) drivers/gpu/drm/panel/panel-edp.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c index b059f5895d3a..e23737284f31 100644 --- a/drivers/gpu/drm/panel/panel-edp.c +++ b/drivers/gpu/drm/panel/panel-edp.c @@ -1955,6 +1955,7 @@ static const struct panel_delay delay_200_500_e50_po2e200 = { static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('A', 'U', 'O', 0x105c, &delay_200_500_e50, "B116XTN01.0"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x1062, &delay_200_500_e50, "B120XAN01.0"), + EDP_PANEL_ENTRY('A', 'U', 'O', 0x125c, &delay_200_500_e50, "Unknown"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x145c, &delay_200_500_e50, "B116XAB01.4"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x1e9b, &delay_200_500_e50, "B133UAN02.1"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x1ea5, &delay_200_500_e50, "B116XAK01.6"), @@ -1965,6 +1966,7 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('A', 'U', 'O', 0x403d, &delay_200_500_e50, "B140HAN04.0"), EDP_PANEL_ENTRY2('A', 'U', 'O', 0x405c, &auo_b116xak01.delay, "B116XAK01.0", &auo_b116xa3_mode), + EDP_PANEL_ENTRY('A', 'U', 'O', 0x435c, &delay_200_500_e50, "Unknown"), EDP_PANEL_ENTRY('A', 'U', 'O', 0x582d, &delay_200_500_e50, "B133UAN01.0"), EDP_PANEL_ENTRY2('A', 'U', 'O', 0x615c, &delay_200_500_e50, "B116XAN06.1", &auo_b116xa3_mode), @@ -1974,18 +1976,34 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('A', 'U', 'O', 0x8594, &delay_200_500_e50, "B133UAN01.0"), EDP_PANEL_ENTRY('A', 'U', 'O', 0xf390, &delay_200_500_e50, "B140XTN07.7"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0607, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0608, &delay_200_500_e50, "NT116WHM-N11"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0668, &delay_200_500_e200, "Unknown"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x068f, &delay_200_500_e200, "Unknown"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x06e5, &delay_200_500_e200, "Unknown"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0705, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0715, &delay_200_150_e200, "NT116WHM-N21"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0717, &delay_200_500_e50_po2e200, "NV133FHM-N42"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0731, &delay_200_500_e80, "NT116WHM-N42"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0741, &delay_200_500_e200, "NT116WHM-N44"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0744, &delay_200_500_e200, "Unknown"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x074c, &delay_200_500_e200, "Unknown"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0751, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0754, &delay_200_500_e50_po2e200, "NV116WHM-N45"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0771, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0786, &delay_200_500_p2e80, "NV116WHM-T01"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0797, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x07d1, &boe_nv133fhm_n61.delay, "NV133FHM-N61"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x07d3, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x07f6, &delay_200_500_e200, "NT140FHM-N44"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x07f8, &delay_200_500_e200, "Unknown"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0813, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0827, &delay_200_500_e50_p2e80, "NT140WHM-N44 V8.0"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x082d, &boe_nv133fhm_n61.delay, "NV133FHM-N62"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0843, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x08b2, &delay_200_500_e200, "NT140WHM-N49"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0848, &delay_200_500_e200, "Unknown"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0849, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x09c3, &delay_200_500_e50, "NT116WHM-N21,836X2"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x094b, &delay_200_500_e50, "NT116WHM-N21"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0951, &delay_200_500_e80, "NV116WHM-N47"), @@ -1997,6 +2015,7 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('B', 'O', 'E', 0x09ad, &delay_200_500_e80, "NV116WHM-N47"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x09ae, &delay_200_500_e200, "NT140FHM-N45"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x09dd, &delay_200_500_e50, "NT116WHM-N21"), + EDP_PANEL_ENTRY('B', 'O', 'E', 0x0a36, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0a5d, &delay_200_500_e50, "NV116WHM-N45"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0ac5, &delay_200_500_e50, "NV116WHM-N4C"), EDP_PANEL_ENTRY('B', 'O', 'E', 0x0b43, &delay_200_500_e200, "NV140FHM-T09"), @@ -2007,11 +2026,14 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('C', 'M', 'N', 0x1132, &delay_200_500_e80_d50, "N116BGE-EA2"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1138, &innolux_n116bca_ea1.delay, "N116BCA-EA1-RC4"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1139, &delay_200_500_e80_d50, "N116BGE-EA2"), + EDP_PANEL_ENTRY('C', 'M', 'N', 0x1141, &delay_200_500_e80_d50, "Unknown"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1145, &delay_200_500_e80_d50, "N116BCN-EB1"), + EDP_PANEL_ENTRY('C', 'M', 'N', 0x114a, &delay_200_500_e80_d50, "Unknown"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x114c, &innolux_n116bca_ea1.delay, "N116BCA-EA1"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1152, &delay_200_500_e80_d50, "N116BCN-EA1"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1153, &delay_200_500_e80_d50, "N116BGE-EA2"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1154, &delay_200_500_e80_d50, "N116BCA-EA2"), + EDP_PANEL_ENTRY('C', 'M', 'N', 0x1156, &delay_200_500_e80_d50, "Unknown"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1157, &delay_200_500_e80_d50, "N116BGE-EA2"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x115b, &delay_200_500_e80_d50, "N116BCN-EB1"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x1247, &delay_200_500_e80_d50, "N120ACA-EA1"), @@ -2023,6 +2045,8 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('C', 'M', 'N', 0x14d6, &delay_200_500_e80_d50, "N140BGA-EA4"), EDP_PANEL_ENTRY('C', 'M', 'N', 0x14e5, &delay_200_500_e80_d50, "N140HGA-EA1"), + EDP_PANEL_ENTRY('H', 'K', 'C', 0x2d51, &delay_200_500_e200, "Unknown"), + EDP_PANEL_ENTRY('H', 'K', 'C', 0x2d5b, &delay_200_500_e200, "Unknown"), EDP_PANEL_ENTRY('H', 'K', 'C', 0x2d5c, &delay_200_500_e200, "MB116AN01-2"), EDP_PANEL_ENTRY('I', 'V', 'O', 0x048e, &delay_200_500_e200_d10, "M116NWR6 R5"), @@ -2031,6 +2055,7 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('I', 'V', 'O', 0x854b, &delay_200_500_p2e100, "R133NW4K-R0"), EDP_PANEL_ENTRY('I', 'V', 'O', 0x8c4d, &delay_200_150_e200, "R140NWFM R1"), + EDP_PANEL_ENTRY('K', 'D', 'B', 0x044f, &delay_200_500_e80_d50, "Unknown"), EDP_PANEL_ENTRY('K', 'D', 'B', 0x0624, &kingdisplay_kd116n21_30nv_a010.delay, "116N21-30NV-A010"), EDP_PANEL_ENTRY('K', 'D', 'B', 0x1118, &delay_200_500_e50, "KD116N29-30NK-A005"), EDP_PANEL_ENTRY('K', 'D', 'B', 0x1120, &delay_200_500_e80_d50, "116N29-30NK-C007"), @@ -2039,9 +2064,15 @@ static const struct edp_panel_entry edp_panels[] = { EDP_PANEL_ENTRY('K', 'D', 'C', 0x05f1, &delay_200_500_e80_d50, "KD116N5-30NV-G7"), EDP_PANEL_ENTRY('K', 'D', 'C', 0x0809, &delay_200_500_e50, "KD116N2930A15"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x0000, &delay_200_500_e200_d200, "Unknown"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x048d, &delay_200_500_e200_d200, "Unknown"), EDP_PANEL_ENTRY('L', 'G', 'D', 0x0497, &delay_200_500_e200_d200, "LP116WH7-SPB1"), EDP_PANEL_ENTRY('L', 'G', 'D', 0x052c, &delay_200_500_e200_d200, "LP133WF2-SPL7"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x0537, &delay_200_500_e200_d200, "Unknown"), EDP_PANEL_ENTRY('L', 'G', 'D', 0x054a, &delay_200_500_e200_d200, "LP116WH8-SPC1"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x0567, &delay_200_500_e200_d200, "Unknown"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x05af, &delay_200_500_e200_d200, "Unknown"), + EDP_PANEL_ENTRY('L', 'G', 'D', 0x05f1, &delay_200_500_e200_d200, "Unknown"), EDP_PANEL_ENTRY('S', 'D', 'C', 0x416d, &delay_100_500_e200, "ATNA45AF01"), -- 2.43.0.472.g3155946c3a-goog ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings 2023-12-07 8:17 ` [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings Pin-yen Lin @ 2023-12-07 18:23 ` Doug Anderson 2023-12-07 18:58 ` Maxime Ripard 0 siblings, 1 reply; 14+ messages in thread From: Doug Anderson @ 2023-12-07 18:23 UTC (permalink / raw) To: Pin-yen Lin Cc: Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel Hi, On Thu, Dec 7, 2023 at 12:18 AM Pin-yen Lin <treapking@chromium.org> wrote: > > These panels are used by Mediatek MT8173 Chromebooks but we can't find > the corresponding data sheets, and these panels used to work on v4.19 > kernel without any specified delays. > > Therefore, instead of having them use the default conservative timings, > update them with less-conservative timings from other panels of the same > vendor. The panels should still work under those timings, and we can > save some delays and suppress the warnings. > > Signed-off-by: Pin-yen Lin <treapking@chromium.org> > > --- > > (no changes since v1) > > drivers/gpu/drm/panel/panel-edp.c | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 insertions(+) Reviewed-by: Douglas Anderson <dianders@chromium.org> Repeating my comments from v1 here too, since I expect this patch to sit on the lists for a little while: This is OK w/ me, but it will need time on the mailing lists before landing in case anyone else has opinions. Specifical thoughts: * I at least feel fairly confident that this is OK since these panels essentially booted without _any_ delays back on the old downstream v4.19 kernel. Presumably the panels just had fairly robust timing controllers and so worked OK, but it's better to get the timing more correct. * This is definitely better than the very conservative timings and the WARN_ON splat. * I don't love the "Unknown" string, but it doesn't do anything other than print to dmesg anyway and at least it conveys to anyone else reading the table that the timings may not be quite as tight. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings 2023-12-07 18:23 ` Doug Anderson @ 2023-12-07 18:58 ` Maxime Ripard 2023-12-07 19:14 ` Doug Anderson 0 siblings, 1 reply; 14+ messages in thread From: Maxime Ripard @ 2023-12-07 18:58 UTC (permalink / raw) To: Doug Anderson Cc: Pin-yen Lin, Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel [-- Attachment #1: Type: text/plain, Size: 2058 bytes --] On Thu, Dec 07, 2023 at 10:23:53AM -0800, Doug Anderson wrote: > Hi, > > On Thu, Dec 7, 2023 at 12:18 AM Pin-yen Lin <treapking@chromium.org> wrote: > > > > These panels are used by Mediatek MT8173 Chromebooks but we can't find > > the corresponding data sheets, and these panels used to work on v4.19 > > kernel without any specified delays. > > > > Therefore, instead of having them use the default conservative timings, > > update them with less-conservative timings from other panels of the same > > vendor. The panels should still work under those timings, and we can > > save some delays and suppress the warnings. > > > > Signed-off-by: Pin-yen Lin <treapking@chromium.org> > > > > --- > > > > (no changes since v1) > > > > drivers/gpu/drm/panel/panel-edp.c | 31 +++++++++++++++++++++++++++++++ > > 1 file changed, 31 insertions(+) > > Reviewed-by: Douglas Anderson <dianders@chromium.org> > > Repeating my comments from v1 here too, since I expect this patch to > sit on the lists for a little while: > > > This is OK w/ me, but it will need time on the mailing lists before > landing in case anyone else has opinions. Generally speaking, I'm not really a fan of big patches that dump whatever ChromeOS is doing ... > Specifical thoughts: > > * I at least feel fairly confident that this is OK since these panels > essentially booted without _any_ delays back on the old downstream > v4.19 kernel. Presumably the panels just had fairly robust timing > controllers and so worked OK, but it's better to get the timing more > correct. ... especially since you have to rely on the recollection of engineers involved at the time and you have no real way to test and make things clearer anymore, and we have to take patches in that are handwavy "trust us, it's doing the right thing". I'd really prefer to have these patches sent as they are found out. Also, the fact that the 4.19 kernel mentionned in the commit log is actually a downstream tree needs to be made much clearer. Maxime [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings 2023-12-07 18:58 ` Maxime Ripard @ 2023-12-07 19:14 ` Doug Anderson 2023-12-13 15:34 ` Maxime Ripard 0 siblings, 1 reply; 14+ messages in thread From: Doug Anderson @ 2023-12-07 19:14 UTC (permalink / raw) To: Maxime Ripard Cc: Pin-yen Lin, Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel Hi, On Thu, Dec 7, 2023 at 10:58 AM Maxime Ripard <mripard@kernel.org> wrote: > > On Thu, Dec 07, 2023 at 10:23:53AM -0800, Doug Anderson wrote: > > Hi, > > > > On Thu, Dec 7, 2023 at 12:18 AM Pin-yen Lin <treapking@chromium.org> wrote: > > > > > > These panels are used by Mediatek MT8173 Chromebooks but we can't find > > > the corresponding data sheets, and these panels used to work on v4.19 > > > kernel without any specified delays. > > > > > > Therefore, instead of having them use the default conservative timings, > > > update them with less-conservative timings from other panels of the same > > > vendor. The panels should still work under those timings, and we can > > > save some delays and suppress the warnings. > > > > > > Signed-off-by: Pin-yen Lin <treapking@chromium.org> > > > > > > --- > > > > > > (no changes since v1) > > > > > > drivers/gpu/drm/panel/panel-edp.c | 31 +++++++++++++++++++++++++++++++ > > > 1 file changed, 31 insertions(+) > > > > Reviewed-by: Douglas Anderson <dianders@chromium.org> > > > > Repeating my comments from v1 here too, since I expect this patch to > > sit on the lists for a little while: > > > > > > This is OK w/ me, but it will need time on the mailing lists before > > landing in case anyone else has opinions. > > Generally speaking, I'm not really a fan of big patches that dump > whatever ChromeOS is doing ... > > > Specifical thoughts: > > > > * I at least feel fairly confident that this is OK since these panels > > essentially booted without _any_ delays back on the old downstream > > v4.19 kernel. Presumably the panels just had fairly robust timing > > controllers and so worked OK, but it's better to get the timing more > > correct. > > ... especially since you have to rely on the recollection of engineers > involved at the time and you have no real way to test and make things > clearer anymore, and we have to take patches in that are handwavy "trust > us, it's doing the right thing". > > I'd really prefer to have these patches sent as they are found out. It's probably not clear enough from the commit message, but this isn't just a dump from downstream 4.19. What happened was: 1. Downstream chromeos-4.19 used the "little white lie" approach. They all claimed a specific panel's compatible string even though there were a whole pile of panels out there actually being used. Personally, this was not something I was ever a fan of (and I wasn't personally involved in this project), but it was the "state of the art" before the generic panel-edp. Getting out of the "little white lie" situation was why I spent so much time on the generic edp-panel solution upstream. 2. These devices have now been uprevved to a newer kernel and I believe that there were issues seen that necessitated a move to the proper generic panel-edp code. 3. We are now getting field reports from our warning collector about a whole pile of panels that are falling back to the "conservative" timings, which means that they turn on/off much more slowly than they should. Pin-yen made an attempt to search for panels data sheets that matched up with the IDs that came in from the field reports but there were some panels that he just couldn't find. So basically we're stuck. Options: 1. Leave customers who have these panels stuck with the hardware behaving worse than it used to. This is not acceptable to me. 2. Land Pin-yen's patch as a downstream-only patch in ChromeOS. This would solve the problem, but it would make me sad. If anyone ever wants to take these old laptops and run some other Linux distribution on them (and there are several that target old Chromebooks) then they'd be again stuck with old timings. 3. Land a patch like this one that at least gets us into not such a bad shape. While I don't love this patch (and that's why I made it clear that it needs to spend time on the list), it seems better than the alternatives. Do you have a proposal for something else? If not, can you confirm you're OK with #3 given this explanation? ...and perhaps more details in the commit message? I would also note that, hopefully, patches like this shouldn't be a recurring pattern. Any new Chromebooks using panel-edp will get flagged much earlier and we should be able to get real/proper timings added. I believe that we've also added a factory test so that (assuming it doesn't get ignored by someone) devices that aren't supported don't even make it out of the factory. > Also, the fact that the 4.19 kernel mentionned in the commit log is > actually a downstream tree needs to be made much clearer. Yeah, that would help too. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings 2023-12-07 19:14 ` Doug Anderson @ 2023-12-13 15:34 ` Maxime Ripard 2023-12-13 16:23 ` Doug Anderson 0 siblings, 1 reply; 14+ messages in thread From: Maxime Ripard @ 2023-12-13 15:34 UTC (permalink / raw) To: Doug Anderson Cc: Pin-yen Lin, Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel [-- Attachment #1: Type: text/plain, Size: 5059 bytes --] On Thu, Dec 07, 2023 at 11:14:34AM -0800, Doug Anderson wrote: > Hi, > > On Thu, Dec 7, 2023 at 10:58 AM Maxime Ripard <mripard@kernel.org> wrote: > > > > On Thu, Dec 07, 2023 at 10:23:53AM -0800, Doug Anderson wrote: > > > Hi, > > > > > > On Thu, Dec 7, 2023 at 12:18 AM Pin-yen Lin <treapking@chromium.org> wrote: > > > > > > > > These panels are used by Mediatek MT8173 Chromebooks but we can't find > > > > the corresponding data sheets, and these panels used to work on v4.19 > > > > kernel without any specified delays. > > > > > > > > Therefore, instead of having them use the default conservative timings, > > > > update them with less-conservative timings from other panels of the same > > > > vendor. The panels should still work under those timings, and we can > > > > save some delays and suppress the warnings. > > > > > > > > Signed-off-by: Pin-yen Lin <treapking@chromium.org> > > > > > > > > --- > > > > > > > > (no changes since v1) > > > > > > > > drivers/gpu/drm/panel/panel-edp.c | 31 +++++++++++++++++++++++++++++++ > > > > 1 file changed, 31 insertions(+) > > > > > > Reviewed-by: Douglas Anderson <dianders@chromium.org> > > > > > > Repeating my comments from v1 here too, since I expect this patch to > > > sit on the lists for a little while: > > > > > > > > > This is OK w/ me, but it will need time on the mailing lists before > > > landing in case anyone else has opinions. > > > > Generally speaking, I'm not really a fan of big patches that dump > > whatever ChromeOS is doing ... > > > > > Specifical thoughts: > > > > > > * I at least feel fairly confident that this is OK since these panels > > > essentially booted without _any_ delays back on the old downstream > > > v4.19 kernel. Presumably the panels just had fairly robust timing > > > controllers and so worked OK, but it's better to get the timing more > > > correct. > > > > ... especially since you have to rely on the recollection of engineers > > involved at the time and you have no real way to test and make things > > clearer anymore, and we have to take patches in that are handwavy "trust > > us, it's doing the right thing". > > > > I'd really prefer to have these patches sent as they are found out. > > It's probably not clear enough from the commit message, but this isn't > just a dump from downstream 4.19. What happened was: > > 1. Downstream chromeos-4.19 used the "little white lie" approach. They > all claimed a specific panel's compatible string even though there > were a whole pile of panels out there actually being used. Personally, > this was not something I was ever a fan of (and I wasn't personally > involved in this project), but it was the "state of the art" before > the generic panel-edp. Getting out of the "little white lie" situation > was why I spent so much time on the generic edp-panel solution > upstream. > > 2. These devices have now been uprevved to a newer kernel and I > believe that there were issues seen that necessitated a move to the > proper generic panel-edp code. > > 3. We are now getting field reports from our warning collector about a > whole pile of panels that are falling back to the "conservative" > timings, which means that they turn on/off much more slowly than they > should. > > Pin-yen made an attempt to search for panels data sheets that matched > up with the IDs that came in from the field reports but there were > some panels that he just couldn't find. > > So basically we're stuck. Options: > > 1. Leave customers who have these panels stuck with the hardware > behaving worse than it used to. This is not acceptable to me. > > 2. Land Pin-yen's patch as a downstream-only patch in ChromeOS. This > would solve the problem, but it would make me sad. If anyone ever > wants to take these old laptops and run some other Linux distribution > on them (and there are several that target old Chromebooks) then > they'd be again stuck with old timings. > > 3. Land a patch like this one that at least gets us into not such a bad shape. > > While I don't love this patch (and that's why I made it clear that it > needs to spend time on the list), it seems better than the > alternatives. Do you have a proposal for something else? If not, can > you confirm you're OK with #3 given this explanation? ...and perhaps > more details in the commit message? I don't have a specific comment, it was more of a comment about the process itself, if you write down what's above in the commit message ... > I would also note that, hopefully, patches like this shouldn't be a > recurring pattern. Any new Chromebooks using panel-edp will get > flagged much earlier and we should be able to get real/proper timings > added. I believe that we've also added a factory test so that > (assuming it doesn't get ignored by someone) devices that aren't > supported don't even make it out of the factory. ... and if we can expect it to be a one-off, then it's fine for me. Thanks! Maxime [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings 2023-12-13 15:34 ` Maxime Ripard @ 2023-12-13 16:23 ` Doug Anderson 2023-12-14 8:17 ` Pin-yen Lin 0 siblings, 1 reply; 14+ messages in thread From: Doug Anderson @ 2023-12-13 16:23 UTC (permalink / raw) To: Maxime Ripard, Pin-yen Lin Cc: Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel Hi, On Wed, Dec 13, 2023 at 7:34 AM Maxime Ripard <mripard@kernel.org> wrote: > > > > > Repeating my comments from v1 here too, since I expect this patch to > > > > sit on the lists for a little while: > > > > > > > > > > > > This is OK w/ me, but it will need time on the mailing lists before > > > > landing in case anyone else has opinions. > > > > > > Generally speaking, I'm not really a fan of big patches that dump > > > whatever ChromeOS is doing ... > > > > > > > Specifical thoughts: > > > > > > > > * I at least feel fairly confident that this is OK since these panels > > > > essentially booted without _any_ delays back on the old downstream > > > > v4.19 kernel. Presumably the panels just had fairly robust timing > > > > controllers and so worked OK, but it's better to get the timing more > > > > correct. > > > > > > ... especially since you have to rely on the recollection of engineers > > > involved at the time and you have no real way to test and make things > > > clearer anymore, and we have to take patches in that are handwavy "trust > > > us, it's doing the right thing". > > > > > > I'd really prefer to have these patches sent as they are found out. > > > > It's probably not clear enough from the commit message, but this isn't > > just a dump from downstream 4.19. What happened was: > > > > 1. Downstream chromeos-4.19 used the "little white lie" approach. They > > all claimed a specific panel's compatible string even though there > > were a whole pile of panels out there actually being used. Personally, > > this was not something I was ever a fan of (and I wasn't personally > > involved in this project), but it was the "state of the art" before > > the generic panel-edp. Getting out of the "little white lie" situation > > was why I spent so much time on the generic edp-panel solution > > upstream. > > > > 2. These devices have now been uprevved to a newer kernel and I > > believe that there were issues seen that necessitated a move to the > > proper generic panel-edp code. > > > > 3. We are now getting field reports from our warning collector about a > > whole pile of panels that are falling back to the "conservative" > > timings, which means that they turn on/off much more slowly than they > > should. > > > > Pin-yen made an attempt to search for panels data sheets that matched > > up with the IDs that came in from the field reports but there were > > some panels that he just couldn't find. > > > > So basically we're stuck. Options: > > > > 1. Leave customers who have these panels stuck with the hardware > > behaving worse than it used to. This is not acceptable to me. > > > > 2. Land Pin-yen's patch as a downstream-only patch in ChromeOS. This > > would solve the problem, but it would make me sad. If anyone ever > > wants to take these old laptops and run some other Linux distribution > > on them (and there are several that target old Chromebooks) then > > they'd be again stuck with old timings. > > > > 3. Land a patch like this one that at least gets us into not such a bad shape. > > > > While I don't love this patch (and that's why I made it clear that it > > needs to spend time on the list), it seems better than the > > alternatives. Do you have a proposal for something else? If not, can > > you confirm you're OK with #3 given this explanation? ...and perhaps > > more details in the commit message? > > I don't have a specific comment, it was more of a comment about the > process itself, if you write down what's above in the commit message ... Pin-yen: can you take a whack at summarizing some of the above in the commit message and sending out a v3? ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings 2023-12-13 16:23 ` Doug Anderson @ 2023-12-14 8:17 ` Pin-yen Lin 0 siblings, 0 replies; 14+ messages in thread From: Pin-yen Lin @ 2023-12-14 8:17 UTC (permalink / raw) To: Doug Anderson Cc: Maxime Ripard, Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst, Thomas Zimmermann, David Airlie, Daniel Vetter, linux-kernel, Guenter Roeck, dri-devel On Thu, Dec 14, 2023 at 12:23 AM Doug Anderson <dianders@chromium.org> wrote: > > Hi, > > On Wed, Dec 13, 2023 at 7:34 AM Maxime Ripard <mripard@kernel.org> wrote: > > > > > > > Repeating my comments from v1 here too, since I expect this patch to > > > > > sit on the lists for a little while: > > > > > > > > > > > > > > > This is OK w/ me, but it will need time on the mailing lists before > > > > > landing in case anyone else has opinions. > > > > > > > > Generally speaking, I'm not really a fan of big patches that dump > > > > whatever ChromeOS is doing ... > > > > > > > > > Specifical thoughts: > > > > > > > > > > * I at least feel fairly confident that this is OK since these panels > > > > > essentially booted without _any_ delays back on the old downstream > > > > > v4.19 kernel. Presumably the panels just had fairly robust timing > > > > > controllers and so worked OK, but it's better to get the timing more > > > > > correct. > > > > > > > > ... especially since you have to rely on the recollection of engineers > > > > involved at the time and you have no real way to test and make things > > > > clearer anymore, and we have to take patches in that are handwavy "trust > > > > us, it's doing the right thing". > > > > > > > > I'd really prefer to have these patches sent as they are found out. > > > > > > It's probably not clear enough from the commit message, but this isn't > > > just a dump from downstream 4.19. What happened was: > > > > > > 1. Downstream chromeos-4.19 used the "little white lie" approach. They > > > all claimed a specific panel's compatible string even though there > > > were a whole pile of panels out there actually being used. Personally, > > > this was not something I was ever a fan of (and I wasn't personally > > > involved in this project), but it was the "state of the art" before > > > the generic panel-edp. Getting out of the "little white lie" situation > > > was why I spent so much time on the generic edp-panel solution > > > upstream. > > > > > > 2. These devices have now been uprevved to a newer kernel and I > > > believe that there were issues seen that necessitated a move to the > > > proper generic panel-edp code. > > > > > > 3. We are now getting field reports from our warning collector about a > > > whole pile of panels that are falling back to the "conservative" > > > timings, which means that they turn on/off much more slowly than they > > > should. > > > > > > Pin-yen made an attempt to search for panels data sheets that matched > > > up with the IDs that came in from the field reports but there were > > > some panels that he just couldn't find. > > > > > > So basically we're stuck. Options: > > > > > > 1. Leave customers who have these panels stuck with the hardware > > > behaving worse than it used to. This is not acceptable to me. > > > > > > 2. Land Pin-yen's patch as a downstream-only patch in ChromeOS. This > > > would solve the problem, but it would make me sad. If anyone ever > > > wants to take these old laptops and run some other Linux distribution > > > on them (and there are several that target old Chromebooks) then > > > they'd be again stuck with old timings. > > > > > > 3. Land a patch like this one that at least gets us into not such a bad shape. > > > > > > While I don't love this patch (and that's why I made it clear that it > > > needs to spend time on the list), it seems better than the > > > alternatives. Do you have a proposal for something else? If not, can > > > you confirm you're OK with #3 given this explanation? ...and perhaps > > > more details in the commit message? > > > > I don't have a specific comment, it was more of a comment about the > > process itself, if you write down what's above in the commit message ... > > Pin-yen: can you take a whack at summarizing some of the above in the > commit message and sending out a v3? Sure I'll do that in v3. Sorry for not including enough details in the original commit message. Pin-yen ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-12-14 8:17 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-12-07 8:17 [PATCH v2 0/4] Support panels used by MT8173 Chromebooks in edp-panel Pin-yen Lin 2023-12-07 8:17 ` [PATCH v2 1/4] drm/edp-panel: Move the KDC panel to a separate group Pin-yen Lin 2023-12-07 18:23 ` Doug Anderson 2023-12-07 8:17 ` [PATCH v2 2/4] drm/panel-edp: Add powered_on_to_enable delay Pin-yen Lin 2023-12-07 18:23 ` Doug Anderson 2023-12-07 8:17 ` [PATCH v2 3/4] drm/edp-panel: Add panels delay entries Pin-yen Lin 2023-12-07 18:23 ` Doug Anderson 2023-12-07 8:17 ` [PATCH v2 4/4] drm/panel-edp: Add some panels with conservative timings Pin-yen Lin 2023-12-07 18:23 ` Doug Anderson 2023-12-07 18:58 ` Maxime Ripard 2023-12-07 19:14 ` Doug Anderson 2023-12-13 15:34 ` Maxime Ripard 2023-12-13 16:23 ` Doug Anderson 2023-12-14 8:17 ` Pin-yen Lin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®