aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc.c8
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_dec.c2
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c
index d5f634d0ba05..41723180d10c 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c
@@ -342,8 +342,16 @@ static void s5p_mfc_handle_frame(struct s5p_mfc_ctx *ctx,
342 /* All frames remaining in the buffer have been extracted */ 342 /* All frames remaining in the buffer have been extracted */
343 if (dst_frame_status == S5P_FIMV_DEC_STATUS_DECODING_EMPTY) { 343 if (dst_frame_status == S5P_FIMV_DEC_STATUS_DECODING_EMPTY) {
344 if (ctx->state == MFCINST_RES_CHANGE_FLUSH) { 344 if (ctx->state == MFCINST_RES_CHANGE_FLUSH) {
345 static const struct v4l2_event ev_src_ch = {
346 .type = V4L2_EVENT_SOURCE_CHANGE,
347 .u.src_change.changes =
348 V4L2_EVENT_SRC_CH_RESOLUTION,
349 };
350
345 s5p_mfc_handle_frame_all_extracted(ctx); 351 s5p_mfc_handle_frame_all_extracted(ctx);
346 ctx->state = MFCINST_RES_CHANGE_END; 352 ctx->state = MFCINST_RES_CHANGE_END;
353 v4l2_event_queue_fh(&ctx->fh, &ev_src_ch);
354
347 goto leave_handle_frame; 355 goto leave_handle_frame;
348 } else { 356 } else {
349 s5p_mfc_handle_frame_all_extracted(ctx); 357 s5p_mfc_handle_frame_all_extracted(ctx);
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
index 6a8697e9ba23..4d93835dec9d 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
@@ -867,6 +867,8 @@ static int vidioc_subscribe_event(struct v4l2_fh *fh,
867 switch (sub->type) { 867 switch (sub->type) {
868 case V4L2_EVENT_EOS: 868 case V4L2_EVENT_EOS:
869 return v4l2_event_subscribe(fh, sub, 2, NULL); 869 return v4l2_event_subscribe(fh, sub, 2, NULL);
870 case V4L2_EVENT_SOURCE_CHANGE:
871 return v4l2_src_change_event_subscribe(fh, sub);
870 default: 872 default:
871 return -EINVAL; 873 return -EINVAL;
872 } 874 }