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>
This commit is contained in:
Tatenda Chipeperekwa 2017-03-22 12:22:39 -07:00 committed by Gerrit - the friendly Code Review server
parent 92f856da18
commit c94bbce3cf

View file

@ -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;
}