diff options
author | AyoungSim <a.sim@samsung.com> | 2022-10-06 10:18:29 +0900 |
---|---|---|
committer | wenchangliu <wenchangliu@google.com> | 2022-10-06 04:02:42 +0000 |
commit | fe2ef5bf1dcad30aa66356b2ea3b242d9db79b57 (patch) | |
tree | e7e5bbfad4371151e3af004749f53a163e202c49 | |
parent | e641a69fc08feeb29a31cc9151d1e85c79dac396 (diff) | |
download | gs-android-gs-pantah-5.10-t-qpr1-beta-3.tar.gz |
media: mfc: clear sbwc lossy optionandroid-t-qpr1-beta-3_r0.5android-t-qpr1-beta-3.1_r0.1android-13.0.0_r0.50android-gs-pantah-5.10-t-qpr1-beta-3android-gs-pantah-5.10-android13-qpr1-beta-3
If the sbwc lossy setting is not cleared,
because it operates as lossy even though it is SBWC lossless,
it may affect the next instance operation.
Bug: 246669701
Signed-off-by: AyoungSim <a.sim@samsung.com>
Signed-off-by: wenchangliu <wenchangliu@google.com>
Change-Id: Iec3db6eceeea8869a9abaaa4965cca45da8bf4b0
-rw-r--r-- | drivers/media/platform/exynos/mfc/mfc_core_enc_param.c | 3 | ||||
-rw-r--r-- | drivers/media/platform/exynos/mfc/mfc_core_isr.c | 8 | ||||
-rw-r--r-- | drivers/media/platform/exynos/mfc/mfc_core_nal_q.c | 8 |
3 files changed, 17 insertions, 2 deletions
diff --git a/drivers/media/platform/exynos/mfc/mfc_core_enc_param.c b/drivers/media/platform/exynos/mfc/mfc_core_enc_param.c index 0086f9257f82..63c6e7958098 100644 --- a/drivers/media/platform/exynos/mfc/mfc_core_enc_param.c +++ b/drivers/media/platform/exynos/mfc/mfc_core_enc_param.c @@ -287,7 +287,10 @@ static void __mfc_set_enc_params(struct mfc_core *core, struct mfc_ctx *ctx) mfc_clear_set_bits(reg, 0x3, 24, 1); else if (ctx->sbwcl_ratio == 75 || ctx->sbwcl_ratio == 80) mfc_clear_set_bits(reg, 0x3, 24, 2); + } else { + mfc_clear_set_bits(reg, 0x3, 24, 0); } + /* GDC-MFC vOTF enable */ mfc_clear_bits(reg, 0x1, 26); if (ctx->gdc_votf && core->has_gdc_votf && core->has_mfc_votf) { diff --git a/drivers/media/platform/exynos/mfc/mfc_core_isr.c b/drivers/media/platform/exynos/mfc/mfc_core_isr.c index e6a898542fb3..d78d3162a05e 100644 --- a/drivers/media/platform/exynos/mfc/mfc_core_isr.c +++ b/drivers/media/platform/exynos/mfc/mfc_core_isr.c @@ -1385,9 +1385,15 @@ static int __mfc_handle_stream(struct mfc_core *core, struct mfc_ctx *ctx, unsig } sbwc_err = mfc_core_get_enc_comp_err(); - if (sbwc_err) + if (sbwc_err) { mfc_ctx_err("[SBWC] Compressor error detected (Source: %d, DPB: %d)\n", (sbwc_err >> 1) & 0x1, sbwc_err & 0x1); + mfc_ctx_err("[SBWC] sbwc: %d, lossy: %d(%d), option: %d, FORMAT: %#x, OPTIONS: %#x\n", + ctx->is_sbwc, ctx->is_sbwc_lossy, + ctx->sbwcl_ratio, enc->sbwc_option, + MFC_CORE_READL(MFC_REG_PIXEL_FORMAT), + MFC_CORE_READL(MFC_REG_E_ENC_OPTIONS)); + } /* handle source buffer */ __mfc_handle_stream_input(core, ctx, consumed_only); diff --git a/drivers/media/platform/exynos/mfc/mfc_core_nal_q.c b/drivers/media/platform/exynos/mfc/mfc_core_nal_q.c index 87e8c29893e0..6df4a4987999 100644 --- a/drivers/media/platform/exynos/mfc/mfc_core_nal_q.c +++ b/drivers/media/platform/exynos/mfc/mfc_core_nal_q.c @@ -1522,9 +1522,15 @@ static void __mfc_core_nal_q_handle_stream(struct mfc_core *core, struct mfc_cor sbwc_err = ((pOutStr->NalDoneInfo >> MFC_REG_E_NAL_DONE_INFO_COMP_ERR_SHIFT) & MFC_REG_E_NAL_DONE_INFO_COMP_ERR_MASK); - if (sbwc_err) + if (sbwc_err) { mfc_ctx_err("[NALQ][SBWC] Compressor error detected (Source: %d, DPB: %d)\n", (sbwc_err >> 1) & 0x1, sbwc_err & 0x1); + mfc_ctx_err("[SBWC] sbwc: %d, lossy: %d(%d), option: %d, FORMAT: %#x, OPTIONS: %#x\n", + ctx->is_sbwc, ctx->is_sbwc_lossy, + ctx->sbwcl_ratio, enc->sbwc_option, + MFC_CORE_READL(MFC_REG_PIXEL_FORMAT), + MFC_CORE_READL(MFC_REG_E_ENC_OPTIONS)); + } /* handle input buffer */ __mfc_core_nal_q_handle_stream_input(core_ctx, pOutStr, consumed_only); |