Browse Source

Merge "msm: camera: isp: Enable line done config for SFE RDI0-2" into camera-kernel.lnx.5.0

Savita Patted 3 years ago
parent
commit
b2f122bb8b

+ 3 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/cam_sfe680.h

@@ -948,6 +948,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = {
 			.mid[0]        = 25,
 			.num_wm        = 1,
 			.wm_idx        = 8,
+			.en_line_done  = 1,
 			.name          = "RDI_0",
 		},
 		{
@@ -958,6 +959,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = {
 			.mid[0]        = 26,
 			.num_wm        = 1,
 			.wm_idx        = 9,
+			.en_line_done  = 1,
 			.name          = "RDI_1",
 		},
 		{
@@ -968,6 +970,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = {
 			.mid[0]        = 27,
 			.num_wm        = 1,
 			.wm_idx        = 10,
+			.en_line_done  = 1,
 			.name          = "RDI_2",
 		},
 		{

+ 3 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/cam_sfe780.h

@@ -1295,6 +1295,7 @@ static struct cam_sfe_bus_wr_hw_info sfe780_bus_wr_hw_info = {
 			.mid[0]        = 45,
 			.num_wm        = 1,
 			.wm_idx        = 11,
+			.en_line_done  = 1,
 			.name          = "RDI_0",
 		},
 		{
@@ -1305,6 +1306,7 @@ static struct cam_sfe_bus_wr_hw_info sfe780_bus_wr_hw_info = {
 			.mid[0]        = 46,
 			.num_wm        = 1,
 			.wm_idx        = 12,
+			.en_line_done  = 1,
 			.name          = "RDI_1",
 		},
 		{
@@ -1315,6 +1317,7 @@ static struct cam_sfe_bus_wr_hw_info sfe780_bus_wr_hw_info = {
 			.mid[0]        = 47,
 			.num_wm        = 1,
 			.wm_idx        = 13,
+			.en_line_done  = 1,
 			.name          = "RDI_2",
 		},
 		{

+ 7 - 4
drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.c

@@ -141,6 +141,7 @@ struct cam_sfe_bus_wr_wm_resource_data {
 	bool                 init_cfg_done;
 	bool                 hfr_cfg_done;
 	bool                 use_wm_pack;
+	bool                 en_line_done;
 };
 
 struct cam_sfe_bus_wr_comp_grp_data {
@@ -863,8 +864,7 @@ static int cam_sfe_bus_start_wm(struct cam_isp_resource_node *wm_res)
 		common_data->mem_base + rsrc_data->hw_regs->packer_cfg);
 
 	/* configure line_done_cfg for RDI0-2 */
-	if ((rsrc_data->index >= 8) &&
-		(rsrc_data->index <= 10)) {
+	if (rsrc_data->en_line_done) {
 		CAM_DBG(CAM_SFE, "configure line_done_cfg 0x%x for WM: %d",
 			rsrc_data->common_data->line_done_cfg,
 			rsrc_data->index);
@@ -944,7 +944,8 @@ static int cam_sfe_bus_init_wm_resource(uint32_t index,
 	struct cam_sfe_bus_wr_priv      *bus_priv,
 	struct cam_sfe_bus_wr_hw_info   *hw_info,
 	struct cam_isp_resource_node    *wm_res,
-	uint8_t                         *wm_name)
+	uint8_t                         *wm_name,
+	bool                             en_line_done)
 {
 	struct cam_sfe_bus_wr_wm_resource_data *rsrc_data;
 
@@ -957,6 +958,7 @@ static int cam_sfe_bus_init_wm_resource(uint32_t index,
 	wm_res->res_priv = rsrc_data;
 
 	rsrc_data->index = index;
+	rsrc_data->en_line_done = en_line_done;
 	rsrc_data->hw_regs = &hw_info->bus_client_reg[index];
 	rsrc_data->common_data = &bus_priv->common_data;
 
@@ -1943,7 +1945,8 @@ static int cam_sfe_bus_init_sfe_out_resource(
 			hw_info->sfe_out_hw_info[index].wm_idx,
 			bus_priv, hw_info,
 			&rsrc_data->wm_res[i],
-			hw_info->sfe_out_hw_info[index].name);
+			hw_info->sfe_out_hw_info[index].name,
+			hw_info->sfe_out_hw_info[index].en_line_done);
 	if (rc < 0) {
 		CAM_ERR(CAM_SFE, "SFE:%d init WM:%d failed rc:%d",
 			bus_priv->common_data.core_index, i, rc);

+ 1 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.h

@@ -138,6 +138,7 @@ struct cam_sfe_bus_sfe_out_hw_info {
 	uint32_t                            mid[CAM_SFE_BUS_MAX_MID_PER_PORT];
 	uint32_t                            num_wm;
 	uint32_t                            wm_idx;
+	uint32_t                            en_line_done;
 	uint8_t                            *name;
 };