msm: camera: isp: Distinguish between write and read secure mode cmds
Add unique cmd type to get fetch engine mode [secure or not]. Currently since there is no distinction, when trying to get SFE RM mode the call is directed to SFE write. CRs-Fixed: 3013134 Change-Id: I4d88ba8f88cd361603a5e113e6cfa10b7b39dfb9 Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
Cette révision appartient à :
@@ -866,12 +866,12 @@ int cam_isp_add_io_buffers(
|
||||
|
||||
hdl = io_cfg[i].mem_handle[plane_id];
|
||||
secure_mode.cmd_type =
|
||||
CAM_ISP_HW_CMD_GET_SECURE_MODE;
|
||||
CAM_ISP_HW_CMD_GET_WM_SECURE_MODE;
|
||||
secure_mode.res = res;
|
||||
secure_mode.data = (void *)&mode;
|
||||
rc = res->hw_intf->hw_ops.process_cmd(
|
||||
res->hw_intf->hw_priv,
|
||||
CAM_ISP_HW_CMD_GET_SECURE_MODE,
|
||||
CAM_ISP_HW_CMD_GET_WM_SECURE_MODE,
|
||||
&secure_mode,
|
||||
sizeof(
|
||||
struct cam_isp_hw_get_cmd_update));
|
||||
@@ -1026,12 +1026,12 @@ int cam_isp_add_io_buffers(
|
||||
|
||||
hdl = io_cfg[i].mem_handle[plane_id];
|
||||
secure_mode.cmd_type =
|
||||
CAM_ISP_HW_CMD_GET_SECURE_MODE;
|
||||
CAM_ISP_HW_CMD_GET_RM_SECURE_MODE;
|
||||
secure_mode.res = res;
|
||||
secure_mode.data = (void *)&mode;
|
||||
rc = res->hw_intf->hw_ops.process_cmd(
|
||||
res->hw_intf->hw_priv,
|
||||
CAM_ISP_HW_CMD_GET_SECURE_MODE,
|
||||
CAM_ISP_HW_CMD_GET_RM_SECURE_MODE,
|
||||
&secure_mode,
|
||||
sizeof(
|
||||
struct cam_isp_hw_get_cmd_update));
|
||||
|
@@ -141,7 +141,8 @@ enum cam_isp_hw_cmd_type {
|
||||
CAM_ISP_HW_CMD_GET_REG_UPDATE,
|
||||
CAM_ISP_HW_CMD_GET_HFR_UPDATE,
|
||||
CAM_ISP_HW_CMD_GET_HFR_UPDATE_RM,
|
||||
CAM_ISP_HW_CMD_GET_SECURE_MODE,
|
||||
CAM_ISP_HW_CMD_GET_WM_SECURE_MODE,
|
||||
CAM_ISP_HW_CMD_GET_RM_SECURE_MODE,
|
||||
CAM_ISP_HW_CMD_STRIPE_UPDATE,
|
||||
CAM_ISP_HW_CMD_CLOCK_UPDATE,
|
||||
CAM_ISP_HW_CMD_BW_UPDATE,
|
||||
|
@@ -333,7 +333,7 @@ int cam_sfe_process_cmd(void *hw_priv, uint32_t cmd_type,
|
||||
case CAM_ISP_HW_CMD_GET_HFR_UPDATE:
|
||||
case CAM_ISP_HW_CMD_STRIPE_UPDATE:
|
||||
case CAM_ISP_HW_CMD_WM_CONFIG_UPDATE:
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_WM_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_QUERY_BUS_CAP:
|
||||
case CAM_ISP_HW_SFE_SYS_CACHE_WM_CONFIG:
|
||||
case CAM_ISP_HW_CMD_WM_BW_LIMIT_CONFIG:
|
||||
@@ -347,6 +347,7 @@ int cam_sfe_process_cmd(void *hw_priv, uint32_t cmd_type,
|
||||
case CAM_ISP_HW_CMD_FE_UPDATE_BUS_RD:
|
||||
case CAM_ISP_HW_SFE_SYS_CACHE_RM_CONFIG:
|
||||
case CAM_ISP_HW_CMD_RM_ENABLE_DISABLE:
|
||||
case CAM_ISP_HW_CMD_GET_RM_SECURE_MODE:
|
||||
rc = core_info->sfe_bus_rd->hw_ops.process_cmd(
|
||||
core_info->sfe_bus_rd->bus_priv, cmd_type,
|
||||
cmd_args, arg_size);
|
||||
|
@@ -1648,7 +1648,7 @@ static int cam_sfe_bus_rd_process_cmd(
|
||||
case CAM_ISP_HW_CMD_BUF_UPDATE_RM:
|
||||
rc = cam_sfe_bus_rd_config_rm(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_RM_SECURE_MODE:
|
||||
rc = cam_sfe_bus_rd_get_secure_mode(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_FE_UPDATE_BUS_RD:
|
||||
|
@@ -201,11 +201,6 @@ struct cam_sfe_bus_wr_priv {
|
||||
struct cam_sfe_bus_sfe_out_hw_info *sfe_out_hw_info;
|
||||
};
|
||||
|
||||
static int cam_sfe_bus_wr_process_cmd(
|
||||
struct cam_isp_resource_node *priv,
|
||||
uint32_t cmd_type, void *cmd_args,
|
||||
uint32_t arg_size);
|
||||
|
||||
static int cam_sfe_bus_subscribe_error_irq(
|
||||
struct cam_sfe_bus_wr_priv *bus_priv);
|
||||
|
||||
@@ -1924,7 +1919,7 @@ static int cam_sfe_bus_init_sfe_out_resource(
|
||||
cam_sfe_bus_handle_sfe_out_done_top_half;
|
||||
sfe_out->bottom_half_handler =
|
||||
cam_sfe_bus_handle_sfe_out_done_bottom_half;
|
||||
sfe_out->process_cmd = cam_sfe_bus_wr_process_cmd;
|
||||
sfe_out->process_cmd = NULL;
|
||||
sfe_out->hw_intf = bus_priv->common_data.hw_intf;
|
||||
sfe_out->irq_handle = 0;
|
||||
|
||||
@@ -2959,14 +2954,6 @@ static int cam_sfe_bus_wr_deinit_hw(void *hw_priv,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __cam_sfe_bus_wr_process_cmd(
|
||||
void *priv, uint32_t cmd_type,
|
||||
void *cmd_args, uint32_t arg_size)
|
||||
{
|
||||
return cam_sfe_bus_wr_process_cmd(priv, cmd_type,
|
||||
cmd_args, arg_size);
|
||||
}
|
||||
|
||||
static int cam_sfe_bus_wr_cache_config(
|
||||
void *priv, void *cmd_args,
|
||||
uint32_t arg_size)
|
||||
@@ -3030,9 +3017,8 @@ static int cam_sfe_bus_wr_set_debug_cfg(
|
||||
}
|
||||
|
||||
static int cam_sfe_bus_wr_process_cmd(
|
||||
struct cam_isp_resource_node *priv,
|
||||
uint32_t cmd_type, void *cmd_args,
|
||||
uint32_t arg_size)
|
||||
void *priv, uint32_t cmd_type,
|
||||
void *cmd_args, uint32_t arg_size)
|
||||
{
|
||||
int rc = -EINVAL;
|
||||
struct cam_sfe_bus_wr_priv *bus_priv;
|
||||
@@ -3052,7 +3038,7 @@ static int cam_sfe_bus_wr_process_cmd(
|
||||
case CAM_ISP_HW_CMD_GET_HFR_UPDATE:
|
||||
rc = cam_sfe_bus_wr_update_hfr(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_WM_SECURE_MODE:
|
||||
rc = cam_sfe_bus_wr_get_secure_mode(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_STRIPE_UPDATE:
|
||||
@@ -3240,7 +3226,7 @@ int cam_sfe_bus_wr_init(
|
||||
sfe_bus_local->hw_ops.deinit = cam_sfe_bus_wr_deinit_hw;
|
||||
sfe_bus_local->top_half_handler = NULL;
|
||||
sfe_bus_local->bottom_half_handler = NULL;
|
||||
sfe_bus_local->hw_ops.process_cmd = __cam_sfe_bus_wr_process_cmd;
|
||||
sfe_bus_local->hw_ops.process_cmd = cam_sfe_bus_wr_process_cmd;
|
||||
bus_priv->bus_irq_handle = 0;
|
||||
bus_priv->common_data.sfe_debug_cfg = 0;
|
||||
*sfe_bus = sfe_bus_local;
|
||||
|
@@ -2448,7 +2448,7 @@ static int cam_tfe_bus_process_cmd(void *priv,
|
||||
case CAM_ISP_HW_CMD_GET_HFR_UPDATE:
|
||||
rc = cam_tfe_bus_update_hfr(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_WM_SECURE_MODE:
|
||||
rc = cam_tfe_bus_get_secure_mode(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_STRIPE_UPDATE:
|
||||
|
@@ -2919,7 +2919,7 @@ int cam_tfe_process_cmd(void *hw_priv, uint32_t cmd_type,
|
||||
case CAM_ISP_HW_CMD_GET_HFR_UPDATE:
|
||||
case CAM_ISP_HW_CMD_STRIPE_UPDATE:
|
||||
case CAM_ISP_HW_CMD_STOP_BUS_ERR_IRQ:
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_WM_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_IS_CONSUMED_ADDR_SUPPORT:
|
||||
case CAM_ISP_HW_CMD_GET_RES_FOR_MID:
|
||||
case CAM_ISP_HW_CMD_DUMP_BUS_INFO:
|
||||
|
@@ -528,7 +528,7 @@ int cam_vfe_process_cmd(void *hw_priv, uint32_t cmd_type,
|
||||
case CAM_ISP_HW_CMD_UBWC_UPDATE:
|
||||
case CAM_ISP_HW_CMD_UBWC_UPDATE_V2:
|
||||
case CAM_ISP_HW_CMD_WM_CONFIG_UPDATE:
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_WM_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_UNMASK_BUS_WR_IRQ:
|
||||
case CAM_ISP_HW_CMD_DUMP_BUS_INFO:
|
||||
case CAM_ISP_HW_CMD_GET_RES_FOR_MID:
|
||||
|
@@ -1187,7 +1187,7 @@ static int cam_vfe_bus_rd_process_cmd(
|
||||
case CAM_ISP_HW_CMD_GET_HFR_UPDATE_RM:
|
||||
rc = cam_vfe_bus_rd_update_hfr(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_RM_SECURE_MODE:
|
||||
rc = cam_vfe_bus_rd_get_secure_mode(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_FE_UPDATE_BUS_RD:
|
||||
|
@@ -3797,7 +3797,7 @@ static int cam_vfe_bus_process_cmd(
|
||||
case CAM_ISP_HW_CMD_GET_HFR_UPDATE:
|
||||
rc = cam_vfe_bus_update_hfr(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_WM_SECURE_MODE:
|
||||
rc = cam_vfe_bus_get_secure_mode(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_STRIPE_UPDATE:
|
||||
|
@@ -3843,7 +3843,7 @@ static int cam_vfe_bus_ver3_process_cmd(
|
||||
case CAM_ISP_HW_CMD_GET_HFR_UPDATE:
|
||||
rc = cam_vfe_bus_ver3_update_hfr(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_GET_SECURE_MODE:
|
||||
case CAM_ISP_HW_CMD_GET_WM_SECURE_MODE:
|
||||
rc = cam_vfe_bus_ver3_get_secure_mode(priv, cmd_args, arg_size);
|
||||
break;
|
||||
case CAM_ISP_HW_CMD_STRIPE_UPDATE:
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur