Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: define mod_hdcp_display_disable_option struct

Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Reviewed-by: George Shen <George.Shen@amd.com>
Acked-by: Anson Jacob <Anson.Jacob@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Wenjing Liu and committed by
Alex Deucher
4fe1fdcc ac3a4fa1

+13 -7
+3 -3
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
··· 191 191 psp_set_srm(hdcp_work->hdcp.config.psp.handle, hdcp_work->srm, hdcp_work->srm_size, 192 192 &hdcp_work->srm_version); 193 193 194 - display->adjust.disable = 0; 194 + display->adjust.disable = MOD_HDCP_DISPLAY_NOT_DISABLE; 195 195 if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) { 196 196 hdcp_w->link.adjust.hdcp1.disable = 0; 197 197 hdcp_w->link.adjust.hdcp2.force_type = MOD_HDCP_FORCE_TYPE_0; ··· 203 203 schedule_delayed_work(&hdcp_w->property_validate_dwork, 204 204 msecs_to_jiffies(DRM_HDCP_CHECK_PERIOD_MS)); 205 205 } else { 206 - display->adjust.disable = 1; 206 + display->adjust.disable = MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION; 207 207 hdcp_w->encryption_status = MOD_HDCP_ENCRYPTION_STATUS_HDCP_OFF; 208 208 cancel_delayed_work(&hdcp_w->property_validate_dwork); 209 209 } ··· 456 456 link->dp.rev = aconnector->dc_link->dpcd_caps.dpcd_rev.raw; 457 457 link->dp.assr_enabled = config->assr_enabled; 458 458 link->dp.mst_enabled = config->mst_enabled; 459 - display->adjust.disable = 1; 459 + display->adjust.disable = MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION; 460 460 link->adjust.auth_delay = 3; 461 461 link->adjust.hdcp1.disable = 0; 462 462
+2 -2
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
··· 53 53 */ 54 54 for (i = 0; i < MAX_NUM_OF_DISPLAYS; i++) { 55 55 if (hdcp->displays[i].state != MOD_HDCP_DISPLAY_INACTIVE && 56 - !hdcp->displays[i].adjust.disable) { 56 + hdcp->displays[i].adjust.disable != MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION) { 57 57 is_auth_needed = 1; 58 58 break; 59 59 } ··· 74 74 */ 75 75 for (i = 0; i < MAX_NUM_OF_DISPLAYS; i++) { 76 76 if (hdcp->displays[i].state != MOD_HDCP_DISPLAY_INACTIVE && 77 - !hdcp->displays[i].adjust.disable) { 77 + hdcp->displays[i].adjust.disable != MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION) { 78 78 is_auth_needed = 1; 79 79 break; 80 80 }
+8 -2
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h
··· 120 120 MOD_HDCP_DISPLAY_ENCRYPTION_ENABLED 121 121 }; 122 122 123 + enum mod_hdcp_display_disable_option { 124 + MOD_HDCP_DISPLAY_NOT_DISABLE = 0, 125 + MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION, 126 + MOD_HDCP_DISPLAY_DISABLE_ENCRYPTION, 127 + }; 128 + 123 129 struct mod_hdcp_ddc { 124 130 void *handle; 125 131 struct { ··· 155 149 }; 156 150 157 151 struct mod_hdcp_display_adjustment { 158 - uint8_t disable : 1; 159 - uint8_t reserved : 7; 152 + uint8_t disable : 2; 153 + uint8_t reserved : 6; 160 154 }; 161 155 162 156 struct mod_hdcp_link_adjustment_hdcp1 {