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 à :
Karthik Anantha Ram
2021-08-13 15:05:46 -07:00
Parent 2f6e1409db
révision 8f8c1e7293
11 fichiers modifiés avec 20 ajouts et 32 suppressions

Voir le fichier

@@ -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));

Voir le fichier

@@ -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,

Voir le fichier

@@ -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);

Voir le fichier

@@ -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:

Voir le fichier

@@ -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;

Voir le fichier

@@ -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:

Voir le fichier

@@ -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:

Voir le fichier

@@ -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:

Voir le fichier

@@ -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:

Voir le fichier

@@ -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:

Voir le fichier

@@ -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: