From ac4a46eb40c52a85434cbae3b9a459674732aeb3 Mon Sep 17 00:00:00 2001 From: Xinliang Liu Date: Tue, 26 Jan 2016 14:53:49 +0800 Subject: [PATCH] drm/i2c: adv7511: Only 720p reset dsi when detect dsi transfer error Signed-off-by: Xinliang Liu --- drivers/gpu/drm/i2c/adv7511.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i2c/adv7511.c b/drivers/gpu/drm/i2c/adv7511.c index 3cdf4d103e7f56..9a04bfda2788e0 100644 --- a/drivers/gpu/drm/i2c/adv7511.c +++ b/drivers/gpu/drm/i2c/adv7511.c @@ -561,6 +561,7 @@ static int adv7511_irq_process(struct adv7511 *adv7511) { unsigned int irq0, irq1, state; struct drm_encoder *encoder = adv7511->encoder; + struct drm_display_mode *mode = &adv7511->curr_mode; struct hisi_dsi *dsi; bool powered = adv7511->powered; int ret; @@ -599,8 +600,10 @@ static int adv7511_irq_process(struct adv7511 *adv7511) regmap_update_bits(adv7511->regmap_cec, 0x38, BIT(1), BIT(1)); regmap_update_bits(adv7511->regmap_cec, 0x38, BIT(1), 0); - dsi = encoder_to_dsi(encoder); - dsi->reset(encoder); + if (mode->hdisplay == 1280 && mode->vdisplay == 720) { + dsi = encoder_to_dsi(encoder); + dsi->reset(encoder); + } } return 0;