hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/panel/panel-simple.c
....@@ -160,6 +160,11 @@
160160 enum drm_panel_orientation orientation;
161161 };
162162
163
+static inline void panel_simple_msleep(unsigned int msecs)
164
+{
165
+ usleep_range(msecs * 1000, msecs * 1000 + 100);
166
+}
167
+
163168 static inline struct panel_simple *to_panel_simple(struct drm_panel *panel)
164169 {
165170 return container_of(panel, struct panel_simple, base);
....@@ -277,7 +282,7 @@
277282 dev_err(dev, "failed to write dcs cmd: %d\n", err);
278283
279284 if (cmd->header.delay)
280
- usleep_range(cmd->header.delay * 1000, cmd->header.delay * 1000 + 100);
285
+ panel_simple_msleep(cmd->header.delay);
281286 }
282287
283288 return 0;
....@@ -300,7 +305,7 @@
300305 return ret;
301306
302307 if (cmd->header.delay)
303
- usleep_range(cmd->header.delay * 1000, cmd->header.delay * 1000 + 100);
308
+ panel_simple_msleep(cmd->header.delay);
304309 }
305310
306311 return 0;
....@@ -478,7 +483,7 @@
478483 return 0;
479484
480485 if (p->desc->delay.disable)
481
- usleep_range(p->desc->delay.disable * 1000, p->desc->delay.disable * 1000 + 100);
486
+ panel_simple_msleep(p->desc->delay.disable);
482487
483488 p->enabled = false;
484489
....@@ -510,7 +515,7 @@
510515 panel_simple_regulator_disable(p);
511516
512517 if (p->desc->delay.unprepare)
513
- usleep_range(p->desc->delay.unprepare * 1000, p->desc->delay.unprepare * 1000 + 100);
518
+ panel_simple_msleep(p->desc->delay.unprepare);
514519
515520 p->prepared = false;
516521
....@@ -564,7 +569,7 @@
564569 if (p->no_hpd)
565570 delay += p->desc->delay.hpd_absent_delay;
566571 if (delay)
567
- usleep_range(delay * 1000, delay * 1000 + 100);
572
+ panel_simple_msleep(delay);
568573
569574 if (p->hpd_gpio) {
570575 if (IS_ERR(p->hpd_gpio)) {
....@@ -589,12 +594,12 @@
589594 gpiod_direction_output(p->reset_gpio, 1);
590595
591596 if (p->desc->delay.reset)
592
- usleep_range(p->desc->delay.reset * 1000, p->desc->delay.reset * 1000 + 100);
597
+ panel_simple_msleep(p->desc->delay.reset);
593598
594599 gpiod_direction_output(p->reset_gpio, 0);
595600
596601 if (p->desc->delay.init)
597
- usleep_range(p->desc->delay.init * 1000, p->desc->delay.init * 1000 + 100);
602
+ panel_simple_msleep(p->desc->delay.init);
598603
599604 if (p->desc->init_seq) {
600605 if (p->desc->cmd_type == CMD_TYPE_SPI) {
....@@ -621,7 +626,7 @@
621626 return 0;
622627
623628 if (p->desc->delay.enable)
624
- usleep_range(p->desc->delay.enable * 1000, p->desc->delay.enable * 1000 + 100);
629
+ panel_simple_msleep(p->desc->delay.enable);
625630
626631 p->enabled = true;
627632
....@@ -1042,8 +1047,8 @@
10421047 .num_modes = 1,
10431048 .bpc = 8,
10441049 .size = {
1045
- .width = 105,
1046
- .height = 67,
1050
+ .width = 99,
1051
+ .height = 58,
10471052 },
10481053 .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
10491054 };
....@@ -1348,21 +1353,21 @@
13481353 },
13491354 };
13501355
1351
-static const struct drm_display_mode auo_g121ean01_mode = {
1352
- .clock = 66700,
1353
- .hdisplay = 1280,
1354
- .hsync_start = 1280 + 58,
1355
- .hsync_end = 1280 + 58 + 8,
1356
- .htotal = 1280 + 58 + 8 + 70,
1357
- .vdisplay = 800,
1358
- .vsync_start = 800 + 6,
1359
- .vsync_end = 800 + 6 + 4,
1360
- .vtotal = 800 + 6 + 4 + 10,
1356
+static const struct display_timing auo_g121ean01_timing = {
1357
+ .pixelclock = { 60000000, 74400000, 90000000 },
1358
+ .hactive = { 1280, 1280, 1280 },
1359
+ .hfront_porch = { 20, 50, 100 },
1360
+ .hback_porch = { 20, 50, 100 },
1361
+ .hsync_len = { 30, 100, 200 },
1362
+ .vactive = { 800, 800, 800 },
1363
+ .vfront_porch = { 2, 10, 25 },
1364
+ .vback_porch = { 2, 10, 25 },
1365
+ .vsync_len = { 4, 18, 50 },
13611366 };
13621367
13631368 static const struct panel_desc auo_g121ean01 = {
1364
- .modes = &auo_g121ean01_mode,
1365
- .num_modes = 1,
1369
+ .timings = &auo_g121ean01_timing,
1370
+ .num_timings = 1,
13661371 .bpc = 8,
13671372 .size = {
13681373 .width = 261,
....@@ -1538,7 +1543,9 @@
15381543 .delay = {
15391544 .disable = 5,
15401545 .unprepare = 1000,
1541
- }
1546
+ },
1547
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
1548
+ .connector_type = DRM_MODE_CONNECTOR_LVDS,
15421549 };
15431550
15441551 static const struct drm_display_mode avic_tm070ddh03_mode = {
....@@ -2429,6 +2436,7 @@
24292436 .height = 54,
24302437 },
24312438 .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
2439
+ .connector_type = DRM_MODE_CONNECTOR_DPI,
24322440 .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
24332441 };
24342442
....@@ -3490,6 +3498,7 @@
34903498 .vsync_start = 480 + 49,
34913499 .vsync_end = 480 + 49 + 2,
34923500 .vtotal = 480 + 49 + 2 + 22,
3501
+ .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
34933502 };
34943503
34953504 static const struct panel_desc powertip_ph800480t013_idf02 = {