OpenCloudOS-Kernel/drivers/media
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
..
common V4L/DVB (11934): Change order for FM tune 2009-06-16 19:07:25 -03:00
dvb V4L/DVB (11964): b2c2: Fix problems with frontend attachment 2009-06-16 19:07:40 -03:00
radio V4L/DVB (11957): dsbr100: change radio->muted to radio->status, update suspend/resume 2009-06-16 19:07:36 -03:00
video V4L/DVB (11966): ov511: Fix unit_video parameter behavior 2009-06-16 19:07:40 -03:00
Kconfig V4L/DVB (11881): one kconfig controls them all 2009-06-16 18:21:16 -03:00
Makefile V4L/DVB (8274): sms1xxx: build cleanup after driver relocation 2008-07-20 07:20:56 -03:00