Ver código fonte

msm: camera: isp: Fix IRQ register sets for csid lite

Currently, the IRQ reg set is not having an empty RDI4 entry,
causing an out of bounds access during probe. Add empty
entry to reg set in headers to enable correct irq register
info to be retrieved in driver.

CRs-Fixed: 3198089
Change-Id: If963ed4295c902651d3d62158cc6c0546cd8e470
Signed-off-by: Mukund Madhusudan Atre <[email protected]>
Mukund Madhusudan Atre 3 anos atrás
pai
commit
5a407ddbd7

+ 3 - 1
drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_lite680.h

@@ -244,7 +244,7 @@ static const struct cam_ife_csid_irq_desc cam_ife_csid_lite_680_path_irq_desc[]
 		.desc = "CCIF_VIOLATION: Bad frame timings",
 	},
 };
-static struct cam_irq_register_set cam_ife_csid_lite_680_irq_reg_set[7] = {
+static struct cam_irq_register_set cam_ife_csid_lite_680_irq_reg_set[9] = {
 	/* Top */
 	{
 		.mask_reg_offset   = 0x00000080,
@@ -284,12 +284,14 @@ static struct cam_irq_register_set cam_ife_csid_lite_680_irq_reg_set[7] = {
 		.clear_reg_offset  = 0x00000124,
 		.status_reg_offset = 0x0000011C,
 	},
+	{}, /* no RDI4 */
 	/* IPP */
 	{
 		.mask_reg_offset   = 0x000000B0,
 		.clear_reg_offset  = 0x000000B4,
 		.status_reg_offset = 0x000000AC,
 	},
+	{}, /* no PPP */
 };
 
 static struct cam_irq_controller_reg_info cam_ife_csid_lite_680_top_irq_reg_info = {

+ 3 - 1
drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_lite780.h

@@ -275,7 +275,7 @@ static const struct cam_ife_csid_top_irq_desc cam_ife_csid_lite_780_top_irq_desc
 	},
 };
 
-static struct cam_irq_register_set cam_ife_csid_lite_780_irq_reg_set[7] = {
+static struct cam_irq_register_set cam_ife_csid_lite_780_irq_reg_set[9] = {
 	/* Top */
 	{
 		.mask_reg_offset   = 0x00000080,
@@ -315,12 +315,14 @@ static struct cam_irq_register_set cam_ife_csid_lite_780_irq_reg_set[7] = {
 		.clear_reg_offset  = 0x00000124,
 		.status_reg_offset = 0x0000011C,
 	},
+	{}, /* no RDI4 */
 	/* IPP */
 	{
 		.mask_reg_offset   = 0x000000B0,
 		.clear_reg_offset  = 0x000000B4,
 		.status_reg_offset = 0x000000AC,
 	},
+	{}, /* no PPP */
 };
 
 static struct cam_irq_controller_reg_info cam_ife_csid_lite_780_top_irq_reg_info = {

+ 3 - 1
drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_lite880.h

@@ -283,7 +283,7 @@ static const struct cam_ife_csid_top_irq_desc cam_ife_csid_lite_880_top_irq_desc
 	},
 };
 
-static struct cam_irq_register_set cam_ife_csid_lite_880_irq_reg_set[7] = {
+static struct cam_irq_register_set cam_ife_csid_lite_880_irq_reg_set[9] = {
 	/* Top */
 	{
 		.mask_reg_offset   = 0x00001080,
@@ -323,12 +323,14 @@ static struct cam_irq_register_set cam_ife_csid_lite_880_irq_reg_set[7] = {
 		.clear_reg_offset  = 0x00001124,
 		.status_reg_offset = 0x0000111C,
 	},
+	{}, /* no RDI4 */
 	/* IPP */
 	{
 		.mask_reg_offset   = 0x000010B0,
 		.clear_reg_offset  = 0x000010B4,
 		.status_reg_offset = 0x000010AC,
 	},
+	{}, /* no PPP */
 };
 
 static struct cam_irq_controller_reg_info cam_ife_csid_lite_880_top_irq_reg_info = {