Loading drivers/media/platform/msm/vidc/hfi_response_handler.c +1 −1 Original line number Diff line number Diff line Loading @@ -1209,7 +1209,7 @@ void hfi_process_sys_property_info( version[i] = ' '; } version[i] = '\0'; dprintk(VIDC_INFO, "F/W version: %s\n", version); dprintk(VIDC_DBG, "F/W version: %s\n", version); } smem_table_ptr = smem_get_entry(SMEM_IMAGE_VERSION_TABLE, Loading drivers/media/platform/msm/vidc/msm_venc.c +1 −10 Original line number Diff line number Diff line Loading @@ -919,8 +919,6 @@ static int msm_venc_queue_setup(struct vb2_queue *q, "Failed to get buffer requirements: %d\n", rc); break; } inst->capability.pixelprocess_capabilities = call_hfi_op(hdev, get_core_capabilities); *num_planes = 1; mutex_lock(&inst->lock); *num_buffers = inst->buff_req.buffer[0].buffer_count_actual = Loading Loading @@ -2044,12 +2042,11 @@ static int msm_venc_op_s_ctrl(struct v4l2_ctrl *ctrl) { int rc = 0, c = 0; struct hfi_device *hdev; struct msm_vidc_inst *inst = container_of(ctrl->handler, struct msm_vidc_inst, ctrl_handler); if (!inst || !inst->core || !inst->core->device) { if (!inst) { dprintk(VIDC_ERR, "%s invalid parameters", __func__); return -EINVAL; } Loading @@ -2062,10 +2059,6 @@ static int msm_venc_op_s_ctrl(struct v4l2_ctrl *ctrl) goto failed_open_done; } hdev = inst->core->device; inst->capability.pixelprocess_capabilities = call_hfi_op(hdev, get_core_capabilities); for (c = 0; c < ctrl->ncontrols; ++c) { if (ctrl->cluster[c]->is_new) { struct v4l2_ctrl *temp = ctrl->cluster[c]; Loading Loading @@ -2403,8 +2396,6 @@ int msm_venc_s_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f) dprintk(VIDC_ERR, "Failed to open instance\n"); goto exit; } inst->capability.pixelprocess_capabilities = call_hfi_op(hdev, get_core_capabilities); frame_sz.width = inst->prop.width[CAPTURE_PORT]; frame_sz.height = inst->prop.height[CAPTURE_PORT]; frame_sz.buffer_type = HAL_BUFFER_OUTPUT; Loading drivers/media/platform/msm/vidc/msm_vidc_common.c +9 −3 Original line number Diff line number Diff line Loading @@ -426,16 +426,20 @@ static void handle_session_init_done(enum command_response cmd, void *data) { struct msm_vidc_cb_cmd_done *response = data; struct msm_vidc_inst *inst = NULL; struct hfi_device *hdev; if (response) { struct vidc_hal_session_init_done *session_init_done = (struct vidc_hal_session_init_done *) response->data; inst = (struct msm_vidc_inst *)response->session_id; if (!inst) { dprintk(VIDC_ERR, "%s: invalid input parameters", __func__); if (!inst || !inst->core || !inst->core->device) { dprintk(VIDC_ERR, "%s invalid parameters", __func__); return; } hdev = inst->core->device; if (!response->status && session_init_done) { inst->capability.width = session_init_done->width; inst->capability.height = session_init_done->height; Loading @@ -443,6 +447,8 @@ static void handle_session_init_done(enum command_response cmd, void *data) session_init_done->frame_rate; inst->capability.scale_x = session_init_done->scale_x; inst->capability.scale_y = session_init_done->scale_y; inst->capability.pixelprocess_capabilities = call_hfi_op(hdev, get_core_capabilities); inst->capability.capability_set = true; inst->capability.buffer_mode[CAPTURE_PORT] = session_init_done->alloc_mode_out; Loading drivers/media/platform/msm/vidc/venus_hfi.c +31 −4 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <mach/ocmem.h> #include <mach/scm.h> #include <mach/subsystem_restart.h> #include <mach/msm_smem.h> #include <asm/memory.h> #include "hfi_packetization.h" #include "venus_hfi.h" Loading Loading @@ -3526,10 +3527,36 @@ int venus_hfi_get_stride_scanline(int color_fmt, int venus_hfi_get_core_capabilities(void) { return HAL_VIDEO_ENCODER_ROTATION_CAPABILITY | int i = 0, rc = 0, j = 0, venus_version_length = 0; u32 smem_block_size = 0; u8 *smem_table_ptr; char version[256]; char venus_version[] = "VIDEO.VE.1.4"; u8 version_info[256]; const u32 smem_image_index_venus = 14 * 128; smem_table_ptr = smem_get_entry(SMEM_IMAGE_VERSION_TABLE, &smem_block_size); if (smem_table_ptr && ((smem_image_index_venus + 128) <= smem_block_size)) memcpy(version_info, smem_table_ptr + smem_image_index_venus, 128); while (version_info[i++] != 'V' && i < 128) ; venus_version_length = strlen(venus_version); for (i--, j = 0; i < 128 && j < venus_version_length; i++) version[j++] = version_info[i]; version[venus_version_length] = '\0'; dprintk(VIDC_DBG, "F/W version retrieved : %s\n", version); if (strcmp((const char *)version, (const char *)venus_version) == 0) rc = HAL_VIDEO_ENCODER_ROTATION_CAPABILITY | HAL_VIDEO_ENCODER_SCALING_CAPABILITY | HAL_VIDEO_ENCODER_DEINTERLACE_CAPABILITY | HAL_VIDEO_DECODER_MULTI_STREAM_CAPABILITY; return rc; } int venus_hfi_capability_check(u32 fourcc, u32 width, Loading Loading
drivers/media/platform/msm/vidc/hfi_response_handler.c +1 −1 Original line number Diff line number Diff line Loading @@ -1209,7 +1209,7 @@ void hfi_process_sys_property_info( version[i] = ' '; } version[i] = '\0'; dprintk(VIDC_INFO, "F/W version: %s\n", version); dprintk(VIDC_DBG, "F/W version: %s\n", version); } smem_table_ptr = smem_get_entry(SMEM_IMAGE_VERSION_TABLE, Loading
drivers/media/platform/msm/vidc/msm_venc.c +1 −10 Original line number Diff line number Diff line Loading @@ -919,8 +919,6 @@ static int msm_venc_queue_setup(struct vb2_queue *q, "Failed to get buffer requirements: %d\n", rc); break; } inst->capability.pixelprocess_capabilities = call_hfi_op(hdev, get_core_capabilities); *num_planes = 1; mutex_lock(&inst->lock); *num_buffers = inst->buff_req.buffer[0].buffer_count_actual = Loading Loading @@ -2044,12 +2042,11 @@ static int msm_venc_op_s_ctrl(struct v4l2_ctrl *ctrl) { int rc = 0, c = 0; struct hfi_device *hdev; struct msm_vidc_inst *inst = container_of(ctrl->handler, struct msm_vidc_inst, ctrl_handler); if (!inst || !inst->core || !inst->core->device) { if (!inst) { dprintk(VIDC_ERR, "%s invalid parameters", __func__); return -EINVAL; } Loading @@ -2062,10 +2059,6 @@ static int msm_venc_op_s_ctrl(struct v4l2_ctrl *ctrl) goto failed_open_done; } hdev = inst->core->device; inst->capability.pixelprocess_capabilities = call_hfi_op(hdev, get_core_capabilities); for (c = 0; c < ctrl->ncontrols; ++c) { if (ctrl->cluster[c]->is_new) { struct v4l2_ctrl *temp = ctrl->cluster[c]; Loading Loading @@ -2403,8 +2396,6 @@ int msm_venc_s_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f) dprintk(VIDC_ERR, "Failed to open instance\n"); goto exit; } inst->capability.pixelprocess_capabilities = call_hfi_op(hdev, get_core_capabilities); frame_sz.width = inst->prop.width[CAPTURE_PORT]; frame_sz.height = inst->prop.height[CAPTURE_PORT]; frame_sz.buffer_type = HAL_BUFFER_OUTPUT; Loading
drivers/media/platform/msm/vidc/msm_vidc_common.c +9 −3 Original line number Diff line number Diff line Loading @@ -426,16 +426,20 @@ static void handle_session_init_done(enum command_response cmd, void *data) { struct msm_vidc_cb_cmd_done *response = data; struct msm_vidc_inst *inst = NULL; struct hfi_device *hdev; if (response) { struct vidc_hal_session_init_done *session_init_done = (struct vidc_hal_session_init_done *) response->data; inst = (struct msm_vidc_inst *)response->session_id; if (!inst) { dprintk(VIDC_ERR, "%s: invalid input parameters", __func__); if (!inst || !inst->core || !inst->core->device) { dprintk(VIDC_ERR, "%s invalid parameters", __func__); return; } hdev = inst->core->device; if (!response->status && session_init_done) { inst->capability.width = session_init_done->width; inst->capability.height = session_init_done->height; Loading @@ -443,6 +447,8 @@ static void handle_session_init_done(enum command_response cmd, void *data) session_init_done->frame_rate; inst->capability.scale_x = session_init_done->scale_x; inst->capability.scale_y = session_init_done->scale_y; inst->capability.pixelprocess_capabilities = call_hfi_op(hdev, get_core_capabilities); inst->capability.capability_set = true; inst->capability.buffer_mode[CAPTURE_PORT] = session_init_done->alloc_mode_out; Loading
drivers/media/platform/msm/vidc/venus_hfi.c +31 −4 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <mach/ocmem.h> #include <mach/scm.h> #include <mach/subsystem_restart.h> #include <mach/msm_smem.h> #include <asm/memory.h> #include "hfi_packetization.h" #include "venus_hfi.h" Loading Loading @@ -3526,10 +3527,36 @@ int venus_hfi_get_stride_scanline(int color_fmt, int venus_hfi_get_core_capabilities(void) { return HAL_VIDEO_ENCODER_ROTATION_CAPABILITY | int i = 0, rc = 0, j = 0, venus_version_length = 0; u32 smem_block_size = 0; u8 *smem_table_ptr; char version[256]; char venus_version[] = "VIDEO.VE.1.4"; u8 version_info[256]; const u32 smem_image_index_venus = 14 * 128; smem_table_ptr = smem_get_entry(SMEM_IMAGE_VERSION_TABLE, &smem_block_size); if (smem_table_ptr && ((smem_image_index_venus + 128) <= smem_block_size)) memcpy(version_info, smem_table_ptr + smem_image_index_venus, 128); while (version_info[i++] != 'V' && i < 128) ; venus_version_length = strlen(venus_version); for (i--, j = 0; i < 128 && j < venus_version_length; i++) version[j++] = version_info[i]; version[venus_version_length] = '\0'; dprintk(VIDC_DBG, "F/W version retrieved : %s\n", version); if (strcmp((const char *)version, (const char *)venus_version) == 0) rc = HAL_VIDEO_ENCODER_ROTATION_CAPABILITY | HAL_VIDEO_ENCODER_SCALING_CAPABILITY | HAL_VIDEO_ENCODER_DEINTERLACE_CAPABILITY | HAL_VIDEO_DECODER_MULTI_STREAM_CAPABILITY; return rc; } int venus_hfi_capability_check(u32 fourcc, u32 width, Loading