Loading drivers/media/platform/msm/camera_v2/isp/msm_isp.h +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #define VFE40_8x26_VERSION 0x20000013 #define VFE40_8x26V2_VERSION 0x20010014 #define VFE40_8916_VERSION 0x10030000 #define VFE40_8939_VERSION 0x10040000 #define MAX_IOMMU_CTX 2 #define MAX_NUM_WM 7 Loading drivers/media/platform/msm/camera_v2/isp/msm_isp40.c +21 −3 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ static uint8_t stats_pingpong_offset_map[] = { (~(ping_pong >> (stats_pingpong_offset_map[idx])) & 0x1)) #define VFE40_VBIF_CLKON 0x4 #define VFE40_VBIF_FIXED_SORT_EN 0x30 #define VFE40_VBIF_FIXED_SORT_SEL0 0x34 #define VFE40_VBIF_IN_RD_LIM_CONF0 0xB0 #define VFE40_VBIF_IN_RD_LIM_CONF1 0xB4 #define VFE40_VBIF_IN_RD_LIM_CONF2 0xB8 Loading Loading @@ -106,7 +108,8 @@ static void msm_vfe40_init_qos_parms(struct vfe_device *vfe_dev) msm_camera_io_w(0xAAA9AAA9, vfebase + VFE40_BUS_BDG_QOS_CFG_5); msm_camera_io_w(0xAAA9AAA9, vfebase + VFE40_BUS_BDG_QOS_CFG_6); msm_camera_io_w(0x0001AAA9, vfebase + VFE40_BUS_BDG_QOS_CFG_7); } else if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION) { } else if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION || vfe_dev->vfe_hw_version == VFE40_8939_VERSION) { msm_camera_io_w(0xAAA5AAA5, vfebase + VFE40_BUS_BDG_QOS_CFG_0); msm_camera_io_w(0xAAA5AAA5, vfebase + VFE40_BUS_BDG_QOS_CFG_1); msm_camera_io_w(0xAAA5AAA5, vfebase + VFE40_BUS_BDG_QOS_CFG_2); Loading Loading @@ -228,6 +231,16 @@ static void msm_vfe40_init_vbif_parms_8x26(struct vfe_device *vfe_dev) return; } static void msm_vfe40_init_vbif_parms_8939(struct vfe_device *vfe_dev) { void __iomem *vfe_vbif_base = vfe_dev->vfe_vbif_base; msm_camera_io_w(0x00000fff, vfe_vbif_base + VFE40_VBIF_FIXED_SORT_EN); msm_camera_io_w(0x00555000, vfe_vbif_base + VFE40_VBIF_FIXED_SORT_SEL0); return; } static void msm_vfe40_init_vbif_parms(struct vfe_device *vfe_dev) { switch (vfe_dev->vfe_hw_version) { Loading @@ -246,6 +259,9 @@ static void msm_vfe40_init_vbif_parms(struct vfe_device *vfe_dev) /*Reset hardware values are correct vbif values. So no need to set*/ break; case VFE40_8939_VERSION: msm_vfe40_init_vbif_parms_8939(vfe_dev); break; default: BUG(); pr_err("%s: VBIF is NOT configured for HW Version %x\n", Loading Loading @@ -952,7 +968,8 @@ static void msm_vfe40_axi_cfg_wm_reg( uint32_t burst_len; uint32_t wm_base = VFE40_WM_BASE(stream_info->wm[plane_idx]); if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION) if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION || vfe_dev->vfe_hw_version == VFE40_8939_VERSION) burst_len = VFE40_BURST_LEN_8916_VERSION; else burst_len = VFE40_BURST_LEN; Loading Loading @@ -1356,7 +1373,8 @@ static void msm_vfe40_stats_cfg_ub(struct vfe_device *vfe_dev) 16, /*MSM_ISP_STATS_BHIST*/ }; if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION) { if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION || vfe_dev->vfe_hw_version == VFE40_8939_VERSION) { stats_burst_len = VFE40_STATS_BURST_LEN_8916_VERSION; ub_offset = VFE40_UB_SIZE_8916; } else { Loading Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp.h +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #define VFE40_8x26_VERSION 0x20000013 #define VFE40_8x26V2_VERSION 0x20010014 #define VFE40_8916_VERSION 0x10030000 #define VFE40_8939_VERSION 0x10040000 #define MAX_IOMMU_CTX 2 #define MAX_NUM_WM 7 Loading
drivers/media/platform/msm/camera_v2/isp/msm_isp40.c +21 −3 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ static uint8_t stats_pingpong_offset_map[] = { (~(ping_pong >> (stats_pingpong_offset_map[idx])) & 0x1)) #define VFE40_VBIF_CLKON 0x4 #define VFE40_VBIF_FIXED_SORT_EN 0x30 #define VFE40_VBIF_FIXED_SORT_SEL0 0x34 #define VFE40_VBIF_IN_RD_LIM_CONF0 0xB0 #define VFE40_VBIF_IN_RD_LIM_CONF1 0xB4 #define VFE40_VBIF_IN_RD_LIM_CONF2 0xB8 Loading Loading @@ -106,7 +108,8 @@ static void msm_vfe40_init_qos_parms(struct vfe_device *vfe_dev) msm_camera_io_w(0xAAA9AAA9, vfebase + VFE40_BUS_BDG_QOS_CFG_5); msm_camera_io_w(0xAAA9AAA9, vfebase + VFE40_BUS_BDG_QOS_CFG_6); msm_camera_io_w(0x0001AAA9, vfebase + VFE40_BUS_BDG_QOS_CFG_7); } else if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION) { } else if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION || vfe_dev->vfe_hw_version == VFE40_8939_VERSION) { msm_camera_io_w(0xAAA5AAA5, vfebase + VFE40_BUS_BDG_QOS_CFG_0); msm_camera_io_w(0xAAA5AAA5, vfebase + VFE40_BUS_BDG_QOS_CFG_1); msm_camera_io_w(0xAAA5AAA5, vfebase + VFE40_BUS_BDG_QOS_CFG_2); Loading Loading @@ -228,6 +231,16 @@ static void msm_vfe40_init_vbif_parms_8x26(struct vfe_device *vfe_dev) return; } static void msm_vfe40_init_vbif_parms_8939(struct vfe_device *vfe_dev) { void __iomem *vfe_vbif_base = vfe_dev->vfe_vbif_base; msm_camera_io_w(0x00000fff, vfe_vbif_base + VFE40_VBIF_FIXED_SORT_EN); msm_camera_io_w(0x00555000, vfe_vbif_base + VFE40_VBIF_FIXED_SORT_SEL0); return; } static void msm_vfe40_init_vbif_parms(struct vfe_device *vfe_dev) { switch (vfe_dev->vfe_hw_version) { Loading @@ -246,6 +259,9 @@ static void msm_vfe40_init_vbif_parms(struct vfe_device *vfe_dev) /*Reset hardware values are correct vbif values. So no need to set*/ break; case VFE40_8939_VERSION: msm_vfe40_init_vbif_parms_8939(vfe_dev); break; default: BUG(); pr_err("%s: VBIF is NOT configured for HW Version %x\n", Loading Loading @@ -952,7 +968,8 @@ static void msm_vfe40_axi_cfg_wm_reg( uint32_t burst_len; uint32_t wm_base = VFE40_WM_BASE(stream_info->wm[plane_idx]); if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION) if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION || vfe_dev->vfe_hw_version == VFE40_8939_VERSION) burst_len = VFE40_BURST_LEN_8916_VERSION; else burst_len = VFE40_BURST_LEN; Loading Loading @@ -1356,7 +1373,8 @@ static void msm_vfe40_stats_cfg_ub(struct vfe_device *vfe_dev) 16, /*MSM_ISP_STATS_BHIST*/ }; if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION) { if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION || vfe_dev->vfe_hw_version == VFE40_8939_VERSION) { stats_burst_len = VFE40_STATS_BURST_LEN_8916_VERSION; ub_offset = VFE40_UB_SIZE_8916; } else { Loading