diff --git a/drivers/media/video/msm_vidc/msm_vdec.c b/drivers/media/video/msm_vidc/msm_vdec.c index 6de3f25420c..9edab16b029 100644 --- a/drivers/media/video/msm_vidc/msm_vdec.c +++ b/drivers/media/video/msm_vidc/msm_vdec.c @@ -224,6 +224,14 @@ static const struct msm_vidc_format vdec_formats[] = { .num_planes = 1, .get_frame_size = get_frame_size_compressed, .type = OUTPUT_PORT, + }, + { + .name = "DIVX", + .description = "DIVX 4/5/6 compressed format", + .fourcc = V4L2_PIX_FMT_DIVX, + .num_planes = 1, + .get_frame_size = get_frame_size_compressed, + .type = OUTPUT_PORT, } }; diff --git a/drivers/media/video/msm_vidc/msm_vidc_common.c b/drivers/media/video/msm_vidc/msm_vidc_common.c index 6b06943d20e..52f1dca8438 100644 --- a/drivers/media/video/msm_vidc/msm_vidc_common.c +++ b/drivers/media/video/msm_vidc/msm_vidc_common.c @@ -629,8 +629,10 @@ static enum hal_video_codec get_hal_codec_type(int fourcc) case V4L2_PIX_FMT_DIVX_311: codec = HAL_VIDEO_CODEC_DIVX_311; break; + case V4L2_PIX_FMT_DIVX: + codec = HAL_VIDEO_CODEC_DIVX; + break; /*HAL_VIDEO_CODEC_MVC - HAL_VIDEO_CODEC_DIVX HAL_VIDEO_CODEC_SPARK HAL_VIDEO_CODEC_VP6 HAL_VIDEO_CODEC_VP7 diff --git a/drivers/media/video/msm_vidc/vidc_hal_interrupt_handler.c b/drivers/media/video/msm_vidc/vidc_hal_interrupt_handler.c index cb44d3a53f6..02b969959b0 100644 --- a/drivers/media/video/msm_vidc/vidc_hal_interrupt_handler.c +++ b/drivers/media/video/msm_vidc/vidc_hal_interrupt_handler.c @@ -510,9 +510,12 @@ static void hal_process_session_ftb_done(struct hal_device *device, if (sizeof(struct hfi_msg_session_fill_buffer_done_compressed_packet) != pkt->size) { - HAL_MSG_ERROR("hal_process_session_ftb_done:" - "bad_pkt_size"); + HAL_MSG_ERROR("%s: bad_pkt_size", __func__); return; + } else if (pkt->error_type != HFI_ERR_NONE) { + HAL_MSG_ERROR("%s: got buffer back with error %x", + __func__, pkt->error_type); + /* Proceed with the FBD */ } data_done.device_id = device->device_id; diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index fe0f1a82862..42d5c21751f 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -386,7 +386,8 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */ #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */ -#define V4L2_PIX_FMT_DIVX_311 v4l2_fourcc('D', 'I', 'V', '3') /* DIVX */ +#define V4L2_PIX_FMT_DIVX_311 v4l2_fourcc('D', 'I', 'V', '3') /* DIVX311 */ +#define V4L2_PIX_FMT_DIVX v4l2_fourcc('D', 'I', 'V', 'X') /* DIVX */ /* Vendor-specific formats */ #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */