diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/cam_sfe680.h b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/cam_sfe680.h index 8d819de53b..aabd9c4107 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/cam_sfe680.h +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/cam_sfe680.h @@ -337,16 +337,19 @@ static struct cam_sfe_bus_rd_hw_info sfe680_bus_rd_hw_info = { .sfe_bus_rd_info = { { .sfe_bus_rd_type = CAM_SFE_BUS_RD_RDI0, + .mid[0] = 0, .max_width = -1, .max_height = -1, }, { .sfe_bus_rd_type = CAM_SFE_BUS_RD_RDI1, + .mid[0] = 1, .max_width = -1, .max_height = -1, }, { .sfe_bus_rd_type = CAM_SFE_BUS_RD_RDI2, + .mid[0] = 2, .max_width = -1, .max_height = -1, }, @@ -751,6 +754,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_SFE_BUS_WR_SRC_GRP_1, + .mid[0] = 25, .num_wm = 1, .wm_idx = 8, }, @@ -759,6 +763,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_SFE_BUS_WR_SRC_GRP_2, + .mid[0] = 26, .num_wm = 1, .wm_idx = 9, }, @@ -767,6 +772,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_SFE_BUS_WR_SRC_GRP_3, + .mid[0] = 27, .num_wm = 1, .wm_idx = 10, }, @@ -775,6 +781,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_SFE_BUS_WR_SRC_GRP_4, + .mid[0] = 28, .num_wm = 1, .wm_idx = 11, }, @@ -783,6 +790,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_SFE_BUS_WR_SRC_GRP_4, + .mid[0] = 29, .num_wm = 1, .wm_idx = 12, }, @@ -791,6 +799,8 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = 9312, .max_height = 6992, .source_group = CAM_SFE_BUS_WR_SRC_GRP_0, + .mid[0] = 16, + .mid[1] = 17, .num_wm = 1, .wm_idx = 0, }, @@ -799,6 +809,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = 9312, .max_height = 2048, .source_group = CAM_SFE_BUS_WR_SRC_GRP_0, + .mid[0] = 18, .num_wm = 1, .wm_idx = 1, }, @@ -807,6 +818,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = 7296, .max_height = 5472, .source_group = CAM_SFE_BUS_WR_SRC_GRP_0, + .mid[0] = 19, .num_wm = 1, .wm_idx = 2, }, @@ -815,6 +827,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = 7296, .max_height = 5472, .source_group = CAM_SFE_BUS_WR_SRC_GRP_0, + .mid[0] = 20, .num_wm = 1, .wm_idx = 3, }, @@ -823,6 +836,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = 7296, .max_height = 5472, .source_group = CAM_SFE_BUS_WR_SRC_GRP_0, + .mid[0] = 21, .num_wm = 1, .wm_idx = 4, }, @@ -831,6 +845,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = 7296, .max_height = 5472, .source_group = CAM_SFE_BUS_WR_SRC_GRP_0, + .mid[0] = 22, .num_wm = 1, .wm_idx = 5, }, @@ -839,6 +854,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = 7296, .max_height = 5472, .source_group = CAM_SFE_BUS_WR_SRC_GRP_0, + .mid[0] = 23, .num_wm = 1, .wm_idx = 6, }, @@ -847,6 +863,7 @@ static struct cam_sfe_bus_wr_hw_info sfe680_bus_wr_hw_info = { .max_width = 7296, .max_height = 5472, .source_group = CAM_SFE_BUS_WR_SRC_GRP_0, + .mid[0] = 24, .num_wm = 1, .wm_idx = 7, }, diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_rd.h b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_rd.h index 39ad21d747..519c8c8988 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_rd.h +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_rd.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. */ #ifndef _CAM_SFE_BUS_RD_H_ @@ -55,6 +55,7 @@ struct cam_sfe_bus_rd_reg_offset_bus_client { */ struct cam_sfe_bus_rd_info { enum cam_sfe_bus_rd_type sfe_bus_rd_type; + uint32_t mid[CAM_SFE_BUS_MAX_MID_PER_PORT]; uint32_t max_width; uint32_t max_height; }; diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.h b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.h index 82b0087e0b..feb611668b 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.h +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. */ @@ -116,6 +116,7 @@ struct cam_sfe_bus_sfe_out_hw_info { uint32_t max_width; uint32_t max_height; uint32_t source_group; + uint32_t mid[CAM_SFE_BUS_MAX_MID_PER_PORT]; uint32_t num_wm; uint32_t wm_idx; }; diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/include/cam_sfe_bus.h b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/include/cam_sfe_bus.h index 00cc78689b..3cf2e54d4b 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/include/cam_sfe_bus.h +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/include/cam_sfe_bus.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. */ #ifndef _CAM_SFE_BUS_H_ @@ -10,6 +10,7 @@ #define CAM_SFE_BUS_WR_VER_1_0 0x1000 #define CAM_SFE_BUS_RD_VER_1_0 0x1000 +#define CAM_SFE_BUS_MAX_MID_PER_PORT 4 #define CAM_SFE_ADD_REG_VAL_PAIR(buf_array, index, offset, val) \ do { \ diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe680.h b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe680.h index c4e7007c48..2c8ed51267 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe680.h +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe680.h @@ -3,7 +3,6 @@ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. */ - #ifndef _CAM_VFE680_H_ #define _CAM_VFE680_H_ #include "cam_vfe_top_ver4.h" @@ -1487,6 +1486,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_2, + .mid[0] = 8, .num_wm = 1, .wm_idx = { 24, @@ -1497,6 +1497,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_3, + .mid[0] = 9, .num_wm = 1, .wm_idx = { 25, @@ -1507,6 +1508,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_4, + .mid[0] = 10, .num_wm = 1, .wm_idx = { 26, @@ -1517,6 +1519,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 4096, .max_height = 4096, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 8, + .mid[1] = 9, + .mid[2] = 10, + .mid[3] = 11, .num_wm = 2, .wm_idx = { 0, @@ -1528,6 +1534,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 1920, .max_height = 1080, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 32, .num_wm = 1, .wm_idx = { 2, @@ -1538,6 +1545,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 1920, .max_height = 1080, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 33, .num_wm = 1, .wm_idx = { 3, @@ -1548,6 +1556,8 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 16, + .mid[1] = 17, .num_wm = 1, .wm_idx = { 10, @@ -1558,6 +1568,9 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 1920, .max_height = 1080, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 36, + .mid[1] = 37, + .mid[2] = 38, .num_wm = 2, .wm_idx = { 8, @@ -1569,6 +1582,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 4, .num_wm = 1, .wm_idx = { 20, @@ -1580,6 +1594,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 41, .num_wm = 1, .wm_idx = { 13, @@ -1590,6 +1605,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 44, .num_wm = 1, .wm_idx = { 16, @@ -1600,6 +1616,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 42, .num_wm = 1, .wm_idx = { 14, @@ -1610,6 +1627,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 40, .num_wm = 1, .wm_idx = { 12, @@ -1620,6 +1638,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 46, .num_wm = 1, .wm_idx = { 18, @@ -1630,6 +1649,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 47, .num_wm = 1, .wm_idx = { 19, @@ -1640,6 +1660,10 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 4096, .max_height = 4096, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 12, + .mid[1] = 13, + .mid[2] = 14, + .mid[3] = 15, .num_wm = 2, .wm_idx = { 4, @@ -1651,6 +1675,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 1920, .max_height = 1080, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 34, .num_wm = 1, .wm_idx = { 6, @@ -1661,6 +1686,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 1920, .max_height = 1080, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 35, .num_wm = 1, .wm_idx = { 7, @@ -1671,6 +1697,8 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 1920, .max_height = 1080, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_1, + .mid[0] = 5, + .mid[1] = 6, .num_wm = 1, .wm_idx = { 21, @@ -1681,6 +1709,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 48, .num_wm = 1, .wm_idx = { 23, @@ -1691,6 +1720,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 43, .num_wm = 1, .wm_idx = { 15, @@ -1701,6 +1731,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_1, + .mid[0] = 7, .num_wm = 1, .wm_idx = { 22, @@ -1711,6 +1742,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 39, .num_wm = 1, .wm_idx = { 11, @@ -1721,6 +1753,8 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = -1, .max_height = -1, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 49, + .mid[1] = 50, .num_wm = 1, .wm_idx = { 27, @@ -1732,6 +1766,7 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = { .max_width = 1920, .max_height = 1080, .source_group = CAM_VFE_BUS_VER3_SRC_GRP_0, + .mid[0] = 45, .num_wm = 1, .wm_idx = { 17,