aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/platform/msm/camera_v2/isp/msm_isp40.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c b/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c
index 402852236ad..f54f1777d10 100644
--- a/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c
+++ b/drivers/media/platform/msm/camera_v2/isp/msm_isp40.c
@@ -31,10 +31,13 @@
#define VFE40_STATS_BURST_LEN_8916_VERSION 2
#define VFE40_UB_SIZE 1536 /* 1536 * 128 bits = 24KB */
#define VFE40_UB_SIZE_8916 2048 /* 2048 * 128 bits = 32KB */
+#define VFE40_UB_SIZE_8939 3072 /* 3072 * 128 bits = 48KB */
#define VFE40_EQUAL_SLICE_UB 190 /* (UB_SIZE - STATS SIZE)/6 */
#define VFE40_EQUAL_SLICE_UB_8916 276
+#define VFE40_EQUAL_SLICE_UB_8939 446
#define VFE40_TOTAL_WM_UB 1144 /* UB_SIZE - STATS SIZE */
#define VFE40_TOTAL_WM_UB_8916 1656
+#define VFE40_TOTAL_WM_UB_8939 2680
#define VFE40_WM_BASE(idx) (0x6C + 0x24 * idx)
#define VFE40_RDI_BASE(idx) (0x2E8 + 0x4 * idx)
#define VFE40_XBAR_BASE(idx) (0x58 + 0x4 * (idx / 2))
@@ -1276,6 +1279,9 @@ static void msm_vfe40_cfg_axi_ub_equal_default(
if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION) {
vfe_dev->ub_info->wm_ub = VFE40_TOTAL_WM_UB_8916;
total_wm_ub = VFE40_TOTAL_WM_UB_8916;
+ } else if (vfe_dev->vfe_hw_version == VFE40_8939_VERSION){
+ vfe_dev->ub_info->wm_ub = VFE40_TOTAL_WM_UB_8939;
+ total_wm_ub = VFE40_TOTAL_WM_UB_8939;
} else {
vfe_dev->ub_info->wm_ub = VFE40_TOTAL_WM_UB;
total_wm_ub = VFE40_TOTAL_WM_UB;
@@ -1318,6 +1324,9 @@ static void msm_vfe40_cfg_axi_ub_equal_slicing(
if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION) {
vfe_dev->ub_info->wm_ub = VFE40_EQUAL_SLICE_UB_8916;
equal_slice_ub = VFE40_EQUAL_SLICE_UB_8916;
+ } else if (vfe_dev->vfe_hw_version == VFE40_8939_VERSION){
+ vfe_dev->ub_info->wm_ub = VFE40_EQUAL_SLICE_UB_8939;
+ equal_slice_ub = VFE40_EQUAL_SLICE_UB_8939;
} else {
vfe_dev->ub_info->wm_ub = VFE40_EQUAL_SLICE_UB;
equal_slice_ub = VFE40_EQUAL_SLICE_UB;
@@ -1587,10 +1596,12 @@ 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 ||
- vfe_dev->vfe_hw_version == VFE40_8939_VERSION) {
+ if (vfe_dev->vfe_hw_version == VFE40_8916_VERSION ) {
stats_burst_len = VFE40_STATS_BURST_LEN_8916_VERSION;
ub_offset = VFE40_UB_SIZE_8916;
+ } else if (vfe_dev->vfe_hw_version == VFE40_8939_VERSION) {
+ stats_burst_len = VFE40_STATS_BURST_LEN_8916_VERSION;
+ ub_offset = VFE40_UB_SIZE_8939;
} else {
stats_burst_len = VFE40_STATS_BURST_LEN;
ub_offset = VFE40_UB_SIZE;