27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

26 Jul, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    fs: Merge split strings
    treewide: fix potentially dangerous trailing ';' in #defined values/expressions
    uwb: Fix misspelling of neighbourhood in comment
    net, netfilter: Remove redundant goto in ebt_ulog_packet
    trivial: don't touch files that are removed in the staging tree
    lib/vsprintf: replace link to Draft by final RFC number
    doc: Kconfig: `to be' -> `be'
    doc: Kconfig: Typo: square -> squared
    doc: Konfig: Documentation/power/{pm => apm-acpi}.txt
    drivers/net: static should be at beginning of declaration
    drivers/media: static should be at beginning of declaration
    drivers/i2c: static should be at beginning of declaration
    XTENSA: static should be at beginning of declaration
    SH: static should be at beginning of declaration
    MIPS: static should be at beginning of declaration
    ARM: static should be at beginning of declaration
    rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check
    Update my e-mail address
    PCIe ASPM: forcedly -> forcibly
    gma500: push through device driver tree
    ...

    Fix up trivial conflicts:
    - arch/arm/mach-ep93xx/dma-m2p.c (deleted)
    - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)
    - drivers/net/r8169.c (just context changes)

    Linus Torvalds
     

22 Jul, 2011

1 commit


19 Jul, 2011

1 commit

  • While compiling it with Fedora 15, I noticed this issue:

    inlined from ‘si4713_write_econtrol_string’ at drivers/media/radio/si4713-i2c.c:1065:24:
    arch/x86/include/asm/uaccess_32.h:211:26: error: call to ‘copy_from_user_overflow’ declared with attribute error: copy_from_user() buffer size is not provably correct

    Cc: stable@kernel.org
    Signed-off-by: Mauro Carvalho Chehab
    Acked-by: Sakari Ailus
    Acked-by: Eduardo Valentin
    Reviewed-by: Eugene Teo
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     

18 Jul, 2011

1 commit

  • * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
    [media] tuner-core: fix a 2.6.39 regression with mt20xx
    [media] dvb_frontend: fix race condition in stopping/starting frontend
    [media] media: fix radio-sf16fmr2 build when SND is not enabled
    [media] MEDIA: Fix non-ISA_DMA_API link failure of sound code
    [media] nuvoton-cir: make idle timeout more sane
    [media] mceusb: increase default timeout to 100ms
    [media] mceusb: Timeout unit corrections
    [media] Revert "V4L/DVB: cx23885: Enable Message Signaled Interrupts(MSI)"

    Linus Torvalds
     

14 Jul, 2011

4 commits

  • Conflicts:
    net/bluetooth/l2cap_core.c

    David S. Miller
     
  • As Simon reported, digital TV broke with mt20xx tuner due to
    commit ad020dc2fe9039628cf6cef42cd1b76531ee8411.

    The mt20xx tuner passes V4L2_TUNER_DIGITAL_TV to tuner core. However, the
    check_mode code now doesn't handle it well. Change the logic there to
    avoid the breakage, and fix a test for analog-only at g_tuner.

    Reported-by: Simon Arlott
    Tested-by: Simon Arlott
    Cc: stable@kernel.org
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Attached is a patch which addresses a race condition in the DVB core
    related to closing/reopening the DVB frontend device in quick
    succession. This is the reason that devices such as the HVR-1300,
    HVR-3000, and HVR-4000 have been failing to scan properly under MythTV
    and w_scan.

    The gory details of the race are described in the patch.

    Devin

    There is a race condition exhibited when channel scanners such as w_scan and
    MythTV quickly close and then reopen the frontend device node.

    Under normal conditions, the behavior is as follows:

    1. Application closes the device node
    2. DVB frontend ioctl calls dvb_frontend_release which sets
    fepriv->release_jiffies
    3. DVB frontend thread *eventually* calls dvb_frontend_is_exiting() which
    compares fepriv->release_jiffies, and shuts down the thread if timeout has
    expired
    4. Thread goes away
    5. Application opens frontend device
    6. DVB frontend ioctl() calls ts_bus_ctrl(1)
    7. DVB frontend ioctl() creates new frontend thread, which calls
    dvb_frontend_init(), which has demod driver init() routine setup initial
    register state for demod chip.
    8. Tuning request is issued.

    The race occurs when the application in step 5 performs the new open() call
    before the frontend thread is shutdown. In this case the ts_bus_ctrl() call
    is made, which strobes the RESET pin on the demodulator, but the
    dvb_frontend_init() function never gets called because the frontend thread
    hasn't gone away yet. As a result, the initial register config for the demod
    is *never* setup, causing subsequent tuning requests to fail.

    If there is time between the close and open (enough for the dvb frontend
    thread to be torn down), then in that case the new frontend thread is created
    and thus the dvb_frontend_init() function does get called.

    The fix is to set the flag which forces reinitialization if we did in fact
    call ts_bus_ctrl().

    This problem has been seen on the HVR-1300, HVR-3000, and HVR-4000, and is
    likely occuring on other designs as well where ts_bus_ctrl() actually strobes
    the reset pin on the demodulator.

    Note that this patch should supercede any patches submitted for the
    1300/3000/4000 which remove the code that removes GPIO code in
    cx8802_dvb_advise_acquire(), which have been circulating by users for some
    time now...

    Canonical tracking this issue in Launchpad 439163:

    Thanks to Jon Sayers from Hauppauge and Florent Audebert from Anevia S.A. for
    providing hardware to test/debug with.

    Signed-off-by: Devin Heitmueller
    Cc: Jon Sayers
    Cc: Florent Audebert
    Signed-off-by: Mauro Carvalho Chehab

    Devin Heitmueller
     
  • When CONFIG_SND is not enabled, radio-sf16fmr2 build fails with:

    so make this driver depend on SND.

    Signed-off-by: Randy Dunlap
    Cc: Hans Verkuil
    Cc: Mauro Carvalho Chehab
    Cc: linux-media@vger.kernel.org
    Signed-off-by: Mauro Carvalho Chehab

    Randy Dunlap
     

13 Jul, 2011

1 commit

  • sound/isa/es18xx.c: In function ‘snd_es18xx_playback1_prepare’:
    sound/isa/es18xx.c:501:9: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    sound/isa/es18xx.c: In function ‘snd_es18xx_playback_pointer’:
    sound/isa/es18xx.c:818:3: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[2]: *** [sound/isa/es18xx.o] Error 1
    sound/isa/sscape.c: In function ‘upload_dma_data’:
    sound/isa/sscape.c:481:3: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[2]: *** [sound/isa/sscape.o] Error 1
    sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_playback_prepare’:
    sound/isa/ad1816a/ad1816a_lib.c:244:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_playback_pointer’:
    sound/isa/ad1816a/ad1816a_lib.c:302:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
    sound/isa/ad1816a/ad1816a_lib.c: In function ‘snd_ad1816a_free’:
    sound/isa/ad1816a/ad1816a_lib.c:544:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[3]: *** [sound/isa/ad1816a/ad1816a_lib.o] Error 1
    make[3]: Target `__build' not remade because of errors.
    make[2]: *** [sound/isa/ad1816a] Error 2
    sound/isa/es1688/es1688_lib.c: In function ‘snd_es1688_playback_prepare’:
    sound/isa/es1688/es1688_lib.c:417:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    sound/isa/es1688/es1688_lib.c: In function ‘snd_es1688_playback_pointer’:
    sound/isa/es1688/es1688_lib.c:509:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[3]: *** [sound/isa/es1688/es1688_lib.o] Error 1
    make[3]: Target `__build' not remade because of errors.
    make[2]: *** [sound/isa/es1688] Error 2
    sound/isa/gus/gus_dma.c: In function ‘snd_gf1_dma_program’:
    sound/isa/gus/gus_dma.c:79:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    sound/isa/gus/gus_dma.c: In function ‘snd_gf1_dma_done’:
    sound/isa/gus/gus_dma.c:177:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[3]: *** [sound/isa/gus/gus_dma.o] Error 1
    sound/isa/gus/gus_pcm.c: In function ‘snd_gf1_pcm_capture_prepare’:
    sound/isa/gus/gus_pcm.c:591:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    sound/isa/gus/gus_pcm.c: In function ‘snd_gf1_pcm_capture_pointer’:
    sound/isa/gus/gus_pcm.c:619:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[3]: *** [sound/isa/gus/gus_pcm.o] Error 1
    make[3]: Target `__build' not remade because of errors.
    make[2]: *** [sound/isa/gus] Error 2
    sound/isa/sb/sb16_csp.c: In function ‘snd_sb_csp_ioctl’:
    sound/isa/sb/sb16_csp.c:228:227: error: case label does not reduce to an integer constant
    make[3]: *** [sound/isa/sb/sb16_csp.o] Error 1
    sound/isa/sb/sb16_main.c: In function ‘snd_sb16_playback_prepare’:
    sound/isa/sb/sb16_main.c:276:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    sound/isa/sb/sb16_main.c: In function ‘snd_sb16_playback_pointer’:
    sound/isa/sb/sb16_main.c:456:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[3]: *** [sound/isa/sb/sb16_main.o] Error 1
    sound/isa/sb/sb8_main.c: In function ‘snd_sb8_playback_prepare’:
    sound/isa/sb/sb8_main.c:172:3: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    sound/isa/sb/sb8_main.c: In function ‘snd_sb8_playback_pointer’:
    sound/isa/sb/sb8_main.c:425:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[3]: *** [sound/isa/sb/sb8_main.o] Error 1
    make[3]: Target `__build' not remade because of errors.
    make[2]: *** [sound/isa/sb] Error 2
    sound/isa/wss/wss_lib.c: In function ‘snd_wss_playback_prepare’:
    sound/isa/wss/wss_lib.c:1025:2: error: implicit declaration of function ‘snd_dma_program’ [-Werror=implicit-function-declaration]
    sound/isa/wss/wss_lib.c: In function ‘snd_wss_playback_pointer’:
    sound/isa/wss/wss_lib.c:1160:2: error: implicit declaration of function ‘snd_dma_pointer’ [-Werror=implicit-function-declaration]
    sound/isa/wss/wss_lib.c: In function ‘snd_wss_free’:
    sound/isa/wss/wss_lib.c:1695:3: error: implicit declaration of function ‘snd_dma_disable’ [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors
    make[3]: *** [sound/isa/wss/wss_lib.o] Error 1
    warning: (RADIO_MIROPCM20) selects SND_ISA which has unmet direct dependencies (SOUND && !M68K && SND && ISA && ISA_DMA_API)

    A build with ISA && ISA_DMA && !ISA_DMA_API results in:
    CC sound/isa/es18xx.o
    CC sound/isa/sscape.o
    CC sound/isa/ad1816a/ad1816a_lib.o
    CC sound/isa/es1688/es1688_lib.o
    CC sound/isa/gus/gus_dma.o
    CC sound/isa/gus/gus_pcm.o
    CC sound/isa/sb/sb16_csp.o
    CC sound/isa/sb/sb16_main.o
    CC sound/isa/sb/sb8_main.o
    CC sound/isa/wss/wss_lib.o

    The root cause for this is hidden in this Kconfig warning:

    Adding a dependency on ISA_DMA_API to RADIO_MIROPCM20 fixes these issues.

    Signed-off-by: Ralf Baechle
    Acked-by: Takashi Iwai
    Signed-off-by: Mauro Carvalho Chehab

    Ralf Baechle
     

12 Jul, 2011

5 commits

  • The nuvoton-cir inherited an insanely low idle timeout value from the
    mceusb driver. We're fixing mceusb, should fix this driver too.

    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • This matches the typical timeout advertised by hardware, once we're
    actually interpreting it correctly.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Rafi Rubin
     
  • Unit missmatch in mceusb_handle_command. It should be converting to us,
    not 1/10th of ms.

    mceusb_dev_printdata 100us/ms -> 1000us/ms

    Alter format of fix slightly and update comment to match proper reality.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Rafi Rubin
     
  • This reverts commit e38030f3ff02684eb9e25e983a03ad318a10a2ea.

    MSI flat-out doesn't work right on cx2388x devices yet. There are now
    multiple reports of cards that hard-lock systems when MSI is enabled,
    including my own HVR-1250 when trying to use its built-in IR receiver.
    Disable MSI and it works just fine. Similar for another user's HVR-1270.
    Issues have also been reported with the HVR-1850 when MSI is enabled,
    and the 1850 behavior sounds similar to an as-yet-undiagnosed issue I've
    seen with an 1800.

    CC: stable@kernel.org
    CC: Steven Toth
    CC: Kusanagi Kouichi
    Signed-off-by: Jarod Wilson
    Acked-by: Andy Walls
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
    [media] msp3400: fill in v4l2_tuner based on vt->type field
    [media] tuner-core.c: don't change type field in g_tuner or g_frequency
    [media] cx18/ivtv: fix g_tuner support
    [media] tuner-core: power up tuner when called with s_power(1)
    [media] v4l2-ioctl.c: check for valid tuner type in S_HW_FREQ_SEEK
    [media] tuner-core: simplify the standard fixup
    [media] tuner-core/v4l2-subdev: document that the type field has to be filled in
    [media] v4l2-subdev.h: remove unused s_mode tuner op
    [media] feature-removal-schedule: change in how radio device nodes are handled
    [media] bttv: fix s_tuner for radio
    [media] pvrusb2: fix g/s_tuner support
    [media] v4l2-ioctl.c: prefill tuner type for g_frequency and g/s_tuner
    [media] tuner-core: fix tuner_resume: use t->mode instead of t->type
    [media] tuner-core: fix s_std and s_tuner

    Linus Torvalds
     

11 Jul, 2011

2 commits


08 Jul, 2011

12 commits


07 Jul, 2011

1 commit

  • * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (46 commits)
    [media] rc: call input_sync after scancode reports
    [media] imon: allow either proto on unknown 0xffdc
    [media] imon: auto-config ffdc 7e device
    [media] saa7134: fix raw IR timeout value
    [media] rc: fix ghost keypresses with certain hw
    [media] [staging] lirc_serial: allocate irq at init time
    [media] lirc_zilog: fix spinning rx thread
    [media] keymaps: fix table for pinnacle pctv hd devices
    [media] ite-cir: 8709 needs to use pnp resource 2
    [media] V4L: mx1-camera: fix uninitialized variable
    [media] omap_vout: Added check in reqbuf & mmap for buf_size allocation
    [media] OMAP_VOUT: Change hardcoded device node number to -1
    [media] OMAP_VOUTLIB: Fix wrong resizer calculation
    [media] uvcvideo: Disable the queue when failing to start
    [media] uvcvideo: Remove buffers from the queues when freeing
    [media] uvcvideo: Ignore entities for terminals with no supported format
    [media] v4l: Don't access media entity after is has been destroyed
    [media] media: omap3isp: fix a potential NULL deref
    [media] media: vb2: fix allocation failure check
    [media] media: vb2: reset queued_count value during queue reinitialization
    ...

    Fix up trivial conflict in MAINTAINERS as per Mauro

    Linus Torvalds
     

02 Jul, 2011

10 commits

  • Due to commit cdda911c34006f1089f3c87b1a1f31ab3a4722f2, evdev only
    becomes readable when the buffer contains an EV_SYN/SYN_REPORT event. If
    we get a repeat or a scancode we don't have a mapping for, we never call
    input_sync, and thus those events don't get reported in a timely
    fashion.

    For example, take an mceusb transceiver with a default rc6 keymap. Press
    buttons on an rc5 remote while monitoring with ir-keytable, and you'll
    see nothing. Now press a button on the rc6 remote matching the keymap.
    You'll suddenly get the rc5 key scancodes, the rc6 scancode and the rc6
    key spit out all at the same time.

    Pressing and holding a button on a remote we do have a keymap for also
    works rather unreliably right now, due to repeat events also happening
    without a call to input_sync (we bail from ir_do_keydown before getting
    to the point where it calls input_sync).

    Easy fix though, just add two strategically placed input_sync calls
    right after our input_event calls for EV_MSC, and all is well again.
    Technically, we probably should have been doing this all along, its just
    that it never caused any functional difference until the referenced
    change went into the input layer.

    input_sync once per IR signal. There was another hidden bug in the code
    where we were calling input_report_key using last_keycode instead of our
    just discovered keycode, which manifested with the reordering of calling
    input_report_key and setting last_keycode.

    Reported-by: Stephan Raue
    CC: Stephan Raue
    CC: Mauro Carvalho Chehab
    CC: Jeff Brown
    Acked-by: Dmitry Torokhov
    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • While 0xffdc devices have their IR protocol hard-coded into the firmware
    of the device, we have no known way of telling what it is if we don't
    have the device's config byte already in the driver. Unknown devices
    default to the imon native protocol, but might actually be rc6, so we
    should set the driver up such that the user can load the rc6 keytable
    from userspace and still have a working device ahead of its config byte
    being added to the driver.

    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • Another device with the 0xffdc device id, this one with 0x7e in the
    config byte. Its an iMON VFD + RC6 IR, in a CoolerMaster 260 case.

    Reported-by: Filip Streibl
    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • The comment says "wait 15ms", but the code says jiffies_to_msecs(15)
    instead of msecs_to_jiffies(15). Fix that. Tested, works fine with both
    rc5 and rc6 decode, in-kernel and via lirc userspace, with an HVR-1150.

    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • With hardware that has to use ir_raw_event_store_edge to collect IR
    sample durations, we were not doing an event reset unless
    IR_MAX_DURATION had passed. That's around 4 seconds. So if someone
    presses up, then down, with less than 4 seconds in between, they'd get
    the initial up, then up and down upon pressing down.

    To fix this, I've lowered the "send a reset event" logic's threshold to
    the input device's REP_DELAY (defaults to 500ms), and with an
    saa7134-based GPIO-driven IR receiver in a Hauppauge HVR-1150, I get
    *much* better behavior out of the remote now. Special thanks to Devin
    for providing the hardware to investigate this issue.

    CC: stable@kernel.org
    CC: Devin Heitmueller
    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • Both consumers of RC_MAP_PINNACLE_PCTV_HD send along full RC-5
    scancodes, so this update makes this keymap actually *have* full
    scancodes, heisted from rc-dib0700-rc5.c. This should fix out of the box
    remote functionality for the Pinnacle PCTV HD 800i (cx88 pci card) and
    PCTV HD Pro 801e (em28xx usb stick).

    CC: stable@kernel.org
    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • Thanks to the intrepid testing and debugging of Matthijs van Drunen, it
    was uncovered that at least some variants of the ITE8709 need to use pnp
    resource 2, rather than 0, for things to function properly. Resource 0
    has a length of only 1, and if you try to bypass the pnp_port_len check
    and use it anyway (with either a length of 1 or 2), the system in
    question's trackpad ceased to function.

    The circa lirc 0.8.7 lirc_ite8709 driver used resource 2, but the value
    was (amusingly) changed to 0 by way of a patch from ITE themselves, so I
    don't know if there may be variants where 0 actually *is* correct, but
    at least in this case and in the original lirc_ite8709 driver author's
    case, it sure looks like 2 is the right value.

    This fix should probably be applied to all stable kernels with the
    ite-cir driver, lest we nuke more people's trackpads.

    Tested-by: Matthijs van Drunen
    CC: Juan Jesús García de Soria
    CC: stable@kernel.org
    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • mx1_camera_add_device() can return an uninitialized value of ret.

    Signed-off-by: Andre Bartke
    [g.liakhovetski@gmx.de: modified the fix to remove "ret" completely]
    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Mauro Carvalho Chehab

    Andre Bartke
     
  • The usecase where, user allocates small size of buffer
    through bootargs (video1_bufsize/video2_bufsize) and later from application
    tries to set the format which requires larger buffer size, driver doesn't
    check for insufficient buffer size and allows application to map extra buffer.
    This leads to kernel crash, when user application tries to access memory
    beyond the allocation size.

    Added check in both mmap and reqbuf call back function,
    and return error if the size of the buffer allocated by user through
    bootargs is less than the S_FMT size.

    Signed-off-by: Vaibhav Hiremath
    Signed-off-by: Mauro Carvalho Chehab

    Vaibhav Hiremath
     
  • With addition of media-controller framework, now we have various
    device nodes (/dev/videoX) getting created, so hardcoding
    minor number in video_register_device() is not recommended.

    So let V4L2 framework choose free minor number for the device.

    Signed-off-by: Mauro Carvalho Chehab

    Vaibhav Hiremath