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

Commit 4d3b40d5 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: Add support for multiple SOF events."

parents eff02f3c 73792162
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -368,15 +368,16 @@ static void msm_vfe40_process_camif_irq(struct vfe_device *vfe_dev,
	uint32_t irq_status0, uint32_t irq_status1,
	struct msm_isp_timestamp *ts)
{
	int cnt;

	if (!(irq_status0 & 0xF))
		return;

	if (irq_status0 & (1 << 0)) {
		ISP_DBG("%s: SOF IRQ\n", __func__);
		if (vfe_dev->axi_data.src_info[VFE_PIX_0].raw_stream_count > 0
			&& vfe_dev->axi_data.src_info[VFE_PIX_0].
			pix_stream_count == 0) {
			msm_isp_sof_notify(vfe_dev, VFE_PIX_0, ts);
		cnt = vfe_dev->axi_data.src_info[VFE_PIX_0].raw_stream_count;
		if (cnt > 0) {
			msm_isp_sof_notify(vfe_dev, VFE_RAW_0, ts);
			if (vfe_dev->axi_data.stream_update)
				msm_isp_axi_stream_update(vfe_dev);
			msm_isp_update_framedrop_reg(vfe_dev);
+1 −1
Original line number Diff line number Diff line
@@ -424,7 +424,7 @@ void msm_isp_sof_notify(struct vfe_device *vfe_dev,
	sof_event.frame_id = vfe_dev->axi_data.src_info[frame_src].frame_id;
	sof_event.timestamp = ts->event_time;
	sof_event.mono_timestamp = ts->buf_time;
	msm_isp_send_event(vfe_dev, ISP_EVENT_SOF, &sof_event);
	msm_isp_send_event(vfe_dev, ISP_EVENT_SOF + frame_src, &sof_event);
}

void msm_isp_calculate_framedrop(
+4 −4
Original line number Diff line number Diff line
@@ -302,8 +302,6 @@ enum msm_isp_event_idx {
	ISP_WM_BUS_OVERFLOW = 4,
	ISP_STATS_OVERFLOW  = 5,
	ISP_CAMIF_ERROR     = 6,
	ISP_SOF             = 7,
	ISP_EOF             = 8,
	ISP_BUF_DONE        = 9,
	ISP_EVENT_MAX       = 10
};
@@ -312,6 +310,8 @@ enum msm_isp_event_idx {
#define ISP_EVENT_BASE            (V4L2_EVENT_PRIVATE_START)
#define ISP_BUF_EVENT_BASE        (ISP_EVENT_BASE + (1 << ISP_EVENT_OFFSET))
#define ISP_STATS_EVENT_BASE      (ISP_EVENT_BASE + (2 << ISP_EVENT_OFFSET))
#define ISP_SOF_EVENT_BASE        (ISP_EVENT_BASE + (3 << ISP_EVENT_OFFSET))
#define ISP_EOF_EVENT_BASE        (ISP_EVENT_BASE + (4 << ISP_EVENT_OFFSET))
#define ISP_EVENT_REG_UPDATE      (ISP_EVENT_BASE + ISP_REG_UPDATE)
#define ISP_EVENT_START_ACK       (ISP_EVENT_BASE + ISP_START_ACK)
#define ISP_EVENT_STOP_ACK        (ISP_EVENT_BASE + ISP_STOP_ACK)
@@ -319,8 +319,8 @@ enum msm_isp_event_idx {
#define ISP_EVENT_WM_BUS_OVERFLOW (ISP_EVENT_BASE + ISP_WM_BUS_OVERFLOW)
#define ISP_EVENT_STATS_OVERFLOW  (ISP_EVENT_BASE + ISP_STATS_OVERFLOW)
#define ISP_EVENT_CAMIF_ERROR     (ISP_EVENT_BASE + ISP_CAMIF_ERROR)
#define ISP_EVENT_SOF             (ISP_EVENT_BASE + ISP_SOF)
#define ISP_EVENT_EOF             (ISP_EVENT_BASE + ISP_EOF)
#define ISP_EVENT_SOF             (ISP_SOF_EVENT_BASE)
#define ISP_EVENT_EOF             (ISP_EOF_EVENT_BASE)
#define ISP_EVENT_BUF_DONE        (ISP_EVENT_BASE + ISP_BUF_DONE)
#define ISP_EVENT_BUF_DIVERT      (ISP_BUF_EVENT_BASE)
#define ISP_EVENT_STATS_NOTIFY    (ISP_STATS_EVENT_BASE)