diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-08-14 08:25:19 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-08-14 08:25:19 -0700 |
commit | 3011c7f0d421ed85c75683addf3b31eaa1ab6cec (patch) | |
tree | bf35128e4b3958b39fa4e158a7ead2b7831777a8 /drivers/media/video/pxa_camera.c | |
parent | 64f1607ffbbc772685733ea63e6f7f4183df1b16 (diff) | |
parent | 08b39642b1e375afd014c50f6013ec4a292ca3b2 (diff) | |
download | kernel_samsung_crespo-3011c7f0d421ed85c75683addf3b31eaa1ab6cec.zip kernel_samsung_crespo-3011c7f0d421ed85c75683addf3b31eaa1ab6cec.tar.gz kernel_samsung_crespo-3011c7f0d421ed85c75683addf3b31eaa1ab6cec.tar.bz2 |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (38 commits)
V4L/DVB (12441): siano: read buffer overflow
V4L/DVB (12440): Use kzalloc for frontend states to have struct dvb_frontend properly
V4L/DVB (12438): Read buffer overflow
V4L/DVB (12437): dvb: siano uses/depends on INPUT
V4L/DVB (12436): stk-webcam: read buffer overflow
V4L/DVB (12432): em28xx: fix regression in Empire DualTV digital tuning
V4L/DVB (12429): v4l2-ioctl: fix G_STD and G_PARM default handlers
V4L/DVB (12428): hdpvr: add missing initialization of current_norm
V4L/DVB (12424): soc-camera: fix recursive locking in .buf_queue()
V4L/DVB (12422): media/zr364xx: fix build errors
V4L/DVB (12405): em28xx-cards: move register 0x13 setting to the proper place
V4L/DVB (12411): em28xx: Fix artifacts with Silvercrest webcam
V4L/DVB (12410): em28xx: Move the non-board dependent part to be outside em28xx_pre_card_setup()
V4L/DVB (12407): em28xx: Adjust Silvercrest xtal frequency
V4L/DVB (12406): em28xx: fix: don't do image interlacing on webcams
V4L/DVB (12403): em28xx: properly reports some em2710 chips
V4L/DVB (12402): em28xx: fix: some em2710 chips use a different vendor ID
V4L/DVB (12401): m9v011: add vflip/hflip controls to control mirror/upside down
V4L/DVB (12400): em28xx: Allow changing fps on webcams
V4L/DVB (12399): mt9v011: Add support for controlling frame rates
...
Diffstat (limited to 'drivers/media/video/pxa_camera.c')
-rw-r--r-- | drivers/media/video/pxa_camera.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/media/video/pxa_camera.c b/drivers/media/video/pxa_camera.c index 46e0d8a..016bb45 100644 --- a/drivers/media/video/pxa_camera.c +++ b/drivers/media/video/pxa_camera.c @@ -612,6 +612,7 @@ static void pxa_camera_stop_capture(struct pxa_camera_dev *pcdev) dev_dbg(pcdev->soc_host.dev, "%s\n", __func__); } +/* Called under spinlock_irqsave(&pcdev->lock, ...) */ static void pxa_videobuf_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb) { @@ -619,13 +620,10 @@ static void pxa_videobuf_queue(struct videobuf_queue *vq, struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent); struct pxa_camera_dev *pcdev = ici->priv; struct pxa_buffer *buf = container_of(vb, struct pxa_buffer, vb); - unsigned long flags; dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d active=%p\n", __func__, vb, vb->baddr, vb->bsize, pcdev->active); - spin_lock_irqsave(&pcdev->lock, flags); - list_add_tail(&vb->queue, &pcdev->capture); vb->state = VIDEOBUF_ACTIVE; @@ -633,8 +631,6 @@ static void pxa_videobuf_queue(struct videobuf_queue *vq, if (!pcdev->active) pxa_camera_start_capture(pcdev); - - spin_unlock_irqrestore(&pcdev->lock, flags); } static void pxa_videobuf_release(struct videobuf_queue *vq, @@ -1579,6 +1575,7 @@ static int __devinit pxa_camera_probe(struct platform_device *pdev) pcdev->mclk = 20000000; } + pcdev->soc_host.dev = &pdev->dev; pcdev->mclk_divisor = mclk_get_divisor(pcdev); INIT_LIST_HEAD(&pcdev->capture); @@ -1644,7 +1641,6 @@ static int __devinit pxa_camera_probe(struct platform_device *pdev) pcdev->soc_host.drv_name = PXA_CAM_DRV_NAME; pcdev->soc_host.ops = &pxa_soc_camera_host_ops; pcdev->soc_host.priv = pcdev; - pcdev->soc_host.dev = &pdev->dev; pcdev->soc_host.nr = pdev->id; err = soc_camera_host_register(&pcdev->soc_host); |