Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'drm/panel/for-4.8-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next

drm/panel: Changes for v4.8-rc1

This set of changes contains a few cleanups for existing panels as well
as improved handling of certain backlights. In addition there's support
for a few new simple panels.

* tag 'drm/panel/for-4.8-rc1' of git://anongit.freedesktop.org/tegra/linux:
drm/panel: simple: Add support for Starry KR122EA0SRA panel
dt-bindings: Add Starry KR122EA0SRA panel binding
dt-bindings: Add vendor prefix for Starry
dt-bindings: display: Add Sharp LQ101K1LY04 panel binding
drm/panel: simple: Add support for Sharp LQ101K1LY04
drm/panel: simple: Add support for LG LP079QX1-SP0V panel
dt-bindings: Add support for LG LP079QX1-SP0V panel
drm/panel: simple: Add support for Sharp LQ123P1JX31 panel
dt-bindings: Add Sharp LQ123P1JX31 panel binding
drm/panel: simple: Add support for Samsung LSN122DL01-C01 panel
dt-bindings: Add Samsung LSN122DL01-C01 panel binding
drm/panel: simple: Add support for LG LP097QX1-SPA1 panel
dt-bindings: Add LG LP097QX1-SPA1 panel binding
drm/panel: simple: Update backlight state property
drm/panel: simple: Remove gratuitous blank line
drm/panel: simple: Fix a couple of physical sizes

+204 -5
+7
Documentation/devicetree/bindings/display/panel/lg,lp079qx1-sp0v.txt
··· 1 + LG LP079QX1-SP0V 7.9" (1536x2048 pixels) TFT LCD panel 2 + 3 + Required properties: 4 + - compatible: should be "lg,lp079qx1-sp0v" 5 + 6 + This binding is compatible with the simple-panel binding, which is specified 7 + in simple-panel.txt in this directory.
+7
Documentation/devicetree/bindings/display/panel/lg,lp097qx1-spa1.txt
··· 1 + LG 9.7" (2048x1536 pixels) TFT LCD panel 2 + 3 + Required properties: 4 + - compatible: should be "lg,lp097qx1-spa1" 5 + 6 + This binding is compatible with the simple-panel binding, which is specified 7 + in simple-panel.txt in this directory.
+7
Documentation/devicetree/bindings/display/panel/samsung,lsn122dl01-c01.txt
··· 1 + Samsung 12.2" (2560x1600 pixels) TFT LCD panel 2 + 3 + Required properties: 4 + - compatible: should be "samsung,lsn122dl01-c01" 5 + 6 + This binding is compatible with the simple-panel binding, which is specified 7 + in simple-panel.txt in this directory.
+7
Documentation/devicetree/bindings/display/panel/sharp,lq101k1ly04.txt
··· 1 + Sharp Display Corp. LQ101K1LY04 10.07" WXGA TFT LCD panel 2 + 3 + Required properties: 4 + - compatible: should be "sharp,lq101k1ly04" 5 + 6 + This binding is compatible with the simple-panel binding, which is specified 7 + in simple-panel.txt in this directory.
+7
Documentation/devicetree/bindings/display/panel/sharp,lq123p1jx31.txt
··· 1 + Sharp 12.3" (2400x1600 pixels) TFT LCD panel 2 + 3 + Required properties: 4 + - compatible: should be "sharp,lq123p1jx31" 5 + 6 + This binding is compatible with the simple-panel binding, which is specified 7 + in simple-panel.txt in this directory.
+7
Documentation/devicetree/bindings/display/panel/starry,kr122ea0sra.txt
··· 1 + Starry 12.2" (1920x1200 pixels) TFT LCD panel 2 + 3 + Required properties: 4 + - compatible: should be "starry,kr122ea0sra" 5 + 6 + This binding is compatible with the simple-panel binding, which is specified 7 + in simple-panel.txt in this directory.
+1
Documentation/devicetree/bindings/vendor-prefixes.txt
··· 247 247 spansion Spansion Inc. 248 248 sprd Spreadtrum Communications Inc. 249 249 st STMicroelectronics 250 + starry Starry Electronic Technology (ShenZhen) Co., LTD 250 251 startek Startek 251 252 ste ST-Ericsson 252 253 stericsson ST-Ericsson
+161 -5
drivers/gpu/drm/panel/panel-simple.c
··· 168 168 169 169 if (p->backlight) { 170 170 p->backlight->props.power = FB_BLANK_POWERDOWN; 171 + p->backlight->props.state |= BL_CORE_FBBLANK; 171 172 backlight_update_status(p->backlight); 172 173 } 173 174 ··· 236 235 msleep(p->desc->delay.enable); 237 236 238 237 if (p->backlight) { 238 + p->backlight->props.state &= ~BL_CORE_FBBLANK; 239 239 p->backlight->props.power = FB_BLANK_UNBLANK; 240 240 backlight_update_status(p->backlight); 241 241 } ··· 966 964 .num_modes = 1, 967 965 .bpc = 6, 968 966 .size = { 969 - .width = 1024, 970 - .height = 600, 967 + .width = 154, 968 + .height = 90, 971 969 }, 972 970 }; 973 971 ··· 1017 1015 .height = 91, 1018 1016 }, 1019 1017 .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, 1018 + }; 1019 + 1020 + static const struct drm_display_mode lg_lp079qx1_sp0v_mode = { 1021 + .clock = 200000, 1022 + .hdisplay = 1536, 1023 + .hsync_start = 1536 + 12, 1024 + .hsync_end = 1536 + 12 + 16, 1025 + .htotal = 1536 + 12 + 16 + 48, 1026 + .vdisplay = 2048, 1027 + .vsync_start = 2048 + 8, 1028 + .vsync_end = 2048 + 8 + 4, 1029 + .vtotal = 2048 + 8 + 4 + 8, 1030 + .vrefresh = 60, 1031 + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, 1032 + }; 1033 + 1034 + static const struct panel_desc lg_lp079qx1_sp0v = { 1035 + .modes = &lg_lp079qx1_sp0v_mode, 1036 + .num_modes = 1, 1037 + .size = { 1038 + .width = 129, 1039 + .height = 171, 1040 + }, 1041 + }; 1042 + 1043 + static const struct drm_display_mode lg_lp097qx1_spa1_mode = { 1044 + .clock = 205210, 1045 + .hdisplay = 2048, 1046 + .hsync_start = 2048 + 150, 1047 + .hsync_end = 2048 + 150 + 5, 1048 + .htotal = 2048 + 150 + 5 + 5, 1049 + .vdisplay = 1536, 1050 + .vsync_start = 1536 + 3, 1051 + .vsync_end = 1536 + 3 + 1, 1052 + .vtotal = 1536 + 3 + 1 + 9, 1053 + .vrefresh = 60, 1054 + }; 1055 + 1056 + static const struct panel_desc lg_lp097qx1_spa1 = { 1057 + .modes = &lg_lp097qx1_spa1_mode, 1058 + .num_modes = 1, 1059 + .size = { 1060 + .width = 208, 1061 + .height = 147, 1062 + }, 1020 1063 }; 1021 1064 1022 1065 static const struct drm_display_mode lg_lp120up1_mode = { ··· 1271 1224 .bus_format = MEDIA_BUS_FMT_RGB888_1X24, 1272 1225 }; 1273 1226 1227 + static const struct drm_display_mode samsung_lsn122dl01_c01_mode = { 1228 + .clock = 271560, 1229 + .hdisplay = 2560, 1230 + .hsync_start = 2560 + 48, 1231 + .hsync_end = 2560 + 48 + 32, 1232 + .htotal = 2560 + 48 + 32 + 80, 1233 + .vdisplay = 1600, 1234 + .vsync_start = 1600 + 2, 1235 + .vsync_end = 1600 + 2 + 5, 1236 + .vtotal = 1600 + 2 + 5 + 57, 1237 + .vrefresh = 60, 1238 + }; 1239 + 1240 + static const struct panel_desc samsung_lsn122dl01_c01 = { 1241 + .modes = &samsung_lsn122dl01_c01_mode, 1242 + .num_modes = 1, 1243 + .size = { 1244 + .width = 263, 1245 + .height = 164, 1246 + }, 1247 + }; 1248 + 1274 1249 static const struct drm_display_mode samsung_ltn101nt05_mode = { 1275 1250 .clock = 54030, 1276 1251 .hdisplay = 1024, ··· 1311 1242 .num_modes = 1, 1312 1243 .bpc = 6, 1313 1244 .size = { 1314 - .width = 1024, 1315 - .height = 600, 1245 + .width = 223, 1246 + .height = 125, 1316 1247 }, 1317 1248 }; 1318 1249 ··· 1339 1270 }, 1340 1271 }; 1341 1272 1273 + static const struct display_timing sharp_lq101k1ly04_timing = { 1274 + .pixelclock = { 60000000, 65000000, 80000000 }, 1275 + .hactive = { 1280, 1280, 1280 }, 1276 + .hfront_porch = { 20, 20, 20 }, 1277 + .hback_porch = { 20, 20, 20 }, 1278 + .hsync_len = { 10, 10, 10 }, 1279 + .vactive = { 800, 800, 800 }, 1280 + .vfront_porch = { 4, 4, 4 }, 1281 + .vback_porch = { 4, 4, 4 }, 1282 + .vsync_len = { 4, 4, 4 }, 1283 + .flags = DISPLAY_FLAGS_PIXDATA_POSEDGE, 1284 + }; 1285 + 1286 + static const struct panel_desc sharp_lq101k1ly04 = { 1287 + .timings = &sharp_lq101k1ly04_timing, 1288 + .num_timings = 1, 1289 + .bpc = 8, 1290 + .size = { 1291 + .width = 217, 1292 + .height = 136, 1293 + }, 1294 + .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, 1295 + }; 1296 + 1297 + static const struct drm_display_mode sharp_lq123p1jx31_mode = { 1298 + .clock = 252750, 1299 + .hdisplay = 2400, 1300 + .hsync_start = 2400 + 48, 1301 + .hsync_end = 2400 + 48 + 32, 1302 + .htotal = 2400 + 48 + 32 + 80, 1303 + .vdisplay = 1600, 1304 + .vsync_start = 1600 + 3, 1305 + .vsync_end = 1600 + 3 + 10, 1306 + .vtotal = 1600 + 3 + 10 + 33, 1307 + .vrefresh = 60, 1308 + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, 1309 + }; 1310 + 1311 + static const struct panel_desc sharp_lq123p1jx31 = { 1312 + .modes = &sharp_lq123p1jx31_mode, 1313 + .num_modes = 1, 1314 + .size = { 1315 + .width = 259, 1316 + .height = 173, 1317 + }, 1318 + }; 1319 + 1342 1320 static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode = { 1343 1321 .clock = 33300, 1344 1322 .hdisplay = 800, ··· 1407 1291 .height = 91, 1408 1292 }, 1409 1293 .bus_format = MEDIA_BUS_FMT_RGB666_1X18, 1294 + }; 1295 + 1296 + static const struct drm_display_mode starry_kr122ea0sra_mode = { 1297 + .clock = 147000, 1298 + .hdisplay = 1920, 1299 + .hsync_start = 1920 + 16, 1300 + .hsync_end = 1920 + 16 + 16, 1301 + .htotal = 1920 + 16 + 16 + 32, 1302 + .vdisplay = 1200, 1303 + .vsync_start = 1200 + 15, 1304 + .vsync_end = 1200 + 15 + 2, 1305 + .vtotal = 1200 + 15 + 2 + 18, 1306 + .vrefresh = 60, 1307 + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, 1308 + }; 1309 + 1310 + static const struct panel_desc starry_kr122ea0sra = { 1311 + .modes = &starry_kr122ea0sra_mode, 1312 + .num_modes = 1, 1313 + .size = { 1314 + .width = 263, 1315 + .height = 164, 1316 + }, 1410 1317 }; 1411 1318 1412 1319 static const struct drm_display_mode tpk_f07a_0102_mode = { ··· 1596 1457 .compatible = "lg,lb070wv8", 1597 1458 .data = &lg_lb070wv8, 1598 1459 }, { 1460 + .compatible = "lg,lp079qx1-sp0v", 1461 + .data = &lg_lp079qx1_sp0v, 1462 + }, { 1463 + .compatible = "lg,lp097qx1-spa1", 1464 + .data = &lg_lp097qx1_spa1, 1465 + }, { 1599 1466 .compatible = "lg,lp120up1", 1600 1467 .data = &lg_lp120up1, 1601 1468 }, { ··· 1626 1481 .compatible = "qiaodian,qd43003c0-40", 1627 1482 .data = &qd43003c0_40, 1628 1483 }, { 1484 + .compatible = "samsung,lsn122dl01-c01", 1485 + .data = &samsung_lsn122dl01_c01, 1486 + }, { 1629 1487 .compatible = "samsung,ltn101nt05", 1630 1488 .data = &samsung_ltn101nt05, 1631 1489 }, { 1632 1490 .compatible = "samsung,ltn140at29-301", 1633 1491 .data = &samsung_ltn140at29_301, 1634 1492 }, { 1493 + .compatible = "sharp,lq101k1ly04", 1494 + .data = &sharp_lq101k1ly04, 1495 + }, { 1496 + .compatible = "sharp,lq123p1jx31", 1497 + .data = &sharp_lq123p1jx31, 1498 + }, { 1635 1499 .compatible = "shelly,sca07010-bfn-lnn", 1636 1500 .data = &shelly_sca07010_bfn_lnn, 1501 + }, { 1502 + .compatible = "starry,kr122ea0sra", 1503 + .data = &starry_kr122ea0sra, 1637 1504 }, { 1638 1505 .compatible = "tpk,f07a-0102", 1639 1506 .data = &tpk_f07a_0102, ··· 1857 1700 .format = MIPI_DSI_FMT_RGB888, 1858 1701 .lanes = 4, 1859 1702 }; 1860 - 1861 1703 1862 1704 static const struct of_device_id dsi_of_match[] = { 1863 1705 {