Loading drivers/cam_icp/fw_inc/hfi_session_defs.h +17 −3 Original line number Original line Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */ /* /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ */ #ifndef _CAM_HFI_SESSION_DEFS_H #ifndef _CAM_HFI_SESSION_DEFS_H Loading Loading @@ -272,10 +272,20 @@ enum hfi_ipe_io_images { IPE_OUTPUT_IMAGE_DS4_REF, IPE_OUTPUT_IMAGE_DS4_REF, IPE_OUTPUT_IMAGE_DS16_REF, IPE_OUTPUT_IMAGE_DS16_REF, IPE_OUTPUT_IMAGE_DS64_REF, IPE_OUTPUT_IMAGE_DS64_REF, IPE_INPUT2_IMAGE_FULL, IPE_INPUT2_IMAGE_DSX, IPE_INPUT_OUTPUT_SCRATCHBUFFER, IPE_INPUT_IMAGE_FIRST = IPE_INPUT_IMAGE_FULL, IPE_INPUT_IMAGE_FIRST = IPE_INPUT_IMAGE_FULL, IPE_INPUT_IMAGE_LAST = IPE_INPUT_IMAGE_DS64_REF, IPE_INPUT_IMAGE_LAST = IPE_INPUT_IMAGE_DS64_REF, IPE_INPUT_IMAGE_REF_FIRST = IPE_INPUT_IMAGE_FULL_REF, IPE_INPUT_IMAGE_REF_LAST = IPE_INPUT_IMAGE_DS64_REF, IPE_OUTPUT_IMAGE_FIRST = IPE_OUTPUT_IMAGE_DISPLAY, IPE_OUTPUT_IMAGE_FIRST = IPE_OUTPUT_IMAGE_DISPLAY, IPE_OUTPUT_IMAGE_LAST = IPE_OUTPUT_IMAGE_DS64_REF, IPE_OUTPUT_IMAGE_LAST = IPE_OUTPUT_IMAGE_DS64_REF, IPE_OUTPUT_IMAGE_REF_FIRST = IPE_OUTPUT_IMAGE_FULL_REF, IPE_OUTPUT_IMAGE_REF_LAST = IPE_OUTPUT_IMAGE_DS64_REF, IPE_INPUT2_IMAGE_FIRST = IPE_INPUT2_IMAGE_FULL, IPE_INPUT2_IMAGE_LAST = IPE_INPUT2_IMAGE_DSX, IPE_INPUT_OUTPUT_IMAGE_LAST = IPE_INPUT_OUTPUT_SCRATCHBUFFER, IPE_IO_IMAGES_MAX IPE_IO_IMAGES_MAX }; }; Loading @@ -300,7 +310,6 @@ struct frame_buffer { } __packed; } __packed; struct bps_frame_process_data { struct bps_frame_process_data { struct frame_buffer buffers[BPS_IO_IMAGES_MAX]; uint32_t max_num_cores; uint32_t max_num_cores; uint32_t target_time; uint32_t target_time; uint32_t ubwc_stats_buffer_addr; uint32_t ubwc_stats_buffer_addr; Loading @@ -311,6 +320,7 @@ struct bps_frame_process_data { uint32_t strip_lib_out_addr; uint32_t strip_lib_out_addr; uint32_t cdm_prog_addr; uint32_t cdm_prog_addr; uint32_t request_id; uint32_t request_id; struct frame_buffer buffers[BPS_IO_IMAGES_MAX]; }; }; enum hfi_ipe_image_format { enum hfi_ipe_image_format { Loading Loading @@ -465,7 +475,6 @@ struct ica_stab_params { struct frame_set { struct frame_set { struct frame_buffer buffers[IPE_IO_IMAGES_MAX]; struct frame_buffer buffers[IPE_IO_IMAGES_MAX]; struct ica_stab_params ica_params; uint32_t cdm_ica1_addr; uint32_t cdm_ica1_addr; uint32_t cdm_ica2_addr; uint32_t cdm_ica2_addr; } __packed; } __packed; Loading @@ -492,6 +501,11 @@ struct ipe_frame_process_data { uint32_t cdm_tf_ds4; uint32_t cdm_tf_ds4; uint32_t cdm_tf_ds16; uint32_t cdm_tf_ds16; uint32_t cdm_tf_ds64; uint32_t cdm_tf_ds64; uint32_t cdm_dsx_dc4; uint32_t cdm_dsx_dc16; uint32_t cdm_dsz_dc64; uint32_t cdm_mfhdr_full_pass; uint32_t cdm_mfhdr_dcx; uint32_t request_id; uint32_t request_id; uint32_t frames_in_batch; uint32_t frames_in_batch; struct frame_set framesets[MAX_HFR_GROUP]; struct frame_set framesets[MAX_HFR_GROUP]; Loading drivers/cam_icp/fw_inc/hfi_sys_defs.h +15 −0 Original line number Original line Diff line number Diff line Loading @@ -67,6 +67,21 @@ #define HFI_CMD_SYS_PING (HFI_CMD_COMMON_START + 0x5) #define HFI_CMD_SYS_PING (HFI_CMD_COMMON_START + 0x5) #define HFI_CMD_SYS_RESET (HFI_CMD_COMMON_START + 0x6) #define HFI_CMD_SYS_RESET (HFI_CMD_COMMON_START + 0x6) /* General Frame process errors */ #define CAMERAICP_SUCCESS 0 #define CAMERAICP_EFAILED 1 #define CAMERAICP_ENOMEMORY 2 #define CAMERAICP_EBADSTATE 3 #define CAMERAICP_EBADPARM 4 #define CAMERAICP_EBADITEM 5 #define CAMERAICP_EINVALIDFORMAT 6 #define CAMERAICP_EUNSUPPORTED 7 #define CAMERAICP_EOUTOFBOUND 8 #define CAMERAICP_ETIMEDOUT 9 #define CAMERAICP_EABORTED 10 #define CAMERAICP_EHWVIOLATION 11 #define CAMERAICP_ECDMERROR 12 /* Core level commands */ /* Core level commands */ /* IPE/BPS core Commands */ /* IPE/BPS core Commands */ #define HFI_CMD_IPE_BPS_COMMON_START \ #define HFI_CMD_IPE_BPS_COMMON_START \ Loading drivers/cam_icp/icp_hw/icp_hw_mgr/cam_icp_hw_mgr.c +15 −7 Original line number Original line Diff line number Diff line Loading @@ -1943,10 +1943,20 @@ static int cam_icp_mgr_handle_frame_process(uint32_t *msg_ptr, int flag) } } idx = i; idx = i; if (flag == ICP_FRAME_PROCESS_FAILURE) if (flag == ICP_FRAME_PROCESS_FAILURE) { CAM_ERR(CAM_ICP, "Done with error: ctx_id %d req %llu dev %d", if (ioconfig_ack->err_type == CAMERAICP_EABORTED) CAM_WARN(CAM_ICP, "ctx_id %d req %llu dev %d has been aborted[flushed]", ctx_data->ctx_id, request_id, ctx_data->ctx_id, request_id, ctx_data->icp_dev_acquire_info->dev_type); ctx_data->icp_dev_acquire_info->dev_type); else CAM_ERR(CAM_ICP, "Done with error: %u on ctx_id %d dev %d for req %llu", ioconfig_ack->err_type, ctx_data->ctx_id, ctx_data->icp_dev_acquire_info->dev_type, request_id); } buf_data.request_id = hfi_frame_process->request_id[idx]; buf_data.request_id = hfi_frame_process->request_id[idx]; ctx_data->ctxt_event_cb(ctx_data->context_priv, flag, &buf_data); ctx_data->ctxt_event_cb(ctx_data->context_priv, flag, &buf_data); Loading Loading @@ -1975,9 +1985,7 @@ static int cam_icp_mgr_process_msg_frame_process(uint32_t *msg_ptr) } } ioconfig_ack = (struct hfi_msg_ipebps_async_ack *)msg_ptr; ioconfig_ack = (struct hfi_msg_ipebps_async_ack *)msg_ptr; if (ioconfig_ack->err_type != HFI_ERR_SYS_NONE) { if (ioconfig_ack->err_type != CAMERAICP_SUCCESS) { CAM_ERR(CAM_ICP, "failed with error : %u", ioconfig_ack->err_type); cam_icp_mgr_handle_frame_process(msg_ptr, cam_icp_mgr_handle_frame_process(msg_ptr, ICP_FRAME_PROCESS_FAILURE); ICP_FRAME_PROCESS_FAILURE); return -EIO; return -EIO; Loading Loading
drivers/cam_icp/fw_inc/hfi_session_defs.h +17 −3 Original line number Original line Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */ /* /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ */ #ifndef _CAM_HFI_SESSION_DEFS_H #ifndef _CAM_HFI_SESSION_DEFS_H Loading Loading @@ -272,10 +272,20 @@ enum hfi_ipe_io_images { IPE_OUTPUT_IMAGE_DS4_REF, IPE_OUTPUT_IMAGE_DS4_REF, IPE_OUTPUT_IMAGE_DS16_REF, IPE_OUTPUT_IMAGE_DS16_REF, IPE_OUTPUT_IMAGE_DS64_REF, IPE_OUTPUT_IMAGE_DS64_REF, IPE_INPUT2_IMAGE_FULL, IPE_INPUT2_IMAGE_DSX, IPE_INPUT_OUTPUT_SCRATCHBUFFER, IPE_INPUT_IMAGE_FIRST = IPE_INPUT_IMAGE_FULL, IPE_INPUT_IMAGE_FIRST = IPE_INPUT_IMAGE_FULL, IPE_INPUT_IMAGE_LAST = IPE_INPUT_IMAGE_DS64_REF, IPE_INPUT_IMAGE_LAST = IPE_INPUT_IMAGE_DS64_REF, IPE_INPUT_IMAGE_REF_FIRST = IPE_INPUT_IMAGE_FULL_REF, IPE_INPUT_IMAGE_REF_LAST = IPE_INPUT_IMAGE_DS64_REF, IPE_OUTPUT_IMAGE_FIRST = IPE_OUTPUT_IMAGE_DISPLAY, IPE_OUTPUT_IMAGE_FIRST = IPE_OUTPUT_IMAGE_DISPLAY, IPE_OUTPUT_IMAGE_LAST = IPE_OUTPUT_IMAGE_DS64_REF, IPE_OUTPUT_IMAGE_LAST = IPE_OUTPUT_IMAGE_DS64_REF, IPE_OUTPUT_IMAGE_REF_FIRST = IPE_OUTPUT_IMAGE_FULL_REF, IPE_OUTPUT_IMAGE_REF_LAST = IPE_OUTPUT_IMAGE_DS64_REF, IPE_INPUT2_IMAGE_FIRST = IPE_INPUT2_IMAGE_FULL, IPE_INPUT2_IMAGE_LAST = IPE_INPUT2_IMAGE_DSX, IPE_INPUT_OUTPUT_IMAGE_LAST = IPE_INPUT_OUTPUT_SCRATCHBUFFER, IPE_IO_IMAGES_MAX IPE_IO_IMAGES_MAX }; }; Loading @@ -300,7 +310,6 @@ struct frame_buffer { } __packed; } __packed; struct bps_frame_process_data { struct bps_frame_process_data { struct frame_buffer buffers[BPS_IO_IMAGES_MAX]; uint32_t max_num_cores; uint32_t max_num_cores; uint32_t target_time; uint32_t target_time; uint32_t ubwc_stats_buffer_addr; uint32_t ubwc_stats_buffer_addr; Loading @@ -311,6 +320,7 @@ struct bps_frame_process_data { uint32_t strip_lib_out_addr; uint32_t strip_lib_out_addr; uint32_t cdm_prog_addr; uint32_t cdm_prog_addr; uint32_t request_id; uint32_t request_id; struct frame_buffer buffers[BPS_IO_IMAGES_MAX]; }; }; enum hfi_ipe_image_format { enum hfi_ipe_image_format { Loading Loading @@ -465,7 +475,6 @@ struct ica_stab_params { struct frame_set { struct frame_set { struct frame_buffer buffers[IPE_IO_IMAGES_MAX]; struct frame_buffer buffers[IPE_IO_IMAGES_MAX]; struct ica_stab_params ica_params; uint32_t cdm_ica1_addr; uint32_t cdm_ica1_addr; uint32_t cdm_ica2_addr; uint32_t cdm_ica2_addr; } __packed; } __packed; Loading @@ -492,6 +501,11 @@ struct ipe_frame_process_data { uint32_t cdm_tf_ds4; uint32_t cdm_tf_ds4; uint32_t cdm_tf_ds16; uint32_t cdm_tf_ds16; uint32_t cdm_tf_ds64; uint32_t cdm_tf_ds64; uint32_t cdm_dsx_dc4; uint32_t cdm_dsx_dc16; uint32_t cdm_dsz_dc64; uint32_t cdm_mfhdr_full_pass; uint32_t cdm_mfhdr_dcx; uint32_t request_id; uint32_t request_id; uint32_t frames_in_batch; uint32_t frames_in_batch; struct frame_set framesets[MAX_HFR_GROUP]; struct frame_set framesets[MAX_HFR_GROUP]; Loading
drivers/cam_icp/fw_inc/hfi_sys_defs.h +15 −0 Original line number Original line Diff line number Diff line Loading @@ -67,6 +67,21 @@ #define HFI_CMD_SYS_PING (HFI_CMD_COMMON_START + 0x5) #define HFI_CMD_SYS_PING (HFI_CMD_COMMON_START + 0x5) #define HFI_CMD_SYS_RESET (HFI_CMD_COMMON_START + 0x6) #define HFI_CMD_SYS_RESET (HFI_CMD_COMMON_START + 0x6) /* General Frame process errors */ #define CAMERAICP_SUCCESS 0 #define CAMERAICP_EFAILED 1 #define CAMERAICP_ENOMEMORY 2 #define CAMERAICP_EBADSTATE 3 #define CAMERAICP_EBADPARM 4 #define CAMERAICP_EBADITEM 5 #define CAMERAICP_EINVALIDFORMAT 6 #define CAMERAICP_EUNSUPPORTED 7 #define CAMERAICP_EOUTOFBOUND 8 #define CAMERAICP_ETIMEDOUT 9 #define CAMERAICP_EABORTED 10 #define CAMERAICP_EHWVIOLATION 11 #define CAMERAICP_ECDMERROR 12 /* Core level commands */ /* Core level commands */ /* IPE/BPS core Commands */ /* IPE/BPS core Commands */ #define HFI_CMD_IPE_BPS_COMMON_START \ #define HFI_CMD_IPE_BPS_COMMON_START \ Loading
drivers/cam_icp/icp_hw/icp_hw_mgr/cam_icp_hw_mgr.c +15 −7 Original line number Original line Diff line number Diff line Loading @@ -1943,10 +1943,20 @@ static int cam_icp_mgr_handle_frame_process(uint32_t *msg_ptr, int flag) } } idx = i; idx = i; if (flag == ICP_FRAME_PROCESS_FAILURE) if (flag == ICP_FRAME_PROCESS_FAILURE) { CAM_ERR(CAM_ICP, "Done with error: ctx_id %d req %llu dev %d", if (ioconfig_ack->err_type == CAMERAICP_EABORTED) CAM_WARN(CAM_ICP, "ctx_id %d req %llu dev %d has been aborted[flushed]", ctx_data->ctx_id, request_id, ctx_data->ctx_id, request_id, ctx_data->icp_dev_acquire_info->dev_type); ctx_data->icp_dev_acquire_info->dev_type); else CAM_ERR(CAM_ICP, "Done with error: %u on ctx_id %d dev %d for req %llu", ioconfig_ack->err_type, ctx_data->ctx_id, ctx_data->icp_dev_acquire_info->dev_type, request_id); } buf_data.request_id = hfi_frame_process->request_id[idx]; buf_data.request_id = hfi_frame_process->request_id[idx]; ctx_data->ctxt_event_cb(ctx_data->context_priv, flag, &buf_data); ctx_data->ctxt_event_cb(ctx_data->context_priv, flag, &buf_data); Loading Loading @@ -1975,9 +1985,7 @@ static int cam_icp_mgr_process_msg_frame_process(uint32_t *msg_ptr) } } ioconfig_ack = (struct hfi_msg_ipebps_async_ack *)msg_ptr; ioconfig_ack = (struct hfi_msg_ipebps_async_ack *)msg_ptr; if (ioconfig_ack->err_type != HFI_ERR_SYS_NONE) { if (ioconfig_ack->err_type != CAMERAICP_SUCCESS) { CAM_ERR(CAM_ICP, "failed with error : %u", ioconfig_ack->err_type); cam_icp_mgr_handle_frame_process(msg_ptr, cam_icp_mgr_handle_frame_process(msg_ptr, ICP_FRAME_PROCESS_FAILURE); ICP_FRAME_PROCESS_FAILURE); return -EIO; return -EIO; Loading