From: Laurent Pinchart Date: Sun, 3 Nov 2013 00:25:06 +0000 (-0300) Subject: [media] v4l: atmel-isi: Reset the ISI when starting the stream X-Git-Tag: v3.14-rc1~20^2~261 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c768626479187f1fcc3697e5f150b7af259c657c;p=platform%2Fkernel%2Flinux-stable.git [media] v4l: atmel-isi: Reset the ISI when starting the stream The queue setup operation isn't the right place to reset the ISI. Move the reset call to the start streaming operation. Signed-off-by: Laurent Pinchart Acked-by: Josh Wu Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c index ea8816c..ae2c8c1 100644 --- a/drivers/media/platform/soc_camera/atmel-isi.c +++ b/drivers/media/platform/soc_camera/atmel-isi.c @@ -241,16 +241,6 @@ static int queue_setup(struct vb2_queue *vq, const struct v4l2_format *fmt, struct soc_camera_host *ici = to_soc_camera_host(icd->parent); struct atmel_isi *isi = ici->priv; unsigned long size; - int ret; - - /* Reset ISI */ - ret = atmel_isi_wait_status(isi, WAIT_ISI_RESET); - if (ret < 0) { - dev_err(icd->parent, "Reset ISI timed out\n"); - return ret; - } - /* Disable all interrupts */ - isi_writel(isi, ISI_INTDIS, ~0UL); size = icd->sizeimage; @@ -390,6 +380,16 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) struct soc_camera_host *ici = to_soc_camera_host(icd->parent); struct atmel_isi *isi = ici->priv; u32 sr = 0; + int ret; + + /* Reset ISI */ + ret = atmel_isi_wait_status(isi, WAIT_ISI_RESET); + if (ret < 0) { + dev_err(icd->parent, "Reset ISI timed out\n"); + return ret; + } + /* Disable all interrupts */ + isi_writel(isi, ISI_INTDIS, ~0UL); spin_lock_irq(&isi->lock); /* Clear any pending interrupt */