Commit ec2174fe authored by Dave Airlie's avatar Dave Airlie

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
parents 877fa9a4 9bb34c4c
LG LP079QX1-SP0V 7.9" (1536x2048 pixels) TFT LCD panel
Required properties:
- compatible: should be "lg,lp079qx1-sp0v"
This binding is compatible with the simple-panel binding, which is specified
in simple-panel.txt in this directory.
LG 9.7" (2048x1536 pixels) TFT LCD panel
Required properties:
- compatible: should be "lg,lp097qx1-spa1"
This binding is compatible with the simple-panel binding, which is specified
in simple-panel.txt in this directory.
Samsung 12.2" (2560x1600 pixels) TFT LCD panel
Required properties:
- compatible: should be "samsung,lsn122dl01-c01"
This binding is compatible with the simple-panel binding, which is specified
in simple-panel.txt in this directory.
Sharp Display Corp. LQ101K1LY04 10.07" WXGA TFT LCD panel
Required properties:
- compatible: should be "sharp,lq101k1ly04"
This binding is compatible with the simple-panel binding, which is specified
in simple-panel.txt in this directory.
Sharp 12.3" (2400x1600 pixels) TFT LCD panel
Required properties:
- compatible: should be "sharp,lq123p1jx31"
This binding is compatible with the simple-panel binding, which is specified
in simple-panel.txt in this directory.
Starry 12.2" (1920x1200 pixels) TFT LCD panel
Required properties:
- compatible: should be "starry,kr122ea0sra"
This binding is compatible with the simple-panel binding, which is specified
in simple-panel.txt in this directory.
...@@ -247,6 +247,7 @@ sony Sony Corporation ...@@ -247,6 +247,7 @@ sony Sony Corporation
spansion Spansion Inc. spansion Spansion Inc.
sprd Spreadtrum Communications Inc. sprd Spreadtrum Communications Inc.
st STMicroelectronics st STMicroelectronics
starry Starry Electronic Technology (ShenZhen) Co., LTD
startek Startek startek Startek
ste ST-Ericsson ste ST-Ericsson
stericsson ST-Ericsson stericsson ST-Ericsson
......
...@@ -168,6 +168,7 @@ static int panel_simple_disable(struct drm_panel *panel) ...@@ -168,6 +168,7 @@ static int panel_simple_disable(struct drm_panel *panel)
if (p->backlight) { if (p->backlight) {
p->backlight->props.power = FB_BLANK_POWERDOWN; p->backlight->props.power = FB_BLANK_POWERDOWN;
p->backlight->props.state |= BL_CORE_FBBLANK;
backlight_update_status(p->backlight); backlight_update_status(p->backlight);
} }
...@@ -235,6 +236,7 @@ static int panel_simple_enable(struct drm_panel *panel) ...@@ -235,6 +236,7 @@ static int panel_simple_enable(struct drm_panel *panel)
msleep(p->desc->delay.enable); msleep(p->desc->delay.enable);
if (p->backlight) { if (p->backlight) {
p->backlight->props.state &= ~BL_CORE_FBBLANK;
p->backlight->props.power = FB_BLANK_UNBLANK; p->backlight->props.power = FB_BLANK_UNBLANK;
backlight_update_status(p->backlight); backlight_update_status(p->backlight);
} }
...@@ -964,8 +966,8 @@ static const struct panel_desc innolux_zj070na_01p = { ...@@ -964,8 +966,8 @@ static const struct panel_desc innolux_zj070na_01p = {
.num_modes = 1, .num_modes = 1,
.bpc = 6, .bpc = 6,
.size = { .size = {
.width = 1024, .width = 154,
.height = 600, .height = 90,
}, },
}; };
...@@ -1017,6 +1019,51 @@ static const struct panel_desc lg_lb070wv8 = { ...@@ -1017,6 +1019,51 @@ static const struct panel_desc lg_lb070wv8 = {
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
}; };
static const struct drm_display_mode lg_lp079qx1_sp0v_mode = {
.clock = 200000,
.hdisplay = 1536,
.hsync_start = 1536 + 12,
.hsync_end = 1536 + 12 + 16,
.htotal = 1536 + 12 + 16 + 48,
.vdisplay = 2048,
.vsync_start = 2048 + 8,
.vsync_end = 2048 + 8 + 4,
.vtotal = 2048 + 8 + 4 + 8,
.vrefresh = 60,
.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
};
static const struct panel_desc lg_lp079qx1_sp0v = {
.modes = &lg_lp079qx1_sp0v_mode,
.num_modes = 1,
.size = {
.width = 129,
.height = 171,
},
};
static const struct drm_display_mode lg_lp097qx1_spa1_mode = {
.clock = 205210,
.hdisplay = 2048,
.hsync_start = 2048 + 150,
.hsync_end = 2048 + 150 + 5,
.htotal = 2048 + 150 + 5 + 5,
.vdisplay = 1536,
.vsync_start = 1536 + 3,
.vsync_end = 1536 + 3 + 1,
.vtotal = 1536 + 3 + 1 + 9,
.vrefresh = 60,
};
static const struct panel_desc lg_lp097qx1_spa1 = {
.modes = &lg_lp097qx1_spa1_mode,
.num_modes = 1,
.size = {
.width = 208,
.height = 147,
},
};
static const struct drm_display_mode lg_lp120up1_mode = { static const struct drm_display_mode lg_lp120up1_mode = {
.clock = 162300, .clock = 162300,
.hdisplay = 1920, .hdisplay = 1920,
...@@ -1224,6 +1271,28 @@ static const struct panel_desc qd43003c0_40 = { ...@@ -1224,6 +1271,28 @@ static const struct panel_desc qd43003c0_40 = {
.bus_format = MEDIA_BUS_FMT_RGB888_1X24, .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
}; };
static const struct drm_display_mode samsung_lsn122dl01_c01_mode = {
.clock = 271560,
.hdisplay = 2560,
.hsync_start = 2560 + 48,
.hsync_end = 2560 + 48 + 32,
.htotal = 2560 + 48 + 32 + 80,
.vdisplay = 1600,
.vsync_start = 1600 + 2,
.vsync_end = 1600 + 2 + 5,
.vtotal = 1600 + 2 + 5 + 57,
.vrefresh = 60,
};
static const struct panel_desc samsung_lsn122dl01_c01 = {
.modes = &samsung_lsn122dl01_c01_mode,
.num_modes = 1,
.size = {
.width = 263,
.height = 164,
},
};
static const struct drm_display_mode samsung_ltn101nt05_mode = { static const struct drm_display_mode samsung_ltn101nt05_mode = {
.clock = 54030, .clock = 54030,
.hdisplay = 1024, .hdisplay = 1024,
...@@ -1242,8 +1311,8 @@ static const struct panel_desc samsung_ltn101nt05 = { ...@@ -1242,8 +1311,8 @@ static const struct panel_desc samsung_ltn101nt05 = {
.num_modes = 1, .num_modes = 1,
.bpc = 6, .bpc = 6,
.size = { .size = {
.width = 1024, .width = 223,
.height = 600, .height = 125,
}, },
}; };
...@@ -1270,6 +1339,53 @@ static const struct panel_desc samsung_ltn140at29_301 = { ...@@ -1270,6 +1339,53 @@ static const struct panel_desc samsung_ltn140at29_301 = {
}, },
}; };
static const struct display_timing sharp_lq101k1ly04_timing = {
.pixelclock = { 60000000, 65000000, 80000000 },
.hactive = { 1280, 1280, 1280 },
.hfront_porch = { 20, 20, 20 },
.hback_porch = { 20, 20, 20 },
.hsync_len = { 10, 10, 10 },
.vactive = { 800, 800, 800 },
.vfront_porch = { 4, 4, 4 },
.vback_porch = { 4, 4, 4 },
.vsync_len = { 4, 4, 4 },
.flags = DISPLAY_FLAGS_PIXDATA_POSEDGE,
};
static const struct panel_desc sharp_lq101k1ly04 = {
.timings = &sharp_lq101k1ly04_timing,
.num_timings = 1,
.bpc = 8,
.size = {
.width = 217,
.height = 136,
},
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
};
static const struct drm_display_mode sharp_lq123p1jx31_mode = {
.clock = 252750,
.hdisplay = 2400,
.hsync_start = 2400 + 48,
.hsync_end = 2400 + 48 + 32,
.htotal = 2400 + 48 + 32 + 80,
.vdisplay = 1600,
.vsync_start = 1600 + 3,
.vsync_end = 1600 + 3 + 10,
.vtotal = 1600 + 3 + 10 + 33,
.vrefresh = 60,
.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
};
static const struct panel_desc sharp_lq123p1jx31 = {
.modes = &sharp_lq123p1jx31_mode,
.num_modes = 1,
.size = {
.width = 259,
.height = 173,
},
};
static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode = { static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode = {
.clock = 33300, .clock = 33300,
.hdisplay = 800, .hdisplay = 800,
...@@ -1293,6 +1409,29 @@ static const struct panel_desc shelly_sca07010_bfn_lnn = { ...@@ -1293,6 +1409,29 @@ static const struct panel_desc shelly_sca07010_bfn_lnn = {
.bus_format = MEDIA_BUS_FMT_RGB666_1X18, .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
}; };
static const struct drm_display_mode starry_kr122ea0sra_mode = {
.clock = 147000,
.hdisplay = 1920,
.hsync_start = 1920 + 16,
.hsync_end = 1920 + 16 + 16,
.htotal = 1920 + 16 + 16 + 32,
.vdisplay = 1200,
.vsync_start = 1200 + 15,
.vsync_end = 1200 + 15 + 2,
.vtotal = 1200 + 15 + 2 + 18,
.vrefresh = 60,
.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
};
static const struct panel_desc starry_kr122ea0sra = {
.modes = &starry_kr122ea0sra_mode,
.num_modes = 1,
.size = {
.width = 263,
.height = 164,
},
};
static const struct drm_display_mode tpk_f07a_0102_mode = { static const struct drm_display_mode tpk_f07a_0102_mode = {
.clock = 33260, .clock = 33260,
.hdisplay = 800, .hdisplay = 800,
...@@ -1456,6 +1595,12 @@ static const struct of_device_id platform_of_match[] = { ...@@ -1456,6 +1595,12 @@ static const struct of_device_id platform_of_match[] = {
}, { }, {
.compatible = "lg,lb070wv8", .compatible = "lg,lb070wv8",
.data = &lg_lb070wv8, .data = &lg_lb070wv8,
}, {
.compatible = "lg,lp079qx1-sp0v",
.data = &lg_lp079qx1_sp0v,
}, {
.compatible = "lg,lp097qx1-spa1",
.data = &lg_lp097qx1_spa1,
}, { }, {
.compatible = "lg,lp120up1", .compatible = "lg,lp120up1",
.data = &lg_lp120up1, .data = &lg_lp120up1,
...@@ -1480,15 +1625,27 @@ static const struct of_device_id platform_of_match[] = { ...@@ -1480,15 +1625,27 @@ static const struct of_device_id platform_of_match[] = {
}, { }, {
.compatible = "qiaodian,qd43003c0-40", .compatible = "qiaodian,qd43003c0-40",
.data = &qd43003c0_40, .data = &qd43003c0_40,
}, {
.compatible = "samsung,lsn122dl01-c01",
.data = &samsung_lsn122dl01_c01,
}, { }, {
.compatible = "samsung,ltn101nt05", .compatible = "samsung,ltn101nt05",
.data = &samsung_ltn101nt05, .data = &samsung_ltn101nt05,
}, { }, {
.compatible = "samsung,ltn140at29-301", .compatible = "samsung,ltn140at29-301",
.data = &samsung_ltn140at29_301, .data = &samsung_ltn140at29_301,
}, {
.compatible = "sharp,lq101k1ly04",
.data = &sharp_lq101k1ly04,
}, {
.compatible = "sharp,lq123p1jx31",
.data = &sharp_lq123p1jx31,
}, { }, {
.compatible = "shelly,sca07010-bfn-lnn", .compatible = "shelly,sca07010-bfn-lnn",
.data = &shelly_sca07010_bfn_lnn, .data = &shelly_sca07010_bfn_lnn,
}, {
.compatible = "starry,kr122ea0sra",
.data = &starry_kr122ea0sra,
}, { }, {
.compatible = "tpk,f07a-0102", .compatible = "tpk,f07a-0102",
.data = &tpk_f07a_0102, .data = &tpk_f07a_0102,
...@@ -1701,7 +1858,6 @@ static const struct panel_desc_dsi panasonic_vvx10f004b00 = { ...@@ -1701,7 +1858,6 @@ static const struct panel_desc_dsi panasonic_vvx10f004b00 = {
.lanes = 4, .lanes = 4,
}; };
static const struct of_device_id dsi_of_match[] = { static const struct of_device_id dsi_of_match[] = {
{ {
.compatible = "auo,b080uan01", .compatible = "auo,b080uan01",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment