/* smpte st-2084 */
if (signal_color_primaries != 9)
pr_csc("\tWARNING: non-standard HDR!!!\n");
- if (signal_range == 0)
- pr_csc("\tWARNING: full range HDR!!!\n");
csc_type = VPP_MATRIX_BT2020YUV_BT2020RGB;
} else if (signal_transfer_characteristic == 14) {
/* bt2020-10 */
int64_t (*out)[3], int32_t norm)
{
int i, j;
- int64_t tmp;
for (i = 0; i < 3; i++)
- for (j = 0; j < 3; j++) {
- tmp = a[i][j] * b[i][j] + (norm >> 1);
- div_s64(tmp, norm);
- out[i][j] = tmp;
- }
+ for (j = 0; j < 3; j++)
+ out[i][j] = (a[i][j] * b[i][j] + (norm >> 1)) / norm;
}
static void mtx_mul(int64_t (*a)[3], int64_t *b, int64_t *out, int32_t norm)
{
int j, k;
- int64_t tmp;
for (j = 0; j < 3; j++) {
out[j] = 0;
for (k = 0; k < 3; k++)
out[j] += a[k][j] * b[k];
- tmp = out[j] + (norm >> 1);
- div_s64(tmp, norm);
- out[j] = tmp;
+ out[j] = (out[j] + (norm >> 1)) / norm;
}
}
int64_t (*out)[3], int32_t norm)
{
int i, j, k;
- int64_t tmp;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++) {
out[i][j] = 0;
for (k = 0; k < 3; k++)
out[i][j] += a[k][j] * b[i][k];
- tmp = out[i][j] + (norm >> 1);
- div_s64(tmp, norm);
- out[i][j] = tmp;
+ out[i][j] = (out[i][j] + (norm >> 1)) / norm;
}
}
{
int i, j;
int64_t determinant = 0;
- int64_t tmp;
for (i = 0; i < 3; i++)
determinant +=
out[j][i] -= (in[(i + 1) % 3][(j + 2) % 3]
* in[(i + 2) % 3][(j + 1) % 3]);
out[j][i] = (out[j][i] * norm) << (obl - 1);
- tmp = out[j][i] + (determinant >> 1);
- div_s64(tmp, determinant);
- out[j][i] = tmp;
+ out[j][i] =
+ (out[j][i] + (determinant >> 1)) / determinant;
}
}
}
int64_t C[3];
int64_t D[3][3];
int64_t E[3][3];
- int64_t tmp;
for (i = 0; i < 4; i++)
z[i] = norm - prmy[i][0] - prmy[i][1];
A[i][j] = prmy[i][j];
A[i][2] = z[i];
}
- tmp = norm * prmy[3][0] * 2;
- div_s64(tmp, prmy[3][1]);
- B[0] = (tmp + 1) >> 1;
+ B[0] = ((int64_t)norm * prmy[3][0] * 2 / prmy[3][1] + 1) >> 1;
B[1] = norm;
- tmp = norm * z[3] * 2;
- div_s64(tmp, prmy[3][1]);
- B[2] = (tmp + 1) >> 1;
+ B[2] = (norm * z[3] * 2 / prmy[3][1] + 1) >> 1;
inverse_3x3(A, D, norm, obl);
mtx_mul(D, B, C, norm);
for (i = 0; i < 3; i++)
pconf = lcd_drv->lcd_config;
disp_vinfo = &lcd_drv->lcd_info->master_display_info;
- disp_vinfo->present_flag = 1; /* valid parameters */
+ disp_vinfo->present_flag = pconf->optical_info.hdr_support;
disp_vinfo->features = pconf->optical_info.features;
disp_vinfo->primaries[0][0] = pconf->optical_info.primaries_g_x;
disp_vinfo->primaries[0][1] = pconf->optical_info.primaries_g_y;