summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej Hajda <a.hajda@samsung.com>2016-11-22 16:39:09 +0100
committerSeung-Woo Kim <sw0312.kim@samsung.com>2016-12-14 13:54:22 +0900
commita0dd723946e06a4b53f35c9e02413671812c0a45 (patch)
tree5faee0a07c7611fd275f393382f2a012fa73aa40
parent67186dcc712adc00825fe81893020062118039ba (diff)
drm/bridge/sii8620: fix peer device capabilities read code
Peer capabilities should be read differently depending on protocol version. Change-Id: I3344af6068da07ccc7842a6e8affc63ee31a33a0 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
-rw-r--r--drivers/gpu/drm/bridge/sil-sii8620.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c
index 7fdd50791b27..c9341a4fe67c 100644
--- a/drivers/gpu/drm/bridge/sil-sii8620.c
+++ b/drivers/gpu/drm/bridge/sil-sii8620.c
@@ -1409,7 +1409,8 @@ static void sii8620_status_changed_path(struct sii8620 *ctx)
sii8620_mt_write_stat(ctx, MHL_DST_REG(LINK_MODE),
MHL_DST_LM_CLK_MODE_NORMAL
| MHL_DST_LM_PATH_ENABLED);
- sii8620_mt_read_devcap(ctx, false);
+ if (ctx->mode < CM_MHL3)
+ sii8620_mt_read_devcap(ctx, false);
} else {
sii8620_mt_write_stat(ctx, MHL_DST_REG(LINK_MODE),
MHL_DST_LM_CLK_MODE_NORMAL);
@@ -1661,6 +1662,11 @@ static void sii8620_irq_infr(struct sii8620 *ctx)
sii8620_start_video(ctx);
}
+static void sii8620_got_xdevcap(struct sii8620 *ctx, int ret)
+{
+ sii8620_mt_read_devcap(ctx, false);
+}
+
static void sii8620_irq_tdm(struct sii8620 *ctx)
{
u8 stat = sii8620_readb(ctx, REG_TRXINTH);
@@ -1672,6 +1678,7 @@ static void sii8620_irq_tdm(struct sii8620 *ctx)
ctx->burst.r_size = SII8620_BURST_BUF_LEN;
sii8620_burst_tx_rbuf_info(ctx, SII8620_BURST_BUF_LEN);
sii8620_mt_read_devcap(ctx, true);
+ sii8620_mt_set_cont(ctx, sii8620_got_xdevcap);
} else {
sii8620_write_seq_static(ctx,
REG_MHL_PLL_CTL2, 0,