V4L/DVB (6538): em28xx: fix locking to allow accesses from 2 different threads at...
authorSascha Sommer <saschasommer@freenet.de>
Sun, 4 Nov 2007 00:22:38 +0000 (21:22 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 25 Jan 2008 21:01:55 +0000 (19:01 -0200)
commit5a80415bcabf2b59e8c34db6e743c54582cfd3c2
tree0702641680d71fc50826cb98c3e330d35b993aa5
parentea4fd5679b258d8ae85124a47b587a53ba6409de
V4L/DVB (6538): em28xx: fix locking to allow accesses from 2 different threads at the same time

The attached patch modifies the em28xx driver so that there can be ioctls from
multiple different threads.

This is necessary for capture apps like MPlayer that use different threads for
capturing and channel tuning.

Now the locking is only done for the ioctls that change properties of the
device or access the i2c bus.

It also removes some locks that look unnecessary:

In em28xx_init_dev:
  the videodevice is not registered yet so nothing can access the hardware
 meanwhile, the device struct is not assigned to the interface yet so no race
 with disconnect is possible

In em28xx_release_resources:
  it gets only called when dev->lock is already held

Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/em28xx/em28xx-video.c
drivers/media/video/em28xx/em28xx.h