Przeglądaj źródła

disp: msm: hdcp: update encryption level on framework request

Update the minimum encryption level only when there is a request
to do so coming from the DRM framework. This will ensure that any
previously set value will not be overwritten while processing
other commands. Failure to preserve the minimum encryption level
can result in secure content playback failure if the sink device
is not updated with the correct value.

Change-Id: Ie9a555a57617096fbdb9e46dd29a973b9223e237
Signed-off-by: Tatenda Chipeperekwa <[email protected]>
Tatenda Chipeperekwa 6 lat temu
rodzic
commit
a382d900a3
1 zmienionych plików z 5 dodań i 1 usunięć
  1. 5 1
      msm/sde_hdcp_2x.c

+ 5 - 1
msm/sde_hdcp_2x.c

@@ -822,7 +822,6 @@ static int sde_hdcp_2x_wakeup(struct sde_hdcp_2x_wakeup_data *data)
 
 	hdcp->timeout_left = data->timeout;
 	hdcp->total_message_length = data->total_message_length;
-	hdcp->min_enc_level = data->min_enc_level;
 
 	if (!completion_done(&hdcp->response_completion))
 		complete_all(&hdcp->response_completion);
@@ -875,6 +874,11 @@ static int sde_hdcp_2x_wakeup(struct sde_hdcp_2x_wakeup_data *data)
 			wake_up(&hdcp->wait_q);
 		}
 		break;
+	case HDCP_2X_CMD_MIN_ENC_LEVEL:
+		hdcp->min_enc_level = data->min_enc_level;
+		kfifo_put(&hdcp->cmd_q, data->cmd);
+		wake_up(&hdcp->wait_q);
+		break;
 	default:
 		kfifo_put(&hdcp->cmd_q, data->cmd);
 		wake_up(&hdcp->wait_q);