| @@ -168,6 +168,7 @@ static int panel_simple_disable(struct drm_panel *panel) · 167 unmodified lines |
| 168 | | 168 | |
| 169 | if (p->backlight) { | 169 | if (p->backlight) { |
| 170 | p->backlight->props.power = FB_BLANK_POWERDOWN; | 170 | p->backlight->props.power = FB_BLANK_POWERDOWN; |
| | 171 | p->backlight->props.state |= BL_CORE_FBBLANK; |
| 171 | backlight_update_status(p->backlight); | 172 | backlight_update_status(p->backlight); |
| 172 | } | 173 | } |
| 173 | | 174 | |
| @@ -235,6 +236,7 @@ static int panel_simple_enable(struct drm_panel *panel) · 61 unmodified lines |
| 235 | msleep(p->desc->delay.enable); | 236 | msleep(p->desc->delay.enable); |
| 236 | | 237 | |
| 237 | if (p->backlight) { | 238 | if (p->backlight) { |
| | 239 | p->backlight->props.state &= ~BL_CORE_FBBLANK; |
| 238 | p->backlight->props.power = FB_BLANK_UNBLANK; | 240 | p->backlight->props.power = FB_BLANK_UNBLANK; |
| 239 | backlight_update_status(p->backlight); | 241 | backlight_update_status(p->backlight); |
| 240 | } | 242 | } |
| @@ -964,8 +966,8 @@ static const struct panel_desc innolux_zj070na_01p = { · 723 unmodified lines |
| 964 | .num_modes = 1, | 966 | .num_modes = 1, |
| 965 | .bpc = 6, | 967 | .bpc = 6, |
| 966 | .size = { | 968 | .size = { |
| 967 | .width = 1024, | 969 | .width = 154, |
| 968 | .height = 600, | 970 | .height = 90, |
| 969 | }, | 971 | }, |
| 970 | }; | 972 | }; |
| 971 | | 973 | |
| @@ -1017,6 +1019,51 @@ static const struct panel_desc lg_lb070wv8 = { · 45 unmodified lines |
| 1017 | .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, | 1019 | .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, |
| 1018 | }; | 1020 | }; |
| 1019 | | 1021 | |
| | 1022 | static const struct drm_display_mode lg_lp079qx1_sp0v_mode = { |
| | 1023 | .clock = 200000, |
| | 1024 | .hdisplay = 1536, |
| | 1025 | .hsync_start = 1536 + 12, |
| | 1026 | .hsync_end = 1536 + 12 + 16, |
| | 1027 | .htotal = 1536 + 12 + 16 + 48, |
| | 1028 | .vdisplay = 2048, |
| | 1029 | .vsync_start = 2048 + 8, |
| | 1030 | .vsync_end = 2048 + 8 + 4, |
| | 1031 | .vtotal = 2048 + 8 + 4 + 8, |
| | 1032 | .vrefresh = 60, |
| | 1033 | .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, |
| | 1034 | }; |
| | 1035 | |
| | 1036 | static const struct panel_desc lg_lp079qx1_sp0v = { |
| | 1037 | .modes = &lg_lp079qx1_sp0v_mode, |
| | 1038 | .num_modes = 1, |
| | 1039 | .size = { |
| | 1040 | .width = 129, |
| | 1041 | .height = 171, |
| | 1042 | }, |
| | 1043 | }; |
| | 1044 | |
| | 1045 | static const struct drm_display_mode lg_lp097qx1_spa1_mode = { |
| | 1046 | .clock = 205210, |
| | 1047 | .hdisplay = 2048, |
| | 1048 | .hsync_start = 2048 + 150, |
| | 1049 | .hsync_end = 2048 + 150 + 5, |
| | 1050 | .htotal = 2048 + 150 + 5 + 5, |
| | 1051 | .vdisplay = 1536, |
| | 1052 | .vsync_start = 1536 + 3, |
| | 1053 | .vsync_end = 1536 + 3 + 1, |
| | 1054 | .vtotal = 1536 + 3 + 1 + 9, |
| | 1055 | .vrefresh = 60, |
| | 1056 | }; |
| | 1057 | |
| | 1058 | static const struct panel_desc lg_lp097qx1_spa1 = { |
| | 1059 | .modes = &lg_lp097qx1_spa1_mode, |
| | 1060 | .num_modes = 1, |
| | 1061 | .size = { |
| | 1062 | .width = 208, |
| | 1063 | .height = 147, |
| | 1064 | }, |
| | 1065 | }; |
| | 1066 | |
| 1020 | static const struct drm_display_mode lg_lp120up1_mode = { | 1067 | static const struct drm_display_mode lg_lp120up1_mode = { |
| 1021 | .clock = 162300, | 1068 | .clock = 162300, |
| 1022 | .hdisplay = 1920, | 1069 | .hdisplay = 1920, |
| @@ -1224,6 +1271,28 @@ static const struct panel_desc qd43003c0_40 = { · 201 unmodified lines |
| 1224 | .bus_format = MEDIA_BUS_FMT_RGB888_1X24, | 1271 | .bus_format = MEDIA_BUS_FMT_RGB888_1X24, |
| 1225 | }; | 1272 | }; |
| 1226 | | 1273 | |
| | 1274 | static const struct drm_display_mode samsung_lsn122dl01_c01_mode = { |
| | 1275 | .clock = 271560, |
| | 1276 | .hdisplay = 2560, |
| | 1277 | .hsync_start = 2560 + 48, |
| | 1278 | .hsync_end = 2560 + 48 + 32, |
| | 1279 | .htotal = 2560 + 48 + 32 + 80, |
| | 1280 | .vdisplay = 1600, |
| | 1281 | .vsync_start = 1600 + 2, |
| | 1282 | .vsync_end = 1600 + 2 + 5, |
| | 1283 | .vtotal = 1600 + 2 + 5 + 57, |
| | 1284 | .vrefresh = 60, |
| | 1285 | }; |
| | 1286 | |
| | 1287 | static const struct panel_desc samsung_lsn122dl01_c01 = { |
| | 1288 | .modes = &samsung_lsn122dl01_c01_mode, |
| | 1289 | .num_modes = 1, |
| | 1290 | .size = { |
| | 1291 | .width = 263, |
| | 1292 | .height = 164, |
| | 1293 | }, |
| | 1294 | }; |
| | 1295 | |
| 1227 | static const struct drm_display_mode samsung_ltn101nt05_mode = { | 1296 | static const struct drm_display_mode samsung_ltn101nt05_mode = { |
| 1228 | .clock = 54030, | 1297 | .clock = 54030, |
| 1229 | .hdisplay = 1024, | 1298 | .hdisplay = 1024, |
| @@ -1242,8 +1311,8 @@ static const struct panel_desc samsung_ltn101nt05 = { · 12 unmodified lines |
| 1242 | .num_modes = 1, | 1311 | .num_modes = 1, |
| 1243 | .bpc = 6, | 1312 | .bpc = 6, |
| 1244 | .size = { | 1313 | .size = { |
| 1245 | .width = 1024, | 1314 | .width = 223, |
| 1246 | .height = 600, | 1315 | .height = 125, |
| 1247 | }, | 1316 | }, |
| 1248 | }; | 1317 | }; |
| 1249 | | 1318 | |
| @@ -1270,6 +1339,53 @@ static const struct panel_desc samsung_ltn140at29_301 = { · 20 unmodified lines |
| 1270 | }, | 1339 | }, |
| 1271 | }; | 1340 | }; |
| 1272 | | 1341 | |
| | 1342 | static const struct display_timing sharp_lq101k1ly04_timing = { |
| | 1343 | .pixelclock = { 60000000, 65000000, 80000000 }, |
| | 1344 | .hactive = { 1280, 1280, 1280 }, |
| | 1345 | .hfront_porch = { 20, 20, 20 }, |
| | 1346 | .hback_porch = { 20, 20, 20 }, |
| | 1347 | .hsync_len = { 10, 10, 10 }, |
| | 1348 | .vactive = { 800, 800, 800 }, |
| | 1349 | .vfront_porch = { 4, 4, 4 }, |
| | 1350 | .vback_porch = { 4, 4, 4 }, |
| | 1351 | .vsync_len = { 4, 4, 4 }, |
| | 1352 | .flags = DISPLAY_FLAGS_PIXDATA_POSEDGE, |
| | 1353 | }; |
| | 1354 | |
| | 1355 | static const struct panel_desc sharp_lq101k1ly04 = { |
| | 1356 | .timings = &sharp_lq101k1ly04_timing, |
| | 1357 | .num_timings = 1, |
| | 1358 | .bpc = 8, |
| | 1359 | .size = { |
| | 1360 | .width = 217, |
| | 1361 | .height = 136, |
| | 1362 | }, |
| | 1363 | .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, |
| | 1364 | }; |
| | 1365 | |
| | 1366 | static const struct drm_display_mode sharp_lq123p1jx31_mode = { |
| | 1367 | .clock = 252750, |
| | 1368 | .hdisplay = 2400, |
| | 1369 | .hsync_start = 2400 + 48, |
| | 1370 | .hsync_end = 2400 + 48 + 32, |
| | 1371 | .htotal = 2400 + 48 + 32 + 80, |
| | 1372 | .vdisplay = 1600, |
| | 1373 | .vsync_start = 1600 + 3, |
| | 1374 | .vsync_end = 1600 + 3 + 10, |
| | 1375 | .vtotal = 1600 + 3 + 10 + 33, |
| | 1376 | .vrefresh = 60, |
| | 1377 | .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, |
| | 1378 | }; |
| | 1379 | |
| | 1380 | static const struct panel_desc sharp_lq123p1jx31 = { |
| | 1381 | .modes = &sharp_lq123p1jx31_mode, |
| | 1382 | .num_modes = 1, |
| | 1383 | .size = { |
| | 1384 | .width = 259, |
| | 1385 | .height = 173, |
| | 1386 | }, |
| | 1387 | }; |
| | 1388 | |
| 1273 | static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode = { | 1389 | static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode = { |
| 1274 | .clock = 33300, | 1390 | .clock = 33300, |
| 1275 | .hdisplay = 800, | 1391 | .hdisplay = 800, |
| @@ -1293,6 +1409,29 @@ static const struct panel_desc shelly_sca07010_bfn_lnn = { · 17 unmodified lines |
| 1293 | .bus_format = MEDIA_BUS_FMT_RGB666_1X18, | 1409 | .bus_format = MEDIA_BUS_FMT_RGB666_1X18, |
| 1294 | }; | 1410 | }; |
| 1295 | | 1411 | |
| | 1412 | static const struct drm_display_mode starry_kr122ea0sra_mode = { |
| | 1413 | .clock = 147000, |
| | 1414 | .hdisplay = 1920, |
| | 1415 | .hsync_start = 1920 + 16, |
| | 1416 | .hsync_end = 1920 + 16 + 16, |
| | 1417 | .htotal = 1920 + 16 + 16 + 32, |
| | 1418 | .vdisplay = 1200, |
| | 1419 | .vsync_start = 1200 + 15, |
| | 1420 | .vsync_end = 1200 + 15 + 2, |
| | 1421 | .vtotal = 1200 + 15 + 2 + 18, |
| | 1422 | .vrefresh = 60, |
| | 1423 | .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, |
| | 1424 | }; |
| | 1425 | |
| | 1426 | static const struct panel_desc starry_kr122ea0sra = { |
| | 1427 | .modes = &starry_kr122ea0sra_mode, |
| | 1428 | .num_modes = 1, |
| | 1429 | .size = { |
| | 1430 | .width = 263, |
| | 1431 | .height = 164, |
| | 1432 | }, |
| | 1433 | }; |
| | 1434 | |
| 1296 | static const struct drm_display_mode tpk_f07a_0102_mode = { | 1435 | static const struct drm_display_mode tpk_f07a_0102_mode = { |
| 1297 | .clock = 33260, | 1436 | .clock = 33260, |
| 1298 | .hdisplay = 800, | 1437 | .hdisplay = 800, |
| @@ -1456,6 +1595,12 @@ static const struct of_device_id platform_of_match[] = { · 157 unmodified lines |
| 1456 | }, { | 1595 | }, { |
| 1457 | .compatible = "lg,lb070wv8", | 1596 | .compatible = "lg,lb070wv8", |
| 1458 | .data = &lg_lb070wv8, | 1597 | .data = &lg_lb070wv8, |
| | 1598 | }, { |
| | 1599 | .compatible = "lg,lp079qx1-sp0v", |
| | 1600 | .data = &lg_lp079qx1_sp0v, |
| | 1601 | }, { |
| | 1602 | .compatible = "lg,lp097qx1-spa1", |
| | 1603 | .data = &lg_lp097qx1_spa1, |
| 1459 | }, { | 1604 | }, { |
| 1460 | .compatible = "lg,lp120up1", | 1605 | .compatible = "lg,lp120up1", |
| 1461 | .data = &lg_lp120up1, | 1606 | .data = &lg_lp120up1, |
| @@ -1480,15 +1625,27 @@ static const struct of_device_id platform_of_match[] = { · 18 unmodified lines |
| 1480 | }, { | 1625 | }, { |
| 1481 | .compatible = "qiaodian,qd43003c0-40", | 1626 | .compatible = "qiaodian,qd43003c0-40", |
| 1482 | .data = &qd43003c0_40, | 1627 | .data = &qd43003c0_40, |
| | 1628 | }, { |
| | 1629 | .compatible = "samsung,lsn122dl01-c01", |
| | 1630 | .data = &samsung_lsn122dl01_c01, |
| 1483 | }, { | 1631 | }, { |
| 1484 | .compatible = "samsung,ltn101nt05", | 1632 | .compatible = "samsung,ltn101nt05", |
| 1485 | .data = &samsung_ltn101nt05, | 1633 | .data = &samsung_ltn101nt05, |
| 1486 | }, { | 1634 | }, { |
| 1487 | .compatible = "samsung,ltn140at29-301", | 1635 | .compatible = "samsung,ltn140at29-301", |
| 1488 | .data = &samsung_ltn140at29_301, | 1636 | .data = &samsung_ltn140at29_301, |
| | 1637 | }, { |
| | 1638 | .compatible = "sharp,lq101k1ly04", |
| | 1639 | .data = &sharp_lq101k1ly04, |
| | 1640 | }, { |
| | 1641 | .compatible = "sharp,lq123p1jx31", |
| | 1642 | .data = &sharp_lq123p1jx31, |
| 1489 | }, { | 1643 | }, { |
| 1490 | .compatible = "shelly,sca07010-bfn-lnn", | 1644 | .compatible = "shelly,sca07010-bfn-lnn", |
| 1491 | .data = &shelly_sca07010_bfn_lnn, | 1645 | .data = &shelly_sca07010_bfn_lnn, |
| | 1646 | }, { |
| | 1647 | .compatible = "starry,kr122ea0sra", |
| | 1648 | .data = &starry_kr122ea0sra, |
| 1492 | }, { | 1649 | }, { |
| 1493 | .compatible = "tpk,f07a-0102", | 1650 | .compatible = "tpk,f07a-0102", |
| 1494 | .data = &tpk_f07a_0102, | 1651 | .data = &tpk_f07a_0102, |
| @@ -1701,7 +1858,6 @@ static const struct panel_desc_dsi panasonic_vvx10f004b00 = { · 206 unmodified lines |
| 1701 | .lanes = 4, | 1858 | .lanes = 4, |
| 1702 | }; | 1859 | }; |
| 1703 | | 1860 | |
| 1704 | | | |
| 1705 | static const struct of_device_id dsi_of_match[] = { | 1861 | static const struct of_device_id dsi_of_match[] = { |
| 1706 | { | 1862 | { |
| 1707 | .compatible = "auo,b080uan01", | 1863 | .compatible = "auo,b080uan01", |