Commit 4fe1fdcc authored by Wenjing Liu's avatar Wenjing Liu Committed by Alex Deucher

drm/amd/display: define mod_hdcp_display_disable_option struct

Signed-off-by: default avatarWenjing Liu <wenjing.liu@amd.com>
Reviewed-by: default avatarGeorge Shen <George.Shen@amd.com>
Acked-by: default avatarAnson Jacob <Anson.Jacob@amd.com>
Tested-by: default avatarDan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent ac3a4fa1
...@@ -191,7 +191,7 @@ void hdcp_update_display(struct hdcp_workqueue *hdcp_work, ...@@ -191,7 +191,7 @@ void hdcp_update_display(struct hdcp_workqueue *hdcp_work,
psp_set_srm(hdcp_work->hdcp.config.psp.handle, hdcp_work->srm, hdcp_work->srm_size, psp_set_srm(hdcp_work->hdcp.config.psp.handle, hdcp_work->srm, hdcp_work->srm_size,
&hdcp_work->srm_version); &hdcp_work->srm_version);
display->adjust.disable = 0; display->adjust.disable = MOD_HDCP_DISPLAY_NOT_DISABLE;
if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) { if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) {
hdcp_w->link.adjust.hdcp1.disable = 0; hdcp_w->link.adjust.hdcp1.disable = 0;
hdcp_w->link.adjust.hdcp2.force_type = MOD_HDCP_FORCE_TYPE_0; hdcp_w->link.adjust.hdcp2.force_type = MOD_HDCP_FORCE_TYPE_0;
...@@ -203,7 +203,7 @@ void hdcp_update_display(struct hdcp_workqueue *hdcp_work, ...@@ -203,7 +203,7 @@ void hdcp_update_display(struct hdcp_workqueue *hdcp_work,
schedule_delayed_work(&hdcp_w->property_validate_dwork, schedule_delayed_work(&hdcp_w->property_validate_dwork,
msecs_to_jiffies(DRM_HDCP_CHECK_PERIOD_MS)); msecs_to_jiffies(DRM_HDCP_CHECK_PERIOD_MS));
} else { } else {
display->adjust.disable = 1; display->adjust.disable = MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION;
hdcp_w->encryption_status = MOD_HDCP_ENCRYPTION_STATUS_HDCP_OFF; hdcp_w->encryption_status = MOD_HDCP_ENCRYPTION_STATUS_HDCP_OFF;
cancel_delayed_work(&hdcp_w->property_validate_dwork); cancel_delayed_work(&hdcp_w->property_validate_dwork);
} }
...@@ -456,7 +456,7 @@ static void update_config(void *handle, struct cp_psp_stream_config *config) ...@@ -456,7 +456,7 @@ static void update_config(void *handle, struct cp_psp_stream_config *config)
link->dp.rev = aconnector->dc_link->dpcd_caps.dpcd_rev.raw; link->dp.rev = aconnector->dc_link->dpcd_caps.dpcd_rev.raw;
link->dp.assr_enabled = config->assr_enabled; link->dp.assr_enabled = config->assr_enabled;
link->dp.mst_enabled = config->mst_enabled; link->dp.mst_enabled = config->mst_enabled;
display->adjust.disable = 1; display->adjust.disable = MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION;
link->adjust.auth_delay = 3; link->adjust.auth_delay = 3;
link->adjust.hdcp1.disable = 0; link->adjust.hdcp1.disable = 0;
......
...@@ -53,7 +53,7 @@ static uint8_t is_cp_desired_hdcp1(struct mod_hdcp *hdcp) ...@@ -53,7 +53,7 @@ static uint8_t is_cp_desired_hdcp1(struct mod_hdcp *hdcp)
*/ */
for (i = 0; i < MAX_NUM_OF_DISPLAYS; i++) { for (i = 0; i < MAX_NUM_OF_DISPLAYS; i++) {
if (hdcp->displays[i].state != MOD_HDCP_DISPLAY_INACTIVE && if (hdcp->displays[i].state != MOD_HDCP_DISPLAY_INACTIVE &&
!hdcp->displays[i].adjust.disable) { hdcp->displays[i].adjust.disable != MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION) {
is_auth_needed = 1; is_auth_needed = 1;
break; break;
} }
...@@ -74,7 +74,7 @@ static uint8_t is_cp_desired_hdcp2(struct mod_hdcp *hdcp) ...@@ -74,7 +74,7 @@ static uint8_t is_cp_desired_hdcp2(struct mod_hdcp *hdcp)
*/ */
for (i = 0; i < MAX_NUM_OF_DISPLAYS; i++) { for (i = 0; i < MAX_NUM_OF_DISPLAYS; i++) {
if (hdcp->displays[i].state != MOD_HDCP_DISPLAY_INACTIVE && if (hdcp->displays[i].state != MOD_HDCP_DISPLAY_INACTIVE &&
!hdcp->displays[i].adjust.disable) { hdcp->displays[i].adjust.disable != MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION) {
is_auth_needed = 1; is_auth_needed = 1;
break; break;
} }
......
...@@ -120,6 +120,12 @@ enum mod_hdcp_display_state { ...@@ -120,6 +120,12 @@ enum mod_hdcp_display_state {
MOD_HDCP_DISPLAY_ENCRYPTION_ENABLED MOD_HDCP_DISPLAY_ENCRYPTION_ENABLED
}; };
enum mod_hdcp_display_disable_option {
MOD_HDCP_DISPLAY_NOT_DISABLE = 0,
MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION,
MOD_HDCP_DISPLAY_DISABLE_ENCRYPTION,
};
struct mod_hdcp_ddc { struct mod_hdcp_ddc {
void *handle; void *handle;
struct { struct {
...@@ -149,8 +155,8 @@ struct mod_hdcp_psp { ...@@ -149,8 +155,8 @@ struct mod_hdcp_psp {
}; };
struct mod_hdcp_display_adjustment { struct mod_hdcp_display_adjustment {
uint8_t disable : 1; uint8_t disable : 2;
uint8_t reserved : 7; uint8_t reserved : 6;
}; };
struct mod_hdcp_link_adjustment_hdcp1 { struct mod_hdcp_link_adjustment_hdcp1 {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment