disp: msm: dp: cache edid data for mst
Currently, in SST mode, sink edid is read once after hpd and reused on subsequent mode enumeration calls. But in MST mode, there is no caching and the driver re-reads the edid from the sink on every get_modes call for each monitor. Each read takes more than 500ms causing unnecessary delays during MST enumeration. This change reads the edid once per hpd and uses the cached data on subsequent calls. Change-Id: I27545a44b9f9bd40000dde60735815f9c47fa54c Signed-off-by: Sudarsan Ramesh <sudarame@codeaurora.org>
This commit is contained in:
@@ -481,6 +481,7 @@ struct sde_connector_dyn_hdr_metadata {
|
||||
* @hdr_capable: external hdr support present
|
||||
* @cmd_rx_buf: the return buffer of response of command transfer
|
||||
* @rx_len: the length of dcs command received buffer
|
||||
* @cached_edid: cached edid data for the connector
|
||||
*/
|
||||
struct sde_connector {
|
||||
struct drm_connector base;
|
||||
@@ -550,6 +551,8 @@ struct sde_connector {
|
||||
|
||||
u8 cmd_rx_buf[MAX_CMD_RECEIVE_SIZE];
|
||||
int rx_len;
|
||||
|
||||
struct edid *cached_edid;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user