Re: [PATCH 3/4] drm/edp-panel: Add panels delay entries

2023-12-05 Thread Doug Anderson
Hi,

On Tue, Dec 5, 2023 at 4:36 AM Pin-yen Lin  wrote:
>
> @@ -1999,10 +2031,17 @@ static const struct edp_panel_entry edp_panels[] = {
> EDP_PANEL_ENTRY('I', 'V', 'O', 0x854b, _200_500_p2e100, 
> "R133NW4K-R0"),
> EDP_PANEL_ENTRY('I', 'V', 'O', 0x8c4d, _200_150_e200, "R140NWFM 
> R1"),
>
> +   EDP_PANEL_ENTRY('K', 'D', 'C', 0x044f, _200_500_e50, 
> "KD116N9-30NH-F3"),
> +   EDP_PANEL_ENTRY('K', 'D', 'C', 0x05f1, _200_500_e80_d50, 
> "KD116N5-30NV-G7"),
> EDP_PANEL_ENTRY('K', 'D', 'B', 0x0624, 
> _kd116n21_30nv_a010.delay, "116N21-30NV-A010"),
> EDP_PANEL_ENTRY('K', 'D', 'C', 0x0809, _200_500_e50, 
> "KD116N2930A15"),
> +   EDP_PANEL_ENTRY('K', 'D', 'B', 0x1118, _200_500_e50, 
> "KD116N29-30NK-A005"),
> EDP_PANEL_ENTRY('K', 'D', 'B', 0x1120, _200_500_e80_d50, 
> "116N29-30NK-C007"),

Huh, I apparently missed it when reviewing an earlier patch, but the
above table mixes 'KDB' and 'KDC'. Can you fix that and then base your
patch atop it?



-Doug


[PATCH 3/4] drm/edp-panel: Add panels delay entries

2023-12-05 Thread Pin-yen Lin
Add panels used by Mediatek MT8173 Chromebooks.

Signed-off-by: Pin-yen Lin 
---

 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 e0a18e17d3a2..475257fe1ddc 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, _200_500_e50, 
"B116XTN01.0"),
EDP_PANEL_ENTRY('A', 'U', 'O', 0x1062, _200_500_e50, 
"B120XAN01.0"),
EDP_PANEL_ENTRY('A', 'U', 'O', 0x145c, _200_500_e50, 
"B116XAB01.4"),
EDP_PANEL_ENTRY('A', 'U', 'O', 0x1e9b, _200_500_e50, 
"B133UAN02.1"),
@@ -1948,23 +1970,31 @@ static const struct edp_panel_entry edp_panels[] = {
 _b116xa3_mode),
EDP_PANEL_ENTRY('A', 'U', 'O', 0x635c, _200_500_e50, 
"B116XAN06.3"),
EDP_PANEL_ENTRY('A', 'U', 'O', 0x639c, _200_500_e50, 
"B140HAK02.7"),
+   EDP_PANEL_ENTRY('A', 'U', 'O', 0x723c, _200_500_e50, 
"B140XTN07.2"),
EDP_PANEL_ENTRY('A', 'U', 'O', 0x8594, _200_500_e50, 
"B133UAN01.0"),
EDP_PANEL_ENTRY('A', 'U', 'O', 0xf390, _200_500_e50, 
"B140XTN07.7"),
 
+   EDP_PANEL_ENTRY('B', 'O', 'E', 0x0608, _200_500_e50, 
"NT116WHM-N11"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0715, _200_150_e200, 
"NT116WHM-N21"),
+   EDP_PANEL_ENTRY('B', 'O', 'E', 0x0717, _200_500_e50_po2e200, 
"NV133FHM-N42"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0731, _200_500_e80, 
"NT116WHM-N42"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0741, _200_500_e200, 
"NT116WHM-N44"),
+   EDP_PANEL_ENTRY('B', 'O', 'E', 0x0754, _200_500_e50_po2e200, 
"NV116WHM-N45"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0786, _200_500_p2e80, 
"NV116WHM-T01"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x07d1, _nv133fhm_n61.delay, 
"NV133FHM-N61"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x07f6, _200_500_e200, 
"NT140FHM-N44"),
+   EDP_PANEL_ENTRY('B', 'O', 'E', 0x0827, _200_500_e50_p2e80, 
"NT140WHM-N44 V8.0"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x082d, _nv133fhm_n61.delay, 
"NV133FHM-N62"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x08b2, _200_500_e200, 
"NT140WHM-N49"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x09c3, _200_500_e50, 
"NT116WHM-N21,836X2"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x094b, _200_500_e50, 
"NT116WHM-N21"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0951, _200_500_e80, 
"NV116WHM-N47"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x095f, _200_500_e50, 
"NE135FBM-N41 v8.1"),
+   EDP_PANEL_ENTRY('B', 'O', 'E', 0x096e, _200_500_e50_po2e200, 
"NV116WHM-T07 V8.0"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0979, _200_500_e50, 
"NV116WHM-N49 V8.0"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x098d, _nv110wtm_n61.delay, 
"NV110WTM-N61"),
+   EDP_PANEL_ENTRY('B', 'O', 'E', 0x0993, _200_500_e80, 
"NV116WHM-T14 V8.0"),
+   EDP_PANEL_ENTRY('B', 'O', 'E', 0x09ad, _200_500_e80, 
"NV116WHM-N47"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x09ae, _200_500_e200, 
"NT140FHM-N45"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x09dd, _200_500_e50, 
"NT116WHM-N21"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0a5d, _200_500_e50, 
"NV116WHM-N45"),
@@ -1973,6 +2003,7 @@ static const struct edp_panel_entry edp_panels[] = {
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0b56, _200_500_e80, 
"NT140FHM-N47"),
EDP_PANEL_ENTRY('B', 'O', 'E', 0x0c20, _200_500_e80, 
"NT140FHM-N47"),
 
+   EDP_PANEL_ENTRY('C', 'M', 'N', 0x1130, _200_500_e50, 
"N116BGE-EB2"),
EDP_PANEL_ENTRY('C', 'M', 'N', 0x1132, _200_500_e80_d50, 
"N116BGE-EA2"),