.. | .. |
---|
160 | 160 | enum drm_panel_orientation orientation; |
---|
161 | 161 | }; |
---|
162 | 162 | |
---|
| 163 | +static inline void panel_simple_msleep(unsigned int msecs) |
---|
| 164 | +{ |
---|
| 165 | + usleep_range(msecs * 1000, msecs * 1000 + 100); |
---|
| 166 | +} |
---|
| 167 | + |
---|
163 | 168 | static inline struct panel_simple *to_panel_simple(struct drm_panel *panel) |
---|
164 | 169 | { |
---|
165 | 170 | return container_of(panel, struct panel_simple, base); |
---|
.. | .. |
---|
277 | 282 | dev_err(dev, "failed to write dcs cmd: %d\n", err); |
---|
278 | 283 | |
---|
279 | 284 | if (cmd->header.delay) |
---|
280 | | - usleep_range(cmd->header.delay * 1000, cmd->header.delay * 1000 + 100); |
---|
| 285 | + panel_simple_msleep(cmd->header.delay); |
---|
281 | 286 | } |
---|
282 | 287 | |
---|
283 | 288 | return 0; |
---|
.. | .. |
---|
300 | 305 | return ret; |
---|
301 | 306 | |
---|
302 | 307 | if (cmd->header.delay) |
---|
303 | | - usleep_range(cmd->header.delay * 1000, cmd->header.delay * 1000 + 100); |
---|
| 308 | + panel_simple_msleep(cmd->header.delay); |
---|
304 | 309 | } |
---|
305 | 310 | |
---|
306 | 311 | return 0; |
---|
.. | .. |
---|
478 | 483 | return 0; |
---|
479 | 484 | |
---|
480 | 485 | 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); |
---|
482 | 487 | |
---|
483 | 488 | p->enabled = false; |
---|
484 | 489 | |
---|
.. | .. |
---|
510 | 515 | panel_simple_regulator_disable(p); |
---|
511 | 516 | |
---|
512 | 517 | 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); |
---|
514 | 519 | |
---|
515 | 520 | p->prepared = false; |
---|
516 | 521 | |
---|
.. | .. |
---|
564 | 569 | if (p->no_hpd) |
---|
565 | 570 | delay += p->desc->delay.hpd_absent_delay; |
---|
566 | 571 | if (delay) |
---|
567 | | - usleep_range(delay * 1000, delay * 1000 + 100); |
---|
| 572 | + panel_simple_msleep(delay); |
---|
568 | 573 | |
---|
569 | 574 | if (p->hpd_gpio) { |
---|
570 | 575 | if (IS_ERR(p->hpd_gpio)) { |
---|
.. | .. |
---|
589 | 594 | gpiod_direction_output(p->reset_gpio, 1); |
---|
590 | 595 | |
---|
591 | 596 | 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); |
---|
593 | 598 | |
---|
594 | 599 | gpiod_direction_output(p->reset_gpio, 0); |
---|
595 | 600 | |
---|
596 | 601 | 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); |
---|
598 | 603 | |
---|
599 | 604 | if (p->desc->init_seq) { |
---|
600 | 605 | if (p->desc->cmd_type == CMD_TYPE_SPI) { |
---|
.. | .. |
---|
621 | 626 | return 0; |
---|
622 | 627 | |
---|
623 | 628 | 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); |
---|
625 | 630 | |
---|
626 | 631 | p->enabled = true; |
---|
627 | 632 | |
---|
.. | .. |
---|
1042 | 1047 | .num_modes = 1, |
---|
1043 | 1048 | .bpc = 8, |
---|
1044 | 1049 | .size = { |
---|
1045 | | - .width = 105, |
---|
1046 | | - .height = 67, |
---|
| 1050 | + .width = 99, |
---|
| 1051 | + .height = 58, |
---|
1047 | 1052 | }, |
---|
1048 | 1053 | .bus_format = MEDIA_BUS_FMT_RGB888_1X24, |
---|
1049 | 1054 | }; |
---|
.. | .. |
---|
1348 | 1353 | }, |
---|
1349 | 1354 | }; |
---|
1350 | 1355 | |
---|
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 }, |
---|
1361 | 1366 | }; |
---|
1362 | 1367 | |
---|
1363 | 1368 | 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, |
---|
1366 | 1371 | .bpc = 8, |
---|
1367 | 1372 | .size = { |
---|
1368 | 1373 | .width = 261, |
---|
.. | .. |
---|
1538 | 1543 | .delay = { |
---|
1539 | 1544 | .disable = 5, |
---|
1540 | 1545 | .unprepare = 1000, |
---|
1541 | | - } |
---|
| 1546 | + }, |
---|
| 1547 | + .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, |
---|
| 1548 | + .connector_type = DRM_MODE_CONNECTOR_LVDS, |
---|
1542 | 1549 | }; |
---|
1543 | 1550 | |
---|
1544 | 1551 | static const struct drm_display_mode avic_tm070ddh03_mode = { |
---|
.. | .. |
---|
2429 | 2436 | .height = 54, |
---|
2430 | 2437 | }, |
---|
2431 | 2438 | .bus_format = MEDIA_BUS_FMT_RGB888_1X24, |
---|
| 2439 | + .connector_type = DRM_MODE_CONNECTOR_DPI, |
---|
2432 | 2440 | .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE, |
---|
2433 | 2441 | }; |
---|
2434 | 2442 | |
---|
.. | .. |
---|
3490 | 3498 | .vsync_start = 480 + 49, |
---|
3491 | 3499 | .vsync_end = 480 + 49 + 2, |
---|
3492 | 3500 | .vtotal = 480 + 49 + 2 + 22, |
---|
| 3501 | + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, |
---|
3493 | 3502 | }; |
---|
3494 | 3503 | |
---|
3495 | 3504 | static const struct panel_desc powertip_ph800480t013_idf02 = { |
---|