media: mfc: DRV4.0: remove unnecessary status
authorAyoung Sim <a.sim@samsung.com>
Thu, 19 Apr 2018 01:11:17 +0000 (10:11 +0900)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:22:22 +0000 (20:22 +0300)
Change-Id: I6230ad09e3a6fb82b5fb6224d976a1ae541b0177
Signed-off-by: Ayoung Sim <a.sim@samsung.com>
drivers/media/platform/exynos/mfc/s5p_mfc_data_struct.h
drivers/media/platform/exynos/mfc/s5p_mfc_enc.c
drivers/media/platform/exynos/mfc/s5p_mfc_hwlock.c
drivers/media/platform/exynos/mfc/s5p_mfc_irq.c
drivers/media/platform/exynos/mfc/s5p_mfc_nal_q.c
drivers/media/platform/exynos/mfc/s5p_mfc_sync.c

index 1babde22128221356b427760746790faae118943..af7a254bc8f1203ccd1bd9a598e1fbac62cbae49 100644 (file)
@@ -102,7 +102,7 @@ enum s5p_mfc_inst_state {
        MFCINST_RES_CHANGE_INIT,
        MFCINST_RES_CHANGE_FLUSH,
        MFCINST_RES_CHANGE_END,
-       MFCINST_RUNNING_NO_OUTPUT,
+       MFCINST_RUNNING_NO_OUTPUT, // Unused
        MFCINST_ABORT_INST,
        MFCINST_DPB_FLUSHING,
        MFCINST_SPECIAL_PARSING,
index 8dcaac61c0ea9c700eff54fffabfc45eeaf862dc..ee4567ef8d78c92b4da18b72eade0c8fd71686f4 100644 (file)
@@ -849,10 +849,7 @@ static int mfc_enc_get_ctrl_val(struct s5p_mfc_ctx *ctx, struct v4l2_control *ct
                ctrl->value = enc->frame_type;
                break;
        case V4L2_CID_MPEG_MFC51_VIDEO_CHECK_STATE:
-               if (ctx->state == MFCINST_RUNNING_NO_OUTPUT)
-                       ctrl->value = MFCSTATE_ENC_NO_OUTPUT;
-               else
-                       ctrl->value = MFCSTATE_PROCESSING;
+               ctrl->value = MFCSTATE_PROCESSING;
                break;
        case V4L2_CID_MPEG_MFC51_VIDEO_FRAME_TAG:
        case V4L2_CID_MPEG_MFC51_VIDEO_LUMA_ADDR:
index d609c3b4c7125a3941516b3c5c186bdcb892b923..d4e394f06113aa09b215a5f7188c4f98ebeae15b 100644 (file)
@@ -790,7 +790,6 @@ static int mfc_just_run_enc(struct s5p_mfc_ctx *ctx)
                        ret = s5p_mfc_run_enc_last_frames(ctx);
                        break;
                case MFCINST_RUNNING:
-               case MFCINST_RUNNING_NO_OUTPUT:
                        if (ctx->otf_handle) {
                                ret = s5p_mfc_otf_run_enc_frame(ctx);
                                break;
index f6db2937aeb1f02f3e9168ed238671ad40f772f9..61cd0bf355c54b0a46bcdebd1691c27c0f6b72d5 100644 (file)
@@ -755,10 +755,6 @@ static void mfc_handle_stream_input(struct s5p_mfc_ctx *ctx)
 
        raw = &ctx->raw_buf;
 
-       if (ctx->state == MFCINST_RUNNING_NO_OUTPUT ||
-                       ctx->state == MFCINST_RUNNING_BUF_FULL)
-               s5p_mfc_change_state(ctx, MFCINST_RUNNING);
-
        s5p_mfc_get_enc_frame_buffer(ctx, &enc_addr[0], raw->num_planes);
        if (enc_addr[0] == 0) {
                mfc_debug(3, "no encoded src\n");
@@ -925,6 +921,8 @@ static int mfc_handle_stream(struct s5p_mfc_ctx *ctx)
                s5p_mfc_change_state(ctx, MFCINST_ABORT_INST);
                return 0;
        }
+       if (ctx->state == MFCINST_RUNNING_BUF_FULL)
+               s5p_mfc_change_state(ctx, MFCINST_RUNNING);
 
        /* set encoded frame type */
        enc->frame_type = slice_type;
@@ -1378,8 +1376,7 @@ static int mfc_irq_ctx(struct s5p_mfc_ctx *ctx, unsigned int reason, unsigned in
                        break;
                }
                /* An error has occured */
-               if (ctx->state == MFCINST_RUNNING || ctx->state == MFCINST_ABORT ||
-                               ctx->state == MFCINST_RUNNING_NO_OUTPUT) {
+               if (ctx->state == MFCINST_RUNNING || ctx->state == MFCINST_ABORT) {
                        if ((s5p_mfc_get_err(err) >= S5P_FIMV_ERR_WARNINGS_START) &&
                                (s5p_mfc_get_err(err) <= S5P_FIMV_ERR_WARNINGS_END))
                                mfc_handle_frame(ctx, reason, err);
index 05e1dd851879d119db8d4f5474a5a35c878b960f..dbe2ac832343c6bfde66c3d6abad815357025853 100644 (file)
@@ -53,8 +53,7 @@ int s5p_mfc_nal_q_check_enable(struct s5p_mfc_dev *dev)
                                return 0;
                        }
                        /* NAL-Q can be enabled when all ctx are in running state */
-                       if (temp_ctx->state != MFCINST_RUNNING &&
-                                       temp_ctx->state != MFCINST_RUNNING_NO_OUTPUT) {
+                       if (temp_ctx->state != MFCINST_RUNNING) {
                                mfc_debug(2, "There is a ctx which is not in running state. "
                                                "index: %d, state: %d\n", i, temp_ctx->state);
                                return 0;
@@ -908,10 +907,6 @@ static void mfc_nal_q_handle_stream_input(struct s5p_mfc_ctx *ctx, EncoderOutput
 
        raw = &ctx->raw_buf;
 
-       if (ctx->state == MFCINST_RUNNING_NO_OUTPUT ||
-                       ctx->state == MFCINST_RUNNING_BUF_FULL)
-               ctx->state = MFCINST_RUNNING;
-
        mfc_nal_q_get_enc_frame_buffer(ctx, &enc_addr[0], raw->num_planes, pOutStr);
        if (enc_addr[0] == 0) {
                mfc_debug(3, "NAL Q: no encoded src\n");
@@ -1064,6 +1059,10 @@ static void mfc_nal_q_handle_stream(struct s5p_mfc_ctx *ctx, EncoderOutputStr *p
        mfc_debug(2, "NAL Q: encoded stream size: %d\n", strm_size);
        mfc_debug(2, "NAL Q: display order: %d\n", pic_count);
 
+       /* buffer full handling */
+       if (ctx->state == MFCINST_RUNNING_BUF_FULL)
+               ctx->state = MFCINST_RUNNING;
+
        /* set encoded frame type */
        enc->frame_type = slice_type;
        ctx->sequence++;
index f318517b0ebfce8b421ee05601d95a1a3aa04c90..762bfb8597c7b4111cb8ad146ec7b3852e2056d0 100644 (file)
@@ -315,11 +315,6 @@ int s5p_mfc_enc_ctx_ready(struct s5p_mfc_ctx *ctx)
                src_buf_queue_greater_than_0 && dst_buf_queue_greater_than_0)
                return 1;
 
-       /* context is ready to encode a frame in case of B frame */
-       if (ctx->state == MFCINST_RUNNING_NO_OUTPUT &&
-               src_buf_queue_greater_than_0 && dst_buf_queue_greater_than_0)
-               return 1;
-
        /* context is ready to encode a frame for NAL_ABORT command */
        if (ctx->state == MFCINST_ABORT_INST &&
                src_buf_queue_greater_than_0 && dst_buf_queue_greater_than_0)