diff options
author | Hoegeun Kwon <hoegeun.kwon@samsung.com> | 2019-02-14 11:22:19 +0900 |
---|---|---|
committer | Hoegeun Kwon <hoegeun.kwon@samsung.com> | 2019-02-19 08:53:09 +0900 |
commit | ef32d04d2c8220bd54b261c4fdb5c0486aa956ff (patch) | |
tree | b82dd9c2a9b7f46531d3fff5e65383613a987293 | |
parent | a6df9ba196ea6b7526d9661453e869b0705caa41 (diff) | |
download | linux-rpi3-ef32d04d2c8220bd54b261c4fdb5c0486aa956ff.tar.gz linux-rpi3-ef32d04d2c8220bd54b261c4fdb5c0486aa956ff.tar.bz2 linux-rpi3-ef32d04d2c8220bd54b261c4fdb5c0486aa956ff.zip |
drm/vc4: Fix reduce interrupt timeout 'workaround'submit/tizen/20190219.001534accepted/tizen/unified/20190219.154228
Since flag 'ignore_lcd=0' is set in config.txt, dsi interrupt is
disabled so that interrupt does not occur even when dsi_write is
operated. The waiting time causes a boot delay. So it reduces the
timeout to 100msecs until it is resolved. As a result, the boot delay
has been reduced from 22,000 to 2,200 msecs.
Change-Id: I2c27397102f38128ffd3599405d57198fd0f16f6
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_dsi.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c index a3f416cbd1d6..c7fd5e310d9c 100644 --- a/drivers/gpu/drm/vc4/vc4_dsi.c +++ b/drivers/gpu/drm/vc4/vc4_dsi.c @@ -1230,11 +1230,17 @@ static ssize_t vc4_dsi_host_transfer(struct mipi_dsi_host *host, DSI_PORT_WRITE(TXPKT1H, pkth); DSI_PORT_WRITE(TXPKT1C, pktc); + /* + * WORKAROUND: The timeout below bas been reduced from 1000 to 100msecs. + * Interrupt does not occur even if DSI transmission is performed, + * so reduce timeout. + */ if (!wait_for_completion_timeout(&dsi->xfer_completion, - msecs_to_jiffies(1000))) { + msecs_to_jiffies(100))) { dev_err(&dsi->pdev->dev, "transfer interrupt wait timeout"); dev_err(&dsi->pdev->dev, "instat: 0x%08x\n", DSI_PORT_READ(INT_STAT)); + dev_warn(&dsi->pdev->dev, "WORKAROUND: Interrupt does not occur even if DSI transmission."); ret = -ETIMEDOUT; } else { ret = dsi->xfer_result; |