msm: camera: isp: Enable line done config for SFE RDI0-2

RDI0-2 clients are used in conjunction with fetch engine for
sHDR/FS enable line done for these clients. As opposed to
using WM index to enable this, update header to indicate
that this has to enabled for select clients.

CRs-Fixed: 3068277
Change-Id: I7ce4cbbddc9eb11174a39c4df93bc82e5413317f
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
Bu işleme şunda yer alıyor:
Karthik Anantha Ram
2021-11-02 15:56:28 -07:00
ebeveyn b06c540564
işleme 78bc40c73a
4 değiştirilmiş dosya ile 14 ekleme ve 4 silme

Dosyayı Görüntüle

@@ -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",
},
{

Dosyayı Görüntüle

@@ -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",
},
{

Dosyayı Görüntüle

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

Dosyayı Görüntüle

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