msm: camera: isp: Read back and update top debug cfg register
Top debug cfg register is getting reset while starting RDI resources. This commit adds the register data to RDI resources and reads back the register before updating the register. CRs-Fixed: 3207575 Change-Id: I4e149fc81cbfc60adb6d3bb842a1057e8202903f Signed-off-by: Gaurav Jindal <quic_gjindal@quicinc.com>
This commit is contained in:

committed by
Camera Software Integration

parent
4e26ffa4b6
commit
14dbd64192
@@ -1,6 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
|
||||
@@ -183,6 +184,7 @@ static struct cam_vfe_camif_lite_ver3_reg_data vfe480_camif_rdi_reg_data[3] = {
|
||||
.error_irq_mask2 = 0x20000,
|
||||
.subscribe_irq_mask1 = 0x30,
|
||||
.enable_diagnostic_hw = 0x1,
|
||||
.top_debug_cfg_en = 1,
|
||||
},
|
||||
{
|
||||
.extern_reg_update_shift = 0,
|
||||
@@ -196,6 +198,7 @@ static struct cam_vfe_camif_lite_ver3_reg_data vfe480_camif_rdi_reg_data[3] = {
|
||||
.error_irq_mask2 = 0x40000,
|
||||
.subscribe_irq_mask1 = 0x300,
|
||||
.enable_diagnostic_hw = 0x1,
|
||||
.top_debug_cfg_en = 1,
|
||||
},
|
||||
{
|
||||
.extern_reg_update_shift = 0,
|
||||
@@ -209,6 +212,7 @@ static struct cam_vfe_camif_lite_ver3_reg_data vfe480_camif_rdi_reg_data[3] = {
|
||||
.error_irq_mask2 = 0x80000,
|
||||
.subscribe_irq_mask1 = 0x3000,
|
||||
.enable_diagnostic_hw = 0x1,
|
||||
.top_debug_cfg_en = 1,
|
||||
},
|
||||
};
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/slab.h>
|
||||
@@ -325,9 +326,9 @@ skip_core_cfg:
|
||||
memset(err_irq_mask, 0, sizeof(err_irq_mask));
|
||||
memset(irq_mask, 0, sizeof(irq_mask));
|
||||
|
||||
/* config debug status registers */
|
||||
cam_io_w_mb(rsrc_data->reg_data->top_debug_cfg_en, rsrc_data->mem_base +
|
||||
rsrc_data->common_reg->top_debug_cfg);
|
||||
val = cam_io_r(rsrc_data->mem_base + rsrc_data->common_reg->top_debug_cfg);
|
||||
val |= rsrc_data->reg_data->top_debug_cfg_en;
|
||||
cam_io_w_mb(val, rsrc_data->mem_base + rsrc_data->common_reg->top_debug_cfg);
|
||||
|
||||
if (!camif_lite_res->is_rdi_primary_res)
|
||||
goto subscribe_err;
|
||||
|
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/slab.h>
|
||||
@@ -400,8 +401,9 @@ static int cam_vfe_camif_ver3_resource_start(
|
||||
}
|
||||
|
||||
/* config debug status registers */
|
||||
cam_io_w_mb(rsrc_data->reg_data->top_debug_cfg_en, rsrc_data->mem_base +
|
||||
rsrc_data->common_reg->top_debug_cfg);
|
||||
val = cam_io_r(rsrc_data->mem_base + rsrc_data->common_reg->top_debug_cfg);
|
||||
val |= rsrc_data->reg_data->top_debug_cfg_en;
|
||||
cam_io_w_mb(val, rsrc_data->mem_base + rsrc_data->common_reg->top_debug_cfg);
|
||||
|
||||
val = cam_io_r_mb(rsrc_data->mem_base +
|
||||
rsrc_data->common_reg->core_cfg_0);
|
||||
|
Reference in New Issue
Block a user