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

Commit 16b4b351 authored by Sundara Vinayagam's avatar Sundara Vinayagam Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: Add camera support for apq8009



Initial snapshot of camera drivers are taken from msm-3.18 kernel
version @ 'commit cb28f8462e97 ("Merge PM / devfreq: memlat: Remove
kfree() on probe fails")'. Make required changes in camera
drivers to support camera modules on apq8009.

Change-Id: I3324684bcb866a9c67c1ba53d24fabd2bd98be43
Signed-off-by: default avatarSundara Vinayagam <sundvi@codeaurora.org>
parent 53de1644
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -95,13 +95,22 @@ config MSM_EEPROM
          and also provides support for writing data in case of FLASH ROM.
	  Currently supports I2C, CCI and SPI protocol

config MSM_ISP_V1
        bool "QTI MSM Image Signal Processing interface support"
        depends on MSMB_CAMERA
        ---help---
          Enable support for Image Signal Processing interface module.
          This module acts as a crossbar between CSID and VFE. Output
          of any CID of CSID can be routed to of pix or raw
          data interface in VFE.

config MSM_ISPIF
        bool "QTI MSM Image Signal Processing interface support"
        depends on MSMB_CAMERA
        ---help---
          Enable support for Image Signal Processing interface module.
          This module acts as a crossbar between CSID and VFE. Output
          of any CID of CSID can be routed to of of pix or raw
          of any CID of CSID can be routed to of pix or raw
          data interface in VFE.

config MSM_ISPIF_V1
+0 −2
Original line number Diff line number Diff line
@@ -20,8 +20,6 @@
#define EMPTY_QSEECOM_HANDLE    NULL
#define QSEECOM_SBUFF_SIZE      SZ_128K

#define MSM_CAMERA_TZ_UTIL_VERBOSE

#define MSM_CAMERA_TZ_BOOT_PROTECTED (false)

/* Update version major number in case the HLOS-TA interface is changed*/
+5 −0
Original line number Diff line number Diff line
ccflags-y += -Idrivers/media/platform/msm/camera_v2
ccflags-y += -Idrivers/media/platform/msm/camera_v2/sensor/io
ccflags-y += -Idrivers/media/platform/msm/camera_v2/common/
ifeq ($(CONFIG_MSM_ISP_V1),y)
obj-$(CONFIG_MSMB_CAMERA) += msm_isp_32.o msm_buf_mgr.o msm_isp_util_32.o msm_isp_axi_util_32.o msm_isp_stats_util_32.o
obj-$(CONFIG_MSMB_CAMERA) += msm_isp32.o
else
obj-$(CONFIG_MSMB_CAMERA) += msm_buf_mgr.o msm_isp_util.o msm_isp_axi_util.o msm_isp_stats_util.o
obj-$(CONFIG_MSMB_CAMERA) += msm_isp48.o msm_isp47.o msm_isp46.o msm_isp44.o msm_isp40.o msm_isp.o
endif
+13 −2
Original line number Diff line number Diff line
@@ -189,7 +189,9 @@ static int msm_isp_prepare_v4l2_buf(struct msm_isp_buf_mgr *buf_mgr,
	int i, rc = -1;
	int ret;
	struct msm_isp_buffer_mapped_info *mapped_info;
#ifndef CONFIG_MSM_ISP_V1
	uint32_t accu_length = 0;
#endif
	struct msm_isp_bufq *bufq = NULL;

	bufq = msm_isp_get_bufq(buf_mgr, buf_info->bufq_handle);
@@ -228,8 +230,12 @@ static int msm_isp_prepare_v4l2_buf(struct msm_isp_buf_mgr *buf_mgr,
			goto get_phy_err;
		}

#ifdef CONFIG_MSM_ISP_V1
		mapped_info->paddr += qbuf_buf->planes[i].offset;
#else
		mapped_info->paddr += accu_length;
		accu_length += qbuf_buf->planes[i].length;
#endif

		CDBG("%s: plane: %d addr:%pK\n",
			__func__, i, (void *)mapped_info->paddr);
@@ -732,10 +738,17 @@ static int msm_isp_buf_divert(struct msm_isp_buf_mgr *buf_mgr,
	spin_lock_irqsave(&bufq->bufq_lock, flags);

	buf_info->frame_id = frame_id;
#ifdef CONFIG_MSM_ISP_V1
	if (buf_info->state == MSM_ISP_BUFFER_STATE_DEQUEUED) {
		buf_info->state = MSM_ISP_BUFFER_STATE_DIVERTED;
		buf_info->tv = tv;
	}
#else
	if (BUF_SRC(bufq->stream_id) == MSM_ISP_BUFFER_SRC_NATIVE) {
		buf_info->state = MSM_ISP_BUFFER_STATE_DIVERTED;
		buf_info->tv = tv;
	}
#endif
	spin_unlock_irqrestore(&bufq->bufq_lock, flags);
	return 0;
}
@@ -1077,7 +1090,6 @@ static void msm_isp_release_all_bufq(
	}
}


/**
 * msm_isp_buf_put_scratch() - Release scratch buffers
 * @buf_mgr: The buffer structure for h/w
@@ -1220,7 +1232,6 @@ int msm_isp_smmu_attach(struct msm_isp_buf_mgr *buf_mgr,
	return rc;
}


static int msm_isp_init_isp_buf_mgr(struct msm_isp_buf_mgr *buf_mgr,
	const char *ctx_name)
{
+344 −243

File changed.

Preview size limit exceeded, changes collapsed.

Loading