1. 22 Aug, 2013 18 commits
  2. 21 Aug, 2013 4 commits
    • Ondrej Zary's avatar
      [media] introduce gspca-stk1135: Syntek STK1135 driver · 4ab0620b
      Ondrej Zary authored
      Hello,
      this is a new gspca driver for Syntek STK1135 webcams. The code is completely
      new, but register values are based on Syntekdriver (stk11xx) by Nicolas VIVIEN
      (http://syntekdriver.sourceforge.net).
      Only one webcam type is supported now - vendor 0x174f, device 0x6a31.
      It's Asus F5RL laptop flippable webcam with MT9M112.
      The camera works better than in Windows - initializes much faster and
      provides more resolutions (the sensor can do almost any resolution - just
      add it to the stk1135_modes[] - could this feature be somehow used by
      applications to avoid SW scaling?).
      Autoflip works too - when the camera is flipped around, the image is flipped
      automatically.
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      4ab0620b
    • Antonio Ospite's avatar
      [media] gspca-ov534: don't call sd_start() from sd_init() · d48de1c7
      Antonio Ospite authored
      sd_start() operates on device controls but after the conversion to the
      v4l2 control framework in commits 62bba5dd and 1bd7d6ad controls are
      initialized in sd_init_controls() which is called _after_ sd_init():
      The change fixes a NULL pointer dereference for Hercules Blog Webcam;
      the problem is observable since 3.6:
        gspca_main: v2.14.0 registered
        gspca_main: ov534-2.14.0 probing 06f8:3002
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
        IP: [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
        PGD 0
        Oops: 0000 [#1] SMP
        Modules linked in: gspca_ov534(+) gspca_main videodev rfcomm bnep ppdev bluetooth binfmt_misc snd_hda_codec_hdmi snd_hda_codec_realtek stir4200 irda crc_ccitt usblp snd_hda_intel snd_hda_codec snd_hwdep snd_pcm hid_generic snd_page_alloc snd_seq_midi snd_seq_midi_event usbhid snd_rawmidi snd_seq snd_seq_device snd_timer hid i915 snd psmouse drm_kms_helper serio_raw mei_me drm mei soundcore video i2c_algo_bit lpc_ich mac_hid coretemp lp parport firewire_ohci firewire_core crc_itu_t ahci libahci alx mdio r8169 mii [last unloaded: parport_pc]
        CPU: 3 PID: 4352 Comm: modprobe Not tainted 3.11.0-031100rc2-generic #201307211535
        Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./Z77-DS3H, BIOS F9 09/19/2012
        task: ffff8801c20f9770 ti: ffff8801ceaa0000 task.ti: ffff8801ceaa0000
        RIP: 0010:[<ffffffffa03c1b01>]  [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
        RSP: 0018:ffff8801ceaa1af8  EFLAGS: 00010292
        RAX: 0000000000000001 RBX: 0000000000000000 RCX: 000000000001988b
        RDX: 000000000001988a RSI: ffffffffa032745a RDI: 0000000000000000
        RBP: ffff8801ceaa1b28 R08: 0000000000017380 R09: ffffea0008419d80
        R10: ffffffff81538f5a R11: 0000000000000002 R12: ffffffffa03273dc
        R13: ffffffffa03273dc R14: 0000000000000000 R15: ffffffffa03270a0
        FS:  00007f72d564a740(0000) GS:ffff88021f380000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 0000000000000050 CR3: 00000001bd1f0000 CR4: 00000000001407e0
        Stack:
         ffff8801ceaa1b28 ffffffffa0325cff ffff8801000001f4 ffff8801ceb44000
         ffffffffa03273dc ffff8801ceb44000 ffff8801ceaa1b58 ffffffffa032688e
         ffff8801ceb44000 ffffffffa03274f0 ffffffffa03274f0 ffff8801ceb44380
        Call Trace:
         [<ffffffffa0325cff>] ? sccb_w_array+0x3f/0x80 [gspca_ov534]
         [<ffffffffa032688e>] sd_start+0xce/0x2b0 [gspca_ov534]
         [<ffffffffa0326bf9>] sd_init+0x189/0x1e8 [gspca_ov534]
         [<ffffffffa02a0c95>] gspca_dev_probe2+0x285/0x410 [gspca_main]
         [<ffffffffa02a0e58>] gspca_dev_probe+0x38/0x60 [gspca_main]
         [<ffffffffa0325081>] sd_probe+0x21/0x30 [gspca_ov534]
         [<ffffffff8153c960>] usb_probe_interface+0x1c0/0x2f0
         [<ffffffff8148758c>] really_probe+0x6c/0x330
         [<ffffffff814879d7>] driver_probe_device+0x47/0xa0
         [<ffffffff81487adb>] __driver_attach+0xab/0xb0
         [<ffffffff81487a30>] ? driver_probe_device+0xa0/0xa0
         [<ffffffff814857be>] bus_for_each_dev+0x5e/0x90
         [<ffffffff8148714e>] driver_attach+0x1e/0x20
         [<ffffffff81486bdc>] bus_add_driver+0x10c/0x290
         [<ffffffff8148805d>] driver_register+0x7d/0x160
         [<ffffffff8153b590>] usb_register_driver+0xa0/0x160
         [<ffffffffa0067000>] ? 0xffffffffa0066fff
         [<ffffffffa006701e>] sd_driver_init+0x1e/0x1000 [gspca_ov534]
         [<ffffffff8100212a>] do_one_initcall+0xfa/0x1b0
         [<ffffffff810578c3>] ? set_memory_nx+0x43/0x50
         [<ffffffff81712e8d>] do_init_module+0x80/0x1d1
         [<ffffffff810d2079>] load_module+0x4c9/0x5f0
         [<ffffffff810cf7b0>] ? add_kallsyms+0x210/0x210
         [<ffffffff810d2254>] SyS_init_module+0xb4/0x100
         [<ffffffff817333ef>] tracesys+0xe1/0xe6
        Code: a0 09 00 00 48 c7 c7 30 c3 3c a0 e8 7a 38 ca e0 eb cf 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb 48 83 ec 28 <8b> 47 50 83 e8 05 83 f8 02 77 09 80 b8 20 8c 3c a0 00 74 1d 48
        RIP  [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
         RSP <ffff8801ceaa1af8>
        CR2: 0000000000000050
        ---[ end trace 6786f15abfd2ac90 ]---
      Original bug report from:
      https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1173723/Signed-off-by: default avatarAntonio Ospite <ospite@studenti.unina.it>
      Tested-by: default avatarYaroslav Zakharuk <slavikz@gmail.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      d48de1c7
    • Alexey Khoroshilov's avatar
      [media] gspca: fix dev_open() error path · b563a0d0
      Alexey Khoroshilov authored
      If v4l2_fh_open() fails in dev_open(), gspca_dev->module left locked.
      The patch adds module_put(gspca_dev->module) on this path.
      Found by Linux Driver Verification project (linuxtesting.org).
      Signed-off-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      b563a0d0
    • Hans de Goede's avatar
      [media] radio-si470x-usb: Remove software version check · 6c94e14e
      Hans de Goede authored
      We've an user reporting a device with a software version of 0, which works
      fine. Once we lower the version check to accept version 0 it becomes a nop,
      so remove it completely.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      6c94e14e
  3. 20 Aug, 2013 18 commits