Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit daca3fd5 authored by Krishna Chaitanya Parimi's avatar Krishna Chaitanya Parimi Committed by Ian Maund
Browse files

msm: mdss: Validate CSC ioctl for black screen in mdp3



If csc register data coming from ioctl has mv as all zeros
then a black screen is seen. This can be unrecoverable until
another csc ioctl with correct data arrives. Adding an
additional validation step to curb such spurious ioctl
data from getting programmed.

Change-Id: Id6355822a642720d80b98b7d4585a74758b3016f
Signed-off-by: default avatarKrishna Chaitanya Parimi <cparimi@codeaurora.org>
parent e3ba71be
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1375,10 +1375,17 @@ int mdp3_validate_scale_config(struct mdp_bl_scale_data *data)
int mdp3_validate_csc_data(struct mdp_csc_cfg_data *data)
{
	int i;
	bool mv_valid = false;
	for (i = 0; i < 9; i++) {
		if (data->csc_data.csc_mv[i] >=
				MDP_HISTOGRAM_CSC_MATRIX_MAX)
			return -EINVAL;
		if ((!mv_valid) && (data->csc_data.csc_mv[i] != 0))
			mv_valid = true;
	}
	if (!mv_valid) {
		pr_err("%s: black screen data! csc_mv is all 0s\n", __func__);
		return -EINVAL;
	}
	for (i = 0; i < 3; i++) {
		if (data->csc_data.csc_pre_bv[i] >=