drm/amd/display: Modify the hdcp device count check condition
[why] Some MST display may not report the internal panel to DEVICE_COUNT, that makes the check condition always failed. [how] To update this condition with the reported device count + 1 (because the immediate repeater's internal panel is possibly not included in DEVICE_COUNT) Signed-off-by: Martin Tsai <martin.tsai@amd.com> Acked-by: Bindu Ramamurthy <bindu.r@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
2da94e2808
commit
c2d61e3091
@ -128,8 +128,12 @@ static inline uint8_t get_device_count(struct mod_hdcp *hdcp)
|
||||
|
||||
static inline enum mod_hdcp_status check_device_count(struct mod_hdcp *hdcp)
|
||||
{
|
||||
/* device count must be greater than or equal to tracked hdcp displays */
|
||||
return (get_device_count(hdcp) < get_active_display_count(hdcp)) ?
|
||||
/* Some MST display may choose to report the internal panel as an HDCP RX.
|
||||
* To update this condition with 1(because the immediate repeater's internal
|
||||
* panel is possibly not included in DEVICE_COUNT) + get_device_count(hdcp).
|
||||
* Device count must be greater than or equal to tracked hdcp displays.
|
||||
*/
|
||||
return ((1 + get_device_count(hdcp)) < get_active_display_count(hdcp)) ?
|
||||
MOD_HDCP_STATUS_HDCP1_DEVICE_COUNT_MISMATCH_FAILURE :
|
||||
MOD_HDCP_STATUS_SUCCESS;
|
||||
}
|
||||
|
@ -207,8 +207,11 @@ static inline uint8_t get_device_count(struct mod_hdcp *hdcp)
|
||||
|
||||
static enum mod_hdcp_status check_device_count(struct mod_hdcp *hdcp)
|
||||
{
|
||||
/* device count must be greater than or equal to tracked hdcp displays */
|
||||
return (get_device_count(hdcp) < get_active_display_count(hdcp)) ?
|
||||
/* Some MST display may choose to report the internal panel as an HDCP RX. */
|
||||
/* To update this condition with 1(because the immediate repeater's internal */
|
||||
/* panel is possibly not included in DEVICE_COUNT) + get_device_count(hdcp). */
|
||||
/* Device count must be greater than or equal to tracked hdcp displays. */
|
||||
return ((1 + get_device_count(hdcp)) < get_active_display_count(hdcp)) ?
|
||||
MOD_HDCP_STATUS_HDCP2_DEVICE_COUNT_MISMATCH_FAILURE :
|
||||
MOD_HDCP_STATUS_SUCCESS;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user