Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 350e62f8 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm-camera: VBIF configuration changes for 8939"

parents ba3f1335 30619b57
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+21 −3
Original line number Diff line number Diff line
@@ -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
@@ -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);
@@ -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) {
@@ -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",
@@ -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;
@@ -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 {