diff options
author | Daniel Drake <drake@endlessm.com> | 2017-09-29 12:05:42 +0200 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2017-10-26 09:06:34 +0900 |
commit | ae58c03e0ee13e37f8f56c0158d55f504ad889d2 (patch) | |
tree | f6e2c029b7bf6125946bcf1f697a1aaccbb11ea3 /drivers/gpu/drm/exynos | |
parent | 0900673e366190328796903a72cf17a9d082c327 (diff) | |
download | linux-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.c | 11 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_mixer.c | 4 |
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; |