1
linux/drivers
Mauro Carvalho Chehab 163fe744c3 V4L/DVB (11966): ov511: Fix unit_video parameter behavior
Fix a regression caused by changeset 9133:64aed7485a43 - v4l: disconnect
kernel number from minor

Before the above changeset, ov511_probe used to allow forcing to use a
certain specific set of video devices, like:

modprobe ov511 unit_video=4,1,3 num_uv=3

So, assuming that you have 5 ov511 devices, and connect they one by one,
they'll gain the following device numbers (at the connection order):
/dev/video4
/dev/video1
/dev/video3
/dev/video0
/dev/video2

However, this was changed due to this change at video_register_device():

+ nr = find_next_zero_bit(video_nums[type], minor_cnt, nr == -1 ? 0 : nr);

With the previous behavior, a trial to register on an already allocated mirror
would fail, and a loop would get the next requested minor. However, the current
behavior is to get the next available minor instead of failing. Due to that,
this means that the above modprobe parameter will give, instead:

/dev/video5
/dev/video6
/dev/video7
/dev/video8
/dev/video9

In order to restore the original behavior, a static var were added,
storing the amount of already registered devices.

While there, it also fixes the locking of the probe/disconnect functions.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-06-16 19:07:40 -03:00
..
accessibility
acpi Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-06-16 11:24:23 -07:00
amba
ata Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
atm
auxdisplay
base Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
block Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2009-06-16 11:46:45 -07:00
bluetooth Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
cdrom
char Merge branch 'serial' 2009-06-16 12:03:43 -07:00
clocksource
connector trivial: Kconfig: .ko is normally not included in module names 2009-06-12 18:01:50 +02:00
cpufreq
cpuidle
crypto Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
dca
dio
dma
edac trivial: fix typos s/paramter/parameter/ and s/excute/execute/ in documentation and source comments. 2009-06-12 18:01:46 +02:00
eisa
firewire
firmware
gpio
gpu Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2009-06-12 18:09:18 -07:00
hid Merge branches 'upstream' and 'ntrig-multitouch' into for-linus 2009-06-12 17:42:13 +02:00
hwmon hwmon: (max6650) Add support for alarms 2009-06-15 18:39:52 +02:00
i2c Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2009-06-16 11:29:17 -07:00
ide Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
idle
ieee1394 fs: Remove i_cindex from struct inode 2009-06-11 21:36:09 -04:00
ieee802154 ieee802154: fix kconfig bool/tristate muckup 2009-06-13 23:36:29 -07:00
infiniband Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
isdn Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
leds
lguest Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest 2009-06-12 09:32:26 -07:00
macintosh Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2009-06-16 11:29:17 -07:00
mca
md block: remove some includings of blktrace_api.h 2009-06-16 11:19:36 +02:00
media V4L/DVB (11966): ov511: Fix unit_video parameter behavior 2009-06-16 19:07:40 -03:00
memstick
message Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
mfd MFD,mmc: tmio_mmc: make HCLK configurable 2009-06-13 22:42:59 +02:00
misc Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2009-06-16 11:29:17 -07:00
mmc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc 2009-06-14 13:46:57 -07:00
mtd Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
net Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-06-16 11:30:37 -07:00
nubus
of Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2009-06-15 09:40:05 -07:00
oprofile
parisc
parport parport_pc: clean up the modified while loops using for 2009-06-11 08:51:03 -07:00
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2009-06-15 09:40:05 -07:00
pcmcia
platform
pnp Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2009-06-12 18:09:18 -07:00
power
ps3 drivers/ps3: Add missing annotations 2009-06-15 16:47:25 +10:00
rapidio
regulator regulator/max1586: fix V3 gain calculation integer overflow 2009-06-15 11:18:27 +01:00
rtc Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-06-14 13:42:43 -07:00
s390 [S390] pm: dcssblk power management callbacks. 2009-06-16 10:31:22 +02:00
sbus openprom: Squelch useless GCC warning. 2009-06-16 04:56:57 -07:00
scsi Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
serial imx: Check for NULL pointer deref before calling tty_encode_baud_rate 2009-06-16 12:01:17 -07:00
sh
sn
spi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin 2009-06-16 11:49:58 -07:00
ssb
staging Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-06-15 03:02:23 -07:00
tc
telephony
thermal
uio
usb Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-06-16 11:30:37 -07:00
uwb
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6 2009-06-16 11:52:41 -07:00
virtio virtio: enhance id_matching for virtio drivers 2009-06-12 22:16:40 +09:30
w1 trivial: Kconfig: .ko is normally not included in module names 2009-06-12 18:01:50 +02:00
watchdog Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
xen PM core: rename suspend and resume functions 2009-06-12 21:32:31 +02:00
zorro
Kconfig
Makefile