summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos
diff options
context:
space:
mode:
authorDaniel Drake <drake@endlessm.com>2017-09-29 12:05:42 +0200
committerInki Dae <inki.dae@samsung.com>2017-10-26 09:06:34 +0900
commitae58c03e0ee13e37f8f56c0158d55f504ad889d2 (patch)
treef6e2c029b7bf6125946bcf1f697a1aaccbb11ea3 /drivers/gpu/drm/exynos
parent0900673e366190328796903a72cf17a9d082c327 (diff)
downloadlinux-stable-ae58c03e0ee13e37f8f56c0158d55f504ad889d2.tar.gz
linux-stable-ae58c03e0ee13e37f8f56c0158d55f504ad889d2.tar.bz2
linux-stable-ae58c03e0ee13e37f8f56c0158d55f504ad889d2.zip
drm/exynos/hdmi: add 85.5MHz pixel clock for v14 HDMI PHY
Configuration details from Samsung. This enables 1366x768@60Hz, which also needs the 256px timing hack to work around a mixer limitation. Signed-off-by: Daniel Drake <drake@endlessm.com> Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> [a.hajda@samsung.com: rebased onto proposed patchset] Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos')
-rw-r--r--drivers/gpu/drm/exynos/exynos_hdmi.c11
-rw-r--r--drivers/gpu/drm/exynos/exynos_mixer.c4
2 files changed, 13 insertions, 2 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 218914339cac..1309b1c9e074 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -297,6 +297,15 @@ static const struct hdmiphy_config hdmiphy_v14_configs[] = {
},
},
{
+ .pixel_clock = 85500000,
+ .conf = {
+ 0x01, 0xd1, 0x24, 0x11, 0x40, 0x40, 0xd0, 0x08,
+ 0x84, 0xa0, 0xd6, 0xd8, 0x45, 0xa0, 0xac, 0x80,
+ 0x08, 0x80, 0x11, 0x04, 0x02, 0x22, 0x44, 0x86,
+ 0x54, 0x90, 0x24, 0x01, 0x00, 0x00, 0x01, 0x80,
+ },
+ },
+ {
.pixel_clock = 106500000,
.conf = {
0x01, 0xd1, 0x2c, 0x12, 0x40, 0x0c, 0x09, 0x08,
@@ -1257,7 +1266,7 @@ static void hdmi_v14_mode_apply(struct hdmi_context *hdata)
* first line is distorted.
*/
if ((m->vdisplay != am->vdisplay) &&
- (m->hdisplay == 1280 || m->hdisplay == 1024))
+ (m->hdisplay == 1280 || m->hdisplay == 1024 || m->hdisplay == 1366))
hquirk = 258;
hdmi_reg_writev(hdata, HDMI_H_BLANK_0, 2, m->htotal - m->hdisplay);
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
index 714d72fd3bc5..dc5d79465f9b 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -1015,7 +1015,9 @@ static int mixer_mode_valid(struct exynos_drm_crtc *crtc,
(w >= 1664 && w <= 1920 && h >= 936 && h <= 1080))
return MODE_OK;
- if ((w == 1024 && h == 768) || (w == 1280 && h == 1024))
+ if ((w == 1024 && h == 768) ||
+ (w == 1366 && h == 768) ||
+ (w == 1280 && h == 1024))
return MODE_OK;
return MODE_BAD;