mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
msm: camera: ife: Add support for camera v680 bus
This change adds support for Waipio bus hardware. It also changes the bus private structure to be pointer based so that most of the information is filled from hardware specific headers. CRs-Fixed: 2794540 Change-Id: Ie9d30442246a896f372512b62bd54be32c4921ad Signed-off-by: Venkat Chinta <vchinta@codeaurora.org> Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
This commit is contained in:
parent
c57b4483bc
commit
1332b49e26
9 changed files with 628 additions and 605 deletions
|
|
@ -569,6 +569,20 @@ static const char *__cam_isp_resource_handle_id_to_type(
|
|||
return "RDI_RD";
|
||||
case CAM_ISP_IFE_OUT_RES_LCR:
|
||||
return "LCR";
|
||||
case CAM_ISP_IFE_OUT_RES_AWB_BFW:
|
||||
return "AWB_BFW";
|
||||
case CAM_ISP_IFE_OUT_RES_2PD_STATS:
|
||||
return "2PD_STATS";
|
||||
case CAM_ISP_IFE_OUT_RES_STATS_AEC_BE:
|
||||
return "STATS_AEC_BE";
|
||||
case CAM_ISP_IFE_OUT_RES_LTM_STATS:
|
||||
return "LTM_STATS";
|
||||
case CAM_ISP_IFE_OUT_RES_STATS_GTM_BHIST:
|
||||
return "STATS_GTM_BHIST";
|
||||
case CAM_ISP_IFE_LITE_OUT_RES_STATS_BE:
|
||||
return "STATS_BE";
|
||||
case CAM_ISP_IFE_LITE_OUT_RES_GAMMA:
|
||||
return "GAMMA";
|
||||
default:
|
||||
return "CAM_ISP_Invalid_Resource_Type";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,6 +190,7 @@ struct cam_vfe_hw_vfe_in_acquire_args {
|
|||
* with this resource.
|
||||
* @priv: Context data
|
||||
* @event_cb: Callback function to hw mgr in case of hw events
|
||||
* @buf_done_controller: Buf done controller for isp
|
||||
* @vfe_out: Acquire args for VFE_OUT
|
||||
* @vfe_bus_rd Acquire args for VFE_BUS_READ
|
||||
* @vfe_in: Acquire args for VFE_IN
|
||||
|
|
@ -199,6 +200,7 @@ struct cam_vfe_acquire_args {
|
|||
void *tasklet;
|
||||
void *priv;
|
||||
cam_hw_mgr_event_cb_func event_cb;
|
||||
void *buf_done_controller;
|
||||
union {
|
||||
struct cam_vfe_hw_vfe_out_acquire_args vfe_out;
|
||||
struct cam_vfe_hw_vfe_bus_rd_acquire_args vfe_bus_rd;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _CAM_VFE_CORE_H_
|
||||
|
|
@ -12,6 +12,13 @@
|
|||
#include "cam_vfe_bus.h"
|
||||
#include "cam_vfe_hw_intf.h"
|
||||
|
||||
#define CAM_VFE_HW_IRQ_CAP_SOF 0x1
|
||||
#define CAM_VFE_HW_IRQ_CAP_EPOCH_0 0x2
|
||||
#define CAM_VFE_HW_IRQ_CAP_EPOCH_1 0x4
|
||||
#define CAM_VFE_HW_IRQ_CAP_RUP 0x8
|
||||
#define CAM_VFE_HW_IRQ_CAP_BUF_DONE 0x10
|
||||
#define CAM_VFE_HW_IRQ_CAP_EOF 0x20
|
||||
|
||||
struct cam_vfe_hw_info {
|
||||
struct cam_irq_controller_reg_info *irq_reg_info;
|
||||
|
||||
|
|
|
|||
|
|
@ -412,7 +412,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.global_clear_bitmask = 0x00000001,
|
||||
},
|
||||
},
|
||||
.num_client = CAM_VFE_BUS_VER3_MAX_CLIENTS,
|
||||
.num_client = CAM_VFE_BUS_VER3_480_MAX_CLIENTS,
|
||||
.bus_client_reg = {
|
||||
/* BUS Client 0 FULL Y */
|
||||
{
|
||||
|
|
@ -1177,6 +1177,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_3,
|
||||
.mid[0] = 8,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
23,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI1,
|
||||
|
|
@ -1184,6 +1188,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_4,
|
||||
.mid[0] = 9,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
24,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI2,
|
||||
|
|
@ -1191,6 +1199,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_5,
|
||||
.mid[0] = 10,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
25,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_FULL,
|
||||
|
|
@ -1201,6 +1213,11 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.mid[1] = 33,
|
||||
.mid[2] = 34,
|
||||
.mid[3] = 35,
|
||||
.num_wm = 2,
|
||||
.wm_idx = {
|
||||
0,
|
||||
1,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_DS4,
|
||||
|
|
@ -1208,6 +1225,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = 1080,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 16,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
2,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_DS16,
|
||||
|
|
@ -1215,6 +1236,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = 1080,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 17,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
3,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RAW_DUMP,
|
||||
|
|
@ -1223,6 +1248,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 11,
|
||||
.mid[1] = 12,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
10,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_FD,
|
||||
|
|
@ -1232,6 +1261,11 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.mid[0] = 20,
|
||||
.mid[1] = 21,
|
||||
.mid[2] = 22,
|
||||
.num_wm = 2,
|
||||
.wm_idx = {
|
||||
8,
|
||||
9,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_PDAF,
|
||||
|
|
@ -1240,6 +1274,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 25,
|
||||
.mid[1] = 26,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
11,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_HDR_BE,
|
||||
|
|
@ -1247,6 +1285,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 40,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
12,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type =
|
||||
|
|
@ -1255,6 +1297,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = 1080,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 41,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
13,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type =
|
||||
|
|
@ -1263,6 +1309,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 42,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
14,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_BF,
|
||||
|
|
@ -1270,6 +1320,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 43,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
20,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_AWB_BG,
|
||||
|
|
@ -1277,6 +1331,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 44,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
15,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_BHIST,
|
||||
|
|
@ -1284,6 +1342,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 45,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
16,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_RS,
|
||||
|
|
@ -1291,6 +1353,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 46,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
17,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_CS,
|
||||
|
|
@ -1298,6 +1364,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 47,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
18,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_IHIST,
|
||||
|
|
@ -1305,6 +1375,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 48,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
19,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_FULL_DISP,
|
||||
|
|
@ -1315,6 +1389,11 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.mid[1] = 37,
|
||||
.mid[2] = 38,
|
||||
.mid[3] = 39,
|
||||
.num_wm = 2,
|
||||
.wm_idx = {
|
||||
4,
|
||||
5,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_DS4_DISP,
|
||||
|
|
@ -1322,6 +1401,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = 1080,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 18,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
6,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_DS16_DISP,
|
||||
|
|
@ -1329,6 +1412,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = 1080,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 19,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
7,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_2PD,
|
||||
|
|
@ -1337,6 +1424,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_1,
|
||||
.mid[0] = 23,
|
||||
.mid[1] = 24,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
21,
|
||||
}
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_LCR,
|
||||
|
|
@ -1344,12 +1435,19 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_2,
|
||||
.mid[0] = 27,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
22,
|
||||
}
|
||||
},
|
||||
},
|
||||
.num_comp_grp = 14,
|
||||
.comp_done_shift = 6,
|
||||
.top_irq_shift = 7,
|
||||
.support_consumed_addr = true,
|
||||
.max_out_res = CAM_ISP_IFE_OUT_RES_BASE + 25,
|
||||
.supported_irq = CAM_VFE_HW_IRQ_CAP_BUF_DONE | CAM_VFE_HW_IRQ_CAP_RUP,
|
||||
.comp_cfg_needed = true,
|
||||
};
|
||||
|
||||
static struct cam_irq_register_set vfe480_bus_rd_irq_reg[1] = {
|
||||
|
|
|
|||
|
|
@ -1026,7 +1026,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
|
|||
.ubwc_regs = NULL,
|
||||
},
|
||||
},
|
||||
.num_out = 25,
|
||||
.num_out = 27,
|
||||
.vfe_out_hw_info = {
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI0,
|
||||
|
|
@ -1179,7 +1179,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
|
|||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
17,
|
||||
12,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -1273,6 +1273,16 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
|
|||
22,
|
||||
},
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_AEC_BE,
|
||||
.max_width = -1,
|
||||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
11,
|
||||
},
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_LTM_STATS,
|
||||
.max_width = -1,
|
||||
|
|
@ -1283,9 +1293,21 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
|
|||
27,
|
||||
},
|
||||
},
|
||||
{
|
||||
.vfe_out_type =
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_STATS_GTM_BHIST,
|
||||
.max_width = 1920,
|
||||
.max_height = 1080,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
17,
|
||||
},
|
||||
},
|
||||
},
|
||||
.comp_done_shift = 6,
|
||||
.top_irq_shift = 7,
|
||||
.num_comp_grp = 17,
|
||||
.comp_done_shift = 0,
|
||||
.top_irq_shift = 1,
|
||||
.max_out_res = CAM_ISP_IFE_OUT_RES_BASE + 33,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -374,6 +374,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe48x_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.mid[0] = 16,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
0,
|
||||
},
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI1,
|
||||
|
|
@ -381,6 +385,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe48x_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_1,
|
||||
.mid[0] = 17,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
1,
|
||||
},
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI2,
|
||||
|
|
@ -388,6 +396,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe48x_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_2,
|
||||
.mid[0] = 18,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
2,
|
||||
},
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI3,
|
||||
|
|
@ -395,12 +407,19 @@ static struct cam_vfe_bus_ver3_hw_info vfe48x_bus_hw_info = {
|
|||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_3,
|
||||
.mid[0] = 19,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
3,
|
||||
},
|
||||
},
|
||||
},
|
||||
.num_comp_grp = 4,
|
||||
.comp_done_shift = 4,
|
||||
.top_irq_shift = 4,
|
||||
.support_consumed_addr = true,
|
||||
.max_out_res = CAM_ISP_IFE_OUT_RES_BASE + 25,
|
||||
.supported_irq = CAM_VFE_HW_IRQ_CAP_BUF_DONE | CAM_VFE_HW_IRQ_CAP_RUP,
|
||||
.comp_cfg_needed = true,
|
||||
};
|
||||
|
||||
static struct cam_vfe_hw_info cam_vfe_lite48x_hw_info = {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
0x0000023C,
|
||||
0x00000240,
|
||||
0x00000244,
|
||||
0x00000248,
|
||||
},
|
||||
.pwr_iso_cfg = 0x0000025C,
|
||||
.overflow_status_clear = 0x00000260,
|
||||
|
|
@ -52,7 +51,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
.global_clear_bitmask = 0x00000001,
|
||||
},
|
||||
},
|
||||
.num_client = 4,
|
||||
.num_client = 6,
|
||||
.bus_client_reg = {
|
||||
/* BUS Client 0 RDI0 */
|
||||
{
|
||||
|
|
@ -80,7 +79,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
.debug_status_cfg = 0x00000480,
|
||||
.debug_status_0 = 0x00000484,
|
||||
.debug_status_1 = 0x00000488,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_0,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_1,
|
||||
.ubwc_regs = NULL,
|
||||
},
|
||||
/* BUS Client 1 RDI1 */
|
||||
|
|
@ -109,7 +108,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
.debug_status_cfg = 0x00000580,
|
||||
.debug_status_0 = 0x00000584,
|
||||
.debug_status_1 = 0x00000588,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_1,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_2,
|
||||
.ubwc_regs = NULL,
|
||||
},
|
||||
/* BUS Client 2 RDI2 */
|
||||
|
|
@ -138,7 +137,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
.debug_status_cfg = 0x00000680,
|
||||
.debug_status_0 = 0x00000684,
|
||||
.debug_status_1 = 0x00000688,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_2,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_3,
|
||||
.ubwc_regs = NULL,
|
||||
},
|
||||
/* BUS Client 3 RDI3 */
|
||||
|
|
@ -167,17 +166,75 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
.debug_status_cfg = 0x00000780,
|
||||
.debug_status_0 = 0x00000784,
|
||||
.debug_status_1 = 0x00000788,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_3,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_4,
|
||||
.ubwc_regs = NULL,
|
||||
},
|
||||
/* BUS Client 4 Gamma */
|
||||
{
|
||||
.cfg = 0x00000800,
|
||||
.image_addr = 0x00000804,
|
||||
.frame_incr = 0x00000808,
|
||||
.image_cfg_0 = 0x0000080C,
|
||||
.image_cfg_1 = 0x00000810,
|
||||
.image_cfg_2 = 0x00000814,
|
||||
.packer_cfg = 0x00000818,
|
||||
.frame_header_addr = 0x00000820,
|
||||
.frame_header_incr = 0x00000824,
|
||||
.frame_header_cfg = 0x00000828,
|
||||
.irq_subsample_period = 0x00000830,
|
||||
.irq_subsample_pattern = 0x00000834,
|
||||
.framedrop_period = 0x00000838,
|
||||
.framedrop_pattern = 0x0000083C,
|
||||
.mmu_prefetch_cfg = 0x00000860,
|
||||
.mmu_prefetch_max_offset = 0x00000864,
|
||||
.system_cache_cfg = 0x00000868,
|
||||
.addr_status_0 = 0x00000870,
|
||||
.addr_status_1 = 0x00000874,
|
||||
.addr_status_2 = 0x00000878,
|
||||
.addr_status_3 = 0x0000087C,
|
||||
.debug_status_cfg = 0x00000880,
|
||||
.debug_status_0 = 0x00000884,
|
||||
.debug_status_1 = 0x00000888,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_0,
|
||||
.ubwc_regs = NULL,
|
||||
},
|
||||
/* BUS Client 5 Stats BE */
|
||||
{
|
||||
.cfg = 0x00000900,
|
||||
.image_addr = 0x00000904,
|
||||
.frame_incr = 0x00000908,
|
||||
.image_cfg_0 = 0x0000090C,
|
||||
.image_cfg_1 = 0x00000910,
|
||||
.image_cfg_2 = 0x00000914,
|
||||
.packer_cfg = 0x00000918,
|
||||
.frame_header_addr = 0x00000920,
|
||||
.frame_header_incr = 0x00000924,
|
||||
.frame_header_cfg = 0x00000928,
|
||||
.irq_subsample_period = 0x00000930,
|
||||
.irq_subsample_pattern = 0x00000934,
|
||||
.framedrop_period = 0x00000938,
|
||||
.framedrop_pattern = 0x0000093C,
|
||||
.mmu_prefetch_cfg = 0x00000960,
|
||||
.mmu_prefetch_max_offset = 0x00000964,
|
||||
.system_cache_cfg = 0x00000968,
|
||||
.addr_status_0 = 0x00000970,
|
||||
.addr_status_1 = 0x00000974,
|
||||
.addr_status_2 = 0x00000978,
|
||||
.addr_status_3 = 0x0000097C,
|
||||
.debug_status_cfg = 0x00000980,
|
||||
.debug_status_0 = 0x00000984,
|
||||
.debug_status_1 = 0x00000988,
|
||||
.comp_group = CAM_VFE_BUS_VER3_COMP_GRP_0,
|
||||
.ubwc_regs = NULL,
|
||||
},
|
||||
},
|
||||
.num_out = 4,
|
||||
.num_out = 6,
|
||||
.vfe_out_hw_info = {
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI0,
|
||||
.max_width = -1,
|
||||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_1,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
0,
|
||||
|
|
@ -187,7 +244,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI1,
|
||||
.max_width = -1,
|
||||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_2,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
1,
|
||||
|
|
@ -197,7 +254,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI2,
|
||||
.max_width = -1,
|
||||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_2,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_3,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
2,
|
||||
|
|
@ -207,14 +264,36 @@ static struct cam_vfe_bus_ver3_hw_info vfe680x_bus_hw_info = {
|
|||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_RDI3,
|
||||
.max_width = -1,
|
||||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_3,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_4,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
3,
|
||||
},
|
||||
},
|
||||
{
|
||||
.vfe_out_type =
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_GAMMA,
|
||||
.max_width = 1920,
|
||||
.max_height = 1080,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
4,
|
||||
},
|
||||
},
|
||||
{
|
||||
.vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_BE,
|
||||
.max_width = -1,
|
||||
.max_height = -1,
|
||||
.source_group = CAM_VFE_BUS_VER3_SRC_GRP_0,
|
||||
.num_wm = 1,
|
||||
.wm_idx = {
|
||||
5,
|
||||
},
|
||||
},
|
||||
},
|
||||
.comp_done_shift = 6,
|
||||
.num_comp_grp = 4,
|
||||
.comp_done_shift = 0,
|
||||
.top_irq_shift = 1,
|
||||
.max_out_res = CAM_ISP_IFE_OUT_RES_BASE + 33,
|
||||
};
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -10,7 +10,6 @@
|
|||
#include "cam_irq_controller.h"
|
||||
#include "cam_vfe_bus.h"
|
||||
|
||||
#define CAM_VFE_BUS_VER3_MAX_CLIENTS 26
|
||||
#define CAM_VFE_BUS_VER3_MAX_SUB_GRPS 6
|
||||
#define CAM_VFE_BUS_VER3_MAX_MID_PER_PORT 4
|
||||
#define CAM_VFE_BUS_VER3_480_MAX_CLIENTS 26
|
||||
|
|
@ -80,7 +79,11 @@ enum cam_vfe_bus_ver3_vfe_out_type {
|
|||
CAM_VFE_BUS_VER3_VFE_OUT_LCR,
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_AWB_BFW,
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_2PD_STATS,
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_STATS_AEC_BE,
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_LTM_STATS,
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_STATS_GTM_BHIST,
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_STATS_BE,
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_GAMMA,
|
||||
CAM_VFE_BUS_VER3_VFE_OUT_MAX,
|
||||
};
|
||||
|
||||
|
|
@ -185,10 +188,13 @@ struct cam_vfe_bus_ver3_vfe_out_hw_info {
|
|||
* @num_client: Total number of write clients
|
||||
* @bus_client_reg: Bus client register info
|
||||
* @vfe_out_hw_info: VFE output capability
|
||||
* @num_comp_grp: Number of composite groups
|
||||
* @comp_done_shift: Mask shift for comp done mask
|
||||
* @top_irq_shift: Mask shift for top level BUS WR irq
|
||||
* @support_consumed_addr: Indicate if bus support consumed address
|
||||
* @max_out_res: Max vfe out resource value supported for hw
|
||||
* @supported_irq: Mask to indicate the IRQ supported
|
||||
* @comp_cfg_needed: Composite group config is needed for hw
|
||||
*/
|
||||
struct cam_vfe_bus_ver3_hw_info {
|
||||
struct cam_vfe_bus_ver3_reg_offset_common common_reg;
|
||||
|
|
@ -198,10 +204,13 @@ struct cam_vfe_bus_ver3_hw_info {
|
|||
uint32_t num_out;
|
||||
struct cam_vfe_bus_ver3_vfe_out_hw_info
|
||||
vfe_out_hw_info[CAM_VFE_BUS_VER3_VFE_OUT_MAX];
|
||||
uint32_t num_comp_grp;
|
||||
uint32_t comp_done_shift;
|
||||
uint32_t top_irq_shift;
|
||||
bool support_consumed_addr;
|
||||
uint32_t max_out_res;
|
||||
uint32_t supported_irq;
|
||||
bool comp_cfg_needed;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue