summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/omapdrm/dss/video-pll.c
diff options
context:
space:
mode:
authorVenkateswara Rao Mandela <venkat.mandela@ti.com>2018-01-24 13:45:09 +0300
committerTomi Valkeinen <tomi.valkeinen@ti.com>2018-06-28 13:41:05 +0300
commitc618a3a93b5a118fcf4afe5fe85e83c190f4b127 (patch)
tree1ddb2cfed00ae62c05e88a59a45fbd1a88524bbe /drivers/gpu/drm/omapdrm/dss/video-pll.c
parent6ada1328642b8ffc25917c89569d3e16354b43d2 (diff)
downloadlinux-c618a3a93b5a118fcf4afe5fe85e83c190f4b127.tar.xz
drm/omap: Implement workaround for DRA7 errata ID:i932
Description of DRA7 Errata i932: In rare circumstances DPLL_VIDEO1 and DPLL_VIDEO2 PLL's may not lock on the first attempt during DSS initialization. When this occurs, a subsequent attempt to relock the PLL will result in PLL successfully locking. This patch does the following as per the errata recommendation: - retries locking the PLL upto 20 times. - The time to wait for a PLL lock set to 1000 REFCLK cycles. We use usleep_range to wait for 1000 REFCLK cycles in the us range. This tight constraint is imposed as a lock later than 1000 REFCLK cycles may have high jitter. - Criteria for PLL lock is extended from check on just the PLL_LOCK bit to check on 6 PLL_STATUS bits. Silicon Versions Impacted: DRA71, DRA72, DRA74, DRA76 - All silicon revisions AM57x - All silicon revisions OMAP4/5 are not impacted by this errata Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com> [tomi.valkeinen@ti.com: ported to v4.14] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/dss/video-pll.c')
-rw-r--r--drivers/gpu/drm/omapdrm/dss/video-pll.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/video-pll.c b/drivers/gpu/drm/omapdrm/dss/video-pll.c
index 585ed94ccf17..cb46311f92c9 100644
--- a/drivers/gpu/drm/omapdrm/dss/video-pll.c
+++ b/drivers/gpu/drm/omapdrm/dss/video-pll.c
@@ -134,6 +134,7 @@ static const struct dss_pll_hw dss_dra7_video_pll_hw = {
.has_refsel = true,
.errata_i886 = true,
+ .errata_i932 = true,
};
struct dss_pll *dss_video_pll_init(struct dss_device *dss,