| Date: | 2010-04-20 08:51:29 (3 years 1 month ago) |
|---|---|
| Author: | Stefan Herbrechtsmeier |
| Commit: | a47f6be45670465d45a3d27f7ff71986bd35d6c4 |
| Message: | V4L/DVB: pxa_camera: move fifo reset direct before dma start Move the fifo reset from pxa_camera_start_capture to pxa_camera_irq direct before the dma start after an end of frame interrupt to prevent images from shifting because of old data at the begin of the frame. Signed-off-by: Stefan Herbrechtsmeier <hbmeier@hni.uni-paderborn.de> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> Tested-by: Antonio Ospite <ospite@studenti.unina.it> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> |
| Files: |
drivers/media/video/pxa_camera.c (3 diffs) |
Change Details
| drivers/media/video/pxa_camera.c | ||
|---|---|---|
| 609 | 609 | */ |
| 610 | 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 | 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 | 615 | /* Enable End-Of-Frame Interrupt */ |
| 619 | 616 | cicr0 = __raw_readl(pcdev->base + CICR0) | CICR0_ENB; |
| 620 | 617 | cicr0 &= ~CICR0_EOFM; |
| ... | ... | |
| 935 | 932 | static irqreturn_t pxa_camera_irq(int irq, void *data) |
| 936 | 933 | { |
| 937 | 934 | struct pxa_camera_dev *pcdev = data; |
| 938 | unsigned long status, cicr0; | |
| 935 | unsigned long status, cifr, cicr0; | |
| 939 | 936 | struct pxa_buffer *buf; |
| 940 | 937 | struct videobuf_buffer *vb; |
| 941 | 938 | |
| ... | ... | |
| 949 | 946 | __raw_writel(status, pcdev->base + CISR); |
| 950 | 947 | |
| 951 | 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 | 953 | pcdev->active = list_first_entry(&pcdev->capture, |
| 953 | 954 | struct pxa_buffer, vb.queue); |
| 954 | 955 | vb = &pcdev->active->vb; |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9
