Merge "disp: msm: sde: set vlut only after ltm init"

このコミットが含まれているのは:
qctecmdr
2024-03-29 06:13:16 -07:00
committed by Gerrit - the friendly Code Review server
コミット 9aa2b54ff1

ファイルの表示

@@ -134,6 +134,7 @@ enum ltm_vlut_ops_bitmask {
ltm_dither = BIT(1),
ltm_roi = BIT(2),
ltm_vlut = BIT(3),
ltm_init = BIT(4),
ltm_ops_max = BIT(31),
};
@@ -4085,6 +4086,7 @@ static void ltm_initv1_disable(struct sde_hw_dspp *ctx, void *cfg,
ltm_vlut_ops_mask[dspp_idx[i]] &= ~ltm_dither;
ltm_vlut_ops_mask[dspp_idx[i]] &= ~ltm_unsharp;
ltm_vlut_ops_mask[dspp_idx[i]] &= ~ltm_init;
REG_DMA_SETUP_OPS(dma_write_cfg, 0x04, &opmode, sizeof(opmode),
REG_SINGLE_MODIFY, 0, 0,
REG_DMA_LTM_INIT_DISABLE_OP_MASK);
@@ -4215,6 +4217,8 @@ void reg_dmav1_setup_ltm_initv1(struct sde_hw_dspp *ctx, void *cfg)
ltm_vlut_ops_mask[dspp_idx[i]] &= ~ltm_unsharp;
}
ltm_vlut_ops_mask[dspp_idx[i]] |= ltm_init;
/* broadcast feature is not supported with REG_SINGLE_MODIFY */
REG_DMA_SETUP_OPS(dma_write_cfg, 0x04, &opmode, sizeof(opmode),
REG_SINGLE_MODIFY, 0, 0,
@@ -4436,6 +4440,13 @@ static int reg_dmav1_setup_ltm_vlutv1_common(struct sde_hw_dspp *ctx, void *cfg,
return -EINVAL;
}
/* vlut is set before ltm init */
if (!(ltm_vlut_ops_mask[dspp_idx[0]] & ltm_init)) {
DRM_DEBUG_DRIVER("vlut is set before ltm init\n");
SDE_EVT32(ctx->idx, 0x2222);
return -EINVAL;
}
if (hw_cfg->len != sizeof(struct drm_msm_ltm_data)) {
DRM_ERROR("invalid size of payload len %d exp %zd\n",
hw_cfg->len, sizeof(struct drm_msm_ltm_data));