summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatenda Chipeperekwa <tatendac@codeaurora.org>2017-03-22 12:22:39 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-29 16:36:16 -0700
commitc94bbce3cf760c51f40da0e67222bffe79d8cbc7 (patch)
treed4d8ea682b888ba9419fb065f83a929eacea5e4a
parent92f856da1821bb9c51be5bb2380bb33796deafc7 (diff)
msm: mdss: dp: fix notifications for link training tests
Do not send a connection notification to clients while processing link training or electrical compliance requests. This is not necessary as these tests do not require a video output from the source device. Furthermore, we need to acknowledge/unblock the external display module if the core and link clocks are already powered on and we get an power on event. This will allow the driver to make progress, for example, to send the test responses and requested audio/video test patterns. CRs-Fixed: 2006096 Change-Id: I7956248d8ae665290e770e0fd5b76a79c55cda1d Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_dp.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dp.c b/drivers/video/fbdev/msm/mdss_dp.c
index 619fab4cdb93..7cc27d5fb670 100644
--- a/drivers/video/fbdev/msm/mdss_dp.c
+++ b/drivers/video/fbdev/msm/mdss_dp.c
@@ -1512,8 +1512,14 @@ exit_loop:
pr_debug("end\n");
- /* Send a connect notification */
- if (!mdss_dp_is_phy_test_pattern_requested(dp_drv))
+ /*
+ * Send a connect notification to clients except when processing link
+ * training and electrical compliance tests. There is no need to send
+ * a notification in these testing use cases as there is no
+ * expectation of receiving a video signal as part of the test.
+ */
+ if (!mdss_dp_is_phy_test_pattern_requested(dp_drv) &&
+ !mdss_dp_is_link_training_requested(dp_drv))
mdss_dp_notify_clients(dp_drv, NOTIFY_CONNECT_IRQ_HPD);
return ret;
@@ -1603,6 +1609,14 @@ int mdss_dp_on(struct mdss_panel_data *pdata)
panel_data);
if (dp_drv->power_on) {
+ /*
+ * Acknowledge the connection event if link training has already
+ * been done. This will unblock the external display thread and
+ * allow the driver to progress. For example, in the case of
+ * video test pattern requests, to send the test response and
+ * start transmitting the test pattern.
+ */
+ mdss_dp_ack_state(dp_drv, true);
pr_debug("Link already setup, return\n");
return 0;
}