Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe175_130.h +5 −6 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_VFE175_130_H_ Loading Loading @@ -354,12 +354,11 @@ static struct cam_vfe_bus_rd_ver1_hw_info vfe175_130_bus_rd_hw_info = { { .cfg = 0x00005050, .image_addr = 0x00005058, .buffer_width_cfg = 0x0000505C, .unpacker_cfg = 0x00005064, .buf_size = 0x0000505C, .stride = 0x00005060, .burst_limit = 0x00005080, .unpacker_cfg = 0x00005064, .latency_buf_allocation = 0x00005078, .ubwc_regs = NULL, .burst_limit = 0x00005080, }, }, .num_bus_rd_resc = 1, Loading Loading @@ -1093,7 +1092,7 @@ struct cam_vfe_hw_info cam_vfe175_130_hw_info = { .bus_version = CAM_VFE_BUS_VER_2_0, .bus_hw_info = &vfe175_130_bus_hw_info, .bus_rd_version = CAM_VFE_BUS_VER_2_0, .bus_rd_version = CAM_VFE_BUS_RD_VER_1_0, .bus_rd_hw_info = &vfe175_130_bus_rd_hw_info, .top_version = CAM_VFE_TOP_VER_2_0, Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe480.h +50 −0 Original line number Diff line number Diff line Loading @@ -980,12 +980,62 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = { }, }; static struct cam_irq_register_set vfe480_bus_rd_irq_reg[1] = { { .mask_reg_offset = 0x0000A810, .clear_reg_offset = 0x0000A814, .status_reg_offset = 0x0000A81C, }, }; static struct cam_vfe_bus_rd_ver1_hw_info vfe480_bus_rd_hw_info = { .common_reg = { .hw_version = 0x0000A800, .hw_capability = 0x0000A804, .sw_reset = 0x0000A808, .cgc_ovd = 0x0000A80C, .pwr_iso_cfg = 0x0000A834, .input_if_cmd = 0x0000A820, .test_bus_ctrl = 0x0000A848, .irq_reg_info = { .num_registers = 1, .irq_reg_set = vfe480_bus_rd_irq_reg, .global_clear_offset = 0x0000A818, .global_clear_bitmask = 0x00000001, }, }, .num_client = 1, .bus_client_reg = { /* BUS Client 0 */ { .cfg = 0x0000A850, .image_addr = 0x0000A858, .buf_size = 0x0000A85C, .stride = 0x0000A860, .unpacker_cfg = 0x0000A864, .latency_buf_allocation = 0x0000A878, .burst_limit = 0x0000A880, }, }, .num_bus_rd_resc = 1, .vfe_bus_rd_hw_info = { { .vfe_bus_rd_type = CAM_VFE_BUS_RD_VER1_VFE_BUSRD_RDI0, .max_width = -1, .max_height = -1, }, }, }; struct cam_vfe_hw_info cam_vfe480_hw_info = { .irq_reg_info = &vfe175_top_irq_reg_info, .bus_version = CAM_VFE_BUS_VER_3_0, .bus_hw_info = &vfe480_bus_hw_info, .bus_rd_version = CAM_VFE_BUS_RD_VER_1_0, .bus_rd_hw_info = &vfe480_bus_rd_hw_info, .top_version = CAM_VFE_TOP_VER_2_0, .top_hw_info = &vfe175_top_hw_info, Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus.c +13 −5 Original line number Diff line number Diff line Loading @@ -32,18 +32,26 @@ int cam_vfe_bus_init(uint32_t bus_version, bus_hw_info, vfe_irq_controller, vfe_bus); break; default: CAM_ERR(CAM_ISP, "Unsupported Bus Version %x", CAM_ERR(CAM_ISP, "Unsupported Bus WR Version 0x%x", bus_version); break; } break; case BUS_TYPE_RD: switch (bus_version) { case CAM_VFE_BUS_RD_VER_1_0: /* Call vfe bus rd init function */ rc = cam_vfe_bus_rd_ver1_init(soc_info, hw_intf, bus_hw_info, vfe_irq_controller, vfe_bus); break; default: CAM_ERR(CAM_ISP, "Unsupported Bus type %x", bus_type); CAM_ERR(CAM_ISP, "Unsupported Bus RD Version 0x%x", bus_version); break; } break; default: CAM_ERR(CAM_ISP, "Unsupported Bus type %d", bus_type); break; } Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_rd_ver1.c +3 −4 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #include <linux/ratelimit.h> Loading Loading @@ -318,7 +318,7 @@ static int cam_vfe_bus_start_rm(struct cam_isp_resource_node *rm_res) CAM_DBG(CAM_ISP, "min_vbi: 0x%x", rm_data->min_vbi); /* Write All the values*/ offset = rm_data->hw_regs->buffer_width_cfg; offset = rm_data->hw_regs->buf_size; buf_size = ((rm_data->width)&(0x0000FFFF)) | ((rm_data->height<<16)&(0xFFFF0000)); cam_io_w_mb(buf_size, common_data->mem_base + offset); Loading Loading @@ -809,8 +809,7 @@ static int cam_vfe_bus_rd_update_rm(void *priv, void *cmd_args, CAM_DBG(CAM_ISP, "size offset 0x%x buf_size 0x%x", rm_data->hw_regs->buf_size, buf_size); CAM_VFE_ADD_REG_VAL_PAIR(reg_val_pair, j, rm_data->hw_regs->buffer_width_cfg, buf_size); rm_data->hw_regs->buf_size, buf_size); CAM_DBG(CAM_ISP, "RM %d image size 0x%x", rm_data->index, reg_val_pair[j-1]); Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_rd_ver1.h +4 −12 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_VFE_BUS_R_VER1_H_ Loading Loading @@ -50,21 +50,13 @@ struct cam_vfe_bus_rd_ver1_reg_offset_common { * @Brief: Register offsets for BUS Clients */ struct cam_vfe_bus_rd_ver1_reg_offset_bus_client { uint32_t status0; uint32_t status1; uint32_t cfg; uint32_t header_addr; uint32_t header_cfg; uint32_t image_addr; uint32_t image_addr_offset; uint32_t buffer_width_cfg; uint32_t buffer_height_cfg; uint32_t unpacker_cfg; uint32_t buf_size; uint32_t stride; void *ubwc_regs; uint32_t burst_limit; uint32_t unpacker_cfg; uint32_t latency_buf_allocation; uint32_t buf_size; uint32_t burst_limit; }; /* Loading Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe175_130.h +5 −6 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_VFE175_130_H_ Loading Loading @@ -354,12 +354,11 @@ static struct cam_vfe_bus_rd_ver1_hw_info vfe175_130_bus_rd_hw_info = { { .cfg = 0x00005050, .image_addr = 0x00005058, .buffer_width_cfg = 0x0000505C, .unpacker_cfg = 0x00005064, .buf_size = 0x0000505C, .stride = 0x00005060, .burst_limit = 0x00005080, .unpacker_cfg = 0x00005064, .latency_buf_allocation = 0x00005078, .ubwc_regs = NULL, .burst_limit = 0x00005080, }, }, .num_bus_rd_resc = 1, Loading Loading @@ -1093,7 +1092,7 @@ struct cam_vfe_hw_info cam_vfe175_130_hw_info = { .bus_version = CAM_VFE_BUS_VER_2_0, .bus_hw_info = &vfe175_130_bus_hw_info, .bus_rd_version = CAM_VFE_BUS_VER_2_0, .bus_rd_version = CAM_VFE_BUS_RD_VER_1_0, .bus_rd_hw_info = &vfe175_130_bus_rd_hw_info, .top_version = CAM_VFE_TOP_VER_2_0, Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe480.h +50 −0 Original line number Diff line number Diff line Loading @@ -980,12 +980,62 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = { }, }; static struct cam_irq_register_set vfe480_bus_rd_irq_reg[1] = { { .mask_reg_offset = 0x0000A810, .clear_reg_offset = 0x0000A814, .status_reg_offset = 0x0000A81C, }, }; static struct cam_vfe_bus_rd_ver1_hw_info vfe480_bus_rd_hw_info = { .common_reg = { .hw_version = 0x0000A800, .hw_capability = 0x0000A804, .sw_reset = 0x0000A808, .cgc_ovd = 0x0000A80C, .pwr_iso_cfg = 0x0000A834, .input_if_cmd = 0x0000A820, .test_bus_ctrl = 0x0000A848, .irq_reg_info = { .num_registers = 1, .irq_reg_set = vfe480_bus_rd_irq_reg, .global_clear_offset = 0x0000A818, .global_clear_bitmask = 0x00000001, }, }, .num_client = 1, .bus_client_reg = { /* BUS Client 0 */ { .cfg = 0x0000A850, .image_addr = 0x0000A858, .buf_size = 0x0000A85C, .stride = 0x0000A860, .unpacker_cfg = 0x0000A864, .latency_buf_allocation = 0x0000A878, .burst_limit = 0x0000A880, }, }, .num_bus_rd_resc = 1, .vfe_bus_rd_hw_info = { { .vfe_bus_rd_type = CAM_VFE_BUS_RD_VER1_VFE_BUSRD_RDI0, .max_width = -1, .max_height = -1, }, }, }; struct cam_vfe_hw_info cam_vfe480_hw_info = { .irq_reg_info = &vfe175_top_irq_reg_info, .bus_version = CAM_VFE_BUS_VER_3_0, .bus_hw_info = &vfe480_bus_hw_info, .bus_rd_version = CAM_VFE_BUS_RD_VER_1_0, .bus_rd_hw_info = &vfe480_bus_rd_hw_info, .top_version = CAM_VFE_TOP_VER_2_0, .top_hw_info = &vfe175_top_hw_info, Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus.c +13 −5 Original line number Diff line number Diff line Loading @@ -32,18 +32,26 @@ int cam_vfe_bus_init(uint32_t bus_version, bus_hw_info, vfe_irq_controller, vfe_bus); break; default: CAM_ERR(CAM_ISP, "Unsupported Bus Version %x", CAM_ERR(CAM_ISP, "Unsupported Bus WR Version 0x%x", bus_version); break; } break; case BUS_TYPE_RD: switch (bus_version) { case CAM_VFE_BUS_RD_VER_1_0: /* Call vfe bus rd init function */ rc = cam_vfe_bus_rd_ver1_init(soc_info, hw_intf, bus_hw_info, vfe_irq_controller, vfe_bus); break; default: CAM_ERR(CAM_ISP, "Unsupported Bus type %x", bus_type); CAM_ERR(CAM_ISP, "Unsupported Bus RD Version 0x%x", bus_version); break; } break; default: CAM_ERR(CAM_ISP, "Unsupported Bus type %d", bus_type); break; } Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_rd_ver1.c +3 −4 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #include <linux/ratelimit.h> Loading Loading @@ -318,7 +318,7 @@ static int cam_vfe_bus_start_rm(struct cam_isp_resource_node *rm_res) CAM_DBG(CAM_ISP, "min_vbi: 0x%x", rm_data->min_vbi); /* Write All the values*/ offset = rm_data->hw_regs->buffer_width_cfg; offset = rm_data->hw_regs->buf_size; buf_size = ((rm_data->width)&(0x0000FFFF)) | ((rm_data->height<<16)&(0xFFFF0000)); cam_io_w_mb(buf_size, common_data->mem_base + offset); Loading Loading @@ -809,8 +809,7 @@ static int cam_vfe_bus_rd_update_rm(void *priv, void *cmd_args, CAM_DBG(CAM_ISP, "size offset 0x%x buf_size 0x%x", rm_data->hw_regs->buf_size, buf_size); CAM_VFE_ADD_REG_VAL_PAIR(reg_val_pair, j, rm_data->hw_regs->buffer_width_cfg, buf_size); rm_data->hw_regs->buf_size, buf_size); CAM_DBG(CAM_ISP, "RM %d image size 0x%x", rm_data->index, reg_val_pair[j-1]); Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_rd_ver1.h +4 −12 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_VFE_BUS_R_VER1_H_ Loading Loading @@ -50,21 +50,13 @@ struct cam_vfe_bus_rd_ver1_reg_offset_common { * @Brief: Register offsets for BUS Clients */ struct cam_vfe_bus_rd_ver1_reg_offset_bus_client { uint32_t status0; uint32_t status1; uint32_t cfg; uint32_t header_addr; uint32_t header_cfg; uint32_t image_addr; uint32_t image_addr_offset; uint32_t buffer_width_cfg; uint32_t buffer_height_cfg; uint32_t unpacker_cfg; uint32_t buf_size; uint32_t stride; void *ubwc_regs; uint32_t burst_limit; uint32_t unpacker_cfg; uint32_t latency_buf_allocation; uint32_t buf_size; uint32_t burst_limit; }; /* Loading