disp: msm: dp: update hpd handling for mst
On hpd low signaling, if MST is enabled, then the dp driver should send the uevent to usermode and wait for the displays to be turned off before destroying the connectors. In the current mst driver, hpd low handling is a monolithic step. This change breaks this into two separate callbacks into the mst driver so the display driver can wait for usermode completion between these two steps. When processing hpd low in sim mode, the mst driver uses the drm framework's the port detection function. When hpd unplug is signaled to the usermode, it checks the port status before disabling it. But since the port hasn't been destroyed yet, the framework reports that the port as still connected. This causes the driver to timeout while waiting for the the displays to be disabled. This change adds a wrapper which will report the port status as disconnected when hpd low is signaled. Change-Id: I1c59a4878018a300f258bd67c36d1cf4eaf5f67b Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
32e305e278
commit
65534be8da
@@ -30,11 +30,12 @@ struct dp_mst_hpd_info {
|
||||
};
|
||||
|
||||
struct dp_mst_drm_cbs {
|
||||
void (*hpd)(void *display, bool hpd_status,
|
||||
struct dp_mst_hpd_info *info);
|
||||
void (*hpd)(void *display, bool hpd_status);
|
||||
void (*hpd_irq)(void *display, struct dp_mst_hpd_info *info);
|
||||
void (*set_drv_state)(void *dp_display,
|
||||
enum dp_drv_state mst_state);
|
||||
int (*set_mgr_state)(void *dp_display, bool state,
|
||||
struct dp_mst_hpd_info *info);
|
||||
};
|
||||
|
||||
struct dp_mst_drm_install_info {
|
||||
|
Reference in New Issue
Block a user