[PATCH 04/13] atmel-isi: move the cfg1 initialize to isi_hw_initialize()
Josh Wu
rainyfeeling at gmail.com
Mon Jan 18 04:21:40 PST 2016
Since cfg1 initialization just about the frame rate, and it hardware
related, just move it to isi_hw_initialize().
Signed-off-by: Josh Wu <rainyfeeling at gmail.com>
---
drivers/media/platform/soc_camera/atmel-isi.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c
index 0c3cb74..4bd8258 100644
--- a/drivers/media/platform/soc_camera/atmel-isi.c
+++ b/drivers/media/platform/soc_camera/atmel-isi.c
@@ -210,6 +210,10 @@ static void isi_hw_initialize(struct atmel_isi *isi)
cfg1 |= ISI_CFG1_THMASK_BEATS_16;
+ cfg1 |= isi->pdata.frate & ISI_CFG1_FRATE_DIV_MASK;
+
+ cfg1 |= ISI_CFG1_DISCR;
+
isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS);
isi_writel(isi, ISI_CFG1, cfg1);
}
@@ -409,9 +413,8 @@ static void buffer_cleanup(struct vb2_buffer *vb)
static void start_dma(struct atmel_isi *isi, struct frame_buffer *buffer)
{
- u32 ctrl, cfg1;
+ u32 ctrl;
- cfg1 = isi_readl(isi, ISI_CFG1);
/* Enable irq: cxfr for the codec path, pxfr for the preview path */
isi_writel(isi, ISI_INTEN,
ISI_SR_CXFR_DONE | ISI_SR_PXFR_DONE);
@@ -436,10 +439,6 @@ static void start_dma(struct atmel_isi *isi, struct frame_buffer *buffer)
isi_writel(isi, ISI_DMA_CHER, ISI_DMA_CHSR_P_CH);
}
- cfg1 &= ~ISI_CFG1_FRATE_DIV_MASK;
- /* Enable linked list */
- cfg1 |= isi->pdata.frate | ISI_CFG1_DISCR;
-
/* Enable ISI */
ctrl = ISI_CTRL_EN;
@@ -447,7 +446,6 @@ static void start_dma(struct atmel_isi *isi, struct frame_buffer *buffer)
ctrl |= ISI_CTRL_CDC;
isi_writel(isi, ISI_CTRL, ctrl);
- isi_writel(isi, ISI_CFG1, cfg1);
}
static void buffer_queue(struct vb2_buffer *vb)
--
1.9.1
More information about the linux-arm-kernel
mailing list