diff options
| -rw-r--r-- | drivers/media/video/pxa_camera.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/media/video/pxa_camera.c b/drivers/media/video/pxa_camera.c index 5ecc30daef2d..04bf5c11308d 100644 --- a/drivers/media/video/pxa_camera.c +++ b/drivers/media/video/pxa_camera.c | |||
| @@ -609,12 +609,9 @@ static void pxa_dma_add_tail_buf(struct pxa_camera_dev *pcdev, | |||
| 609 | */ | 609 | */ |
| 610 | static void pxa_camera_start_capture(struct pxa_camera_dev *pcdev) | 610 | static void pxa_camera_start_capture(struct pxa_camera_dev *pcdev) |
| 611 | { | 611 | { |
| 612 | unsigned long cicr0, cifr; | 612 | unsigned long cicr0; |
| 613 | 613 | ||
| 614 | dev_dbg(pcdev->soc_host.v4l2_dev.dev, "%s\n", __func__); | 614 | dev_dbg(pcdev->soc_host.v4l2_dev.dev, "%s\n", __func__); |
| 615 | /* Reset the FIFOs */ | ||
| 616 | cifr = __raw_readl(pcdev->base + CIFR) | CIFR_RESET_F; | ||
| 617 | __raw_writel(cifr, pcdev->base + CIFR); | ||
| 618 | /* Enable End-Of-Frame Interrupt */ | 615 | /* Enable End-Of-Frame Interrupt */ |
| 619 | cicr0 = __raw_readl(pcdev->base + CICR0) | CICR0_ENB; | 616 | cicr0 = __raw_readl(pcdev->base + CICR0) | CICR0_ENB; |
| 620 | cicr0 &= ~CICR0_EOFM; | 617 | cicr0 &= ~CICR0_EOFM; |
| @@ -935,7 +932,7 @@ static void pxa_camera_deactivate(struct pxa_camera_dev *pcdev) | |||
| 935 | static irqreturn_t pxa_camera_irq(int irq, void *data) | 932 | static irqreturn_t pxa_camera_irq(int irq, void *data) |
| 936 | { | 933 | { |
| 937 | struct pxa_camera_dev *pcdev = data; | 934 | struct pxa_camera_dev *pcdev = data; |
| 938 | unsigned long status, cicr0; | 935 | unsigned long status, cifr, cicr0; |
| 939 | struct pxa_buffer *buf; | 936 | struct pxa_buffer *buf; |
| 940 | struct videobuf_buffer *vb; | 937 | struct videobuf_buffer *vb; |
| 941 | 938 | ||
| @@ -949,6 +946,10 @@ static irqreturn_t pxa_camera_irq(int irq, void *data) | |||
| 949 | __raw_writel(status, pcdev->base + CISR); | 946 | __raw_writel(status, pcdev->base + CISR); |
| 950 | 947 | ||
| 951 | if (status & CISR_EOF) { | 948 | if (status & CISR_EOF) { |
| 949 | /* Reset the FIFOs */ | ||
| 950 | cifr = __raw_readl(pcdev->base + CIFR) | CIFR_RESET_F; | ||
| 951 | __raw_writel(cifr, pcdev->base + CIFR); | ||
| 952 | |||
| 952 | pcdev->active = list_first_entry(&pcdev->capture, | 953 | pcdev->active = list_first_entry(&pcdev->capture, |
| 953 | struct pxa_buffer, vb.queue); | 954 | struct pxa_buffer, vb.queue); |
| 954 | vb = &pcdev->active->vb; | 955 | vb = &pcdev->active->vb; |
