1. 30 Oct, 2014 16 commits
    • Tomas Melin's avatar
      [media] rc-main: fix lockdep splash for rc-main · 37fa8716
      Tomas Melin authored
      lockdep reports a potential circular dependecy deadlock when registering input device.
      
      Unlock mutex rc_dev->lock prior to calling ir_raw_event_register to avoid the circular
      dependency since that function also calls input_register_device and rc_open.
      
       ======================================================
       [ INFO: possible circular locking dependency detected ]
       3.17.0-rc7+ #24 Not tainted
       -------------------------------------------------------
       modprobe/647 is trying to acquire lock:
        (input_mutex){+.+.+.}, at: [<ffffffff812ed81c>] input_register_device+0x2ba/0x381
      
       but task is already holding lock:
        (ir_raw_handler_lock){+.+.+.}, at: [<ffffffff813186ed>] ir_raw_event_register+0x102/0x190
      
       which lock already depends on the new lock.
      
      [cut text]
      
       other info that might help us debug this:
      
       Chain exists of:
         input_mutex --> &dev->lock --> ir_raw_handler_lock
      
        Possible unsafe locking scenario:
      
              CPU0                    CPU1
              ----                    ----
         lock(ir_raw_handler_lock);
                                      lock(&dev->lock);
                                      lock(ir_raw_handler_lock);
         lock(input_mutex);
      
        *** DEADLOCK ***
      
       4 locks held by modprobe/647:
        #0:  (&dev->mutex){......}, at: [<ffffffff812d19f3>] device_lock+0xf/0x11
        #1:  (&dev->mutex){......}, at: [<ffffffff812d19f3>] device_lock+0xf/0x11
        #2:  (&dev->lock){+.+.+.}, at: [<ffffffff81317fff>] rc_register_device+0x55d/0x58a
        #3:  (ir_raw_handler_lock){+.+.+.}, at: [<ffffffff813186ed>] ir_raw_event_register+0x102/0x190
      
       stack backtrace:
       CPU: 0 PID: 647 Comm: modprobe Not tainted 3.17.0-rc7+ #24
      
       Call Trace:
        [<ffffffff81489d6a>] dump_stack+0x46/0x58
        [<ffffffff81487699>] print_circular_bug+0x1f8/0x209
        [<ffffffff81074353>] __lock_acquire+0xb54/0xeda
        [<ffffffff81080f17>] ? console_unlock+0x34d/0x399
        [<ffffffff81074c01>] lock_acquire+0xd9/0x111
        [<ffffffff812ed81c>] ? input_register_device+0x2ba/0x381
        [<ffffffff8148e650>] mutex_lock_interruptible_nested+0x57/0x381
        [<ffffffff812ed81c>] ? input_register_device+0x2ba/0x381
        [<ffffffff81124e03>] ? kfree+0x7c/0x96
        [<ffffffff812ed81c>] ? input_register_device+0x2ba/0x381
        [<ffffffff81072531>] ? trace_hardirqs_on+0xd/0xf
        [<ffffffff812ed81c>] input_register_device+0x2ba/0x381
        [<ffffffff8131a537>] ir_mce_kbd_register+0x109/0x139
        [<ffffffff81318728>] ir_raw_event_register+0x13d/0x190
        [<ffffffff81317e40>] rc_register_device+0x39e/0x58a
        [<ffffffff81072531>] ? trace_hardirqs_on+0xd/0xf
        [<ffffffffa00cf2e3>] nvt_probe+0x5ad/0xd52 [nuvoton_cir]
        [<ffffffffa00ced36>] ? nvt_resume+0x80/0x80 [nuvoton_cir]
        [<ffffffff81296003>] pnp_device_probe+0x8c/0xa9
        [<ffffffff812d1b94>] ? driver_sysfs_add+0x6e/0x93
        [<ffffffff812d203a>] driver_probe_device+0xa1/0x1e3
        [<ffffffff812d217c>] ? driver_probe_device+0x1e3/0x1e3
        [<ffffffff812d21ca>] __driver_attach+0x4e/0x6f
        [<ffffffff812d075b>] bus_for_each_dev+0x5a/0x8c
        [<ffffffff812d1b24>] driver_attach+0x19/0x1b
        [<ffffffff812d1879>] bus_add_driver+0xf1/0x1d6
        [<ffffffff812d2817>] driver_register+0x87/0xbe
        [<ffffffffa0120000>] ? 0xffffffffa0120000
        [<ffffffff81295da4>] pnp_register_driver+0x1c/0x1e
        [<ffffffffa0120010>] nvt_init+0x10/0x1000 [nuvoton_cir]
        [<ffffffff8100030e>] do_one_initcall+0xea/0x18c
        [<ffffffff8111497f>] ? __vunmap+0x9d/0xc7
        [<ffffffff810a3ca1>] load_module+0x1c21/0x1f2c
        [<ffffffff810a0bce>] ? show_initstate+0x44/0x44
        [<ffffffff810a404e>] SyS_init_module+0xa2/0xb1
        [<ffffffff81490ed2>] system_call_fastpath+0x16/0x1b
      Signed-off-by: default avatarTomas Melin <tomas.melin@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      37fa8716
    • Frank Schaefer's avatar
      [media] af9005: fix kernel panic on init if compiled without IR · 22799487
      Frank Schaefer authored
      This patches fixes an ancient bug in the dvb_usb_af9005 driver, which
      has been reported at least in the following threads:
      https://lkml.org/lkml/2009/2/4/350
      https://lkml.org/lkml/2014/9/18/558
      
      If the driver is compiled in without any IR support (neither
      DVB_USB_AF9005_REMOTE nor custom symbols), the symbol_request calls in
      af9005_usb_module_init() return pointers != NULL although the IR
      symbols are not available.
      
      This leads to the following oops:
      ...
      [    8.529751] usbcore: registered new interface driver dvb_usb_af9005
      [    8.531584] BUG: unable to handle kernel paging request at 02e00000
      [    8.533385] IP: [<7d9d67c6>] af9005_usb_module_init+0x6b/0x9d
      [    8.535613] *pde = 00000000
      [    8.536416] Oops: 0000 [#1] PREEMPT PREEMPT DEBUG_PAGEALLOCDEBUG_PAGEALLOC
      [    8.537863] CPU: 0 PID: 1 Comm: swapper Not tainted 3.15.0-rc6-00151-ga5c075cf #1
      [    8.539827] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
      [    8.541519] task: 89c9a670 ti: 89c9c000 task.ti: 89c9c000
      [    8.541519] EIP: 0060:[<7d9d67c6>] EFLAGS: 00010206 CPU: 0
      [    8.541519] EIP is at af9005_usb_module_init+0x6b/0x9d
      [    8.541519] EAX: 02e00000 EBX: 00000000 ECX: 00000006 EDX: 00000000
      [    8.541519] ESI: 00000000 EDI: 7da33ec8 EBP: 89c9df30 ESP: 89c9df2c
      [    8.541519]  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
      [    8.541519] CR0: 8005003b CR2: 02e00000 CR3: 05a54000 CR4: 00000690
      [    8.541519] Stack:
      [    8.541519]  7d9d675b 89c9df90 7d992a49 7d7d5914 89c9df4c 7be3a800 7d08c58c 8a4c3968
      [    8.541519]  89c9df80 7be3a966 00000192 00000006 00000006 7d7d3ff4 8a4c397a 00000200
      [    8.541519]  7d6b1280 8a4c3979 00000006 000009a6 7da32db8 b13eec81 00000006 000009a6
      [    8.541519] Call Trace:
      [    8.541519]  [<7d9d675b>] ? ttusb2_driver_init+0x16/0x16
      [    8.541519]  [<7d992a49>] do_one_initcall+0x77/0x106
      [    8.541519]  [<7be3a800>] ? parameqn+0x2/0x35
      [    8.541519]  [<7be3a966>] ? parse_args+0x113/0x25c
      [    8.541519]  [<7d992bc2>] kernel_init_freeable+0xea/0x167
      [    8.541519]  [<7cf01070>] kernel_init+0x8/0xb8
      [    8.541519]  [<7cf27ec0>] ret_from_kernel_thread+0x20/0x30
      [    8.541519]  [<7cf01068>] ? rest_init+0x10c/0x10c
      [    8.541519] Code: 08 c2 c7 05 44 ed f9 7d 00 00 e0 02 c7 05 40 ed f9 7d 00 00 e0 02 c7 05 3c ed f9 7d 00 00 e0 02 75 1f b8 00 00 e0 02 85 c0 74 16 <a1> 00 00 e0 02 c7 05 54 84 8e 7d 00 00 e0 02 a3 58 84 8e 7d eb
      [    8.541519] EIP: [<7d9d67c6>] af9005_usb_module_init+0x6b/0x9d SS:ESP 0068:89c9df2c
      [    8.541519] CR2: 0000000002e00000
      [    8.541519] ---[ end trace 768b6faf51370fc7 ]---
      
      The prefered fix would be to convert the whole IR code to use the kernel IR
      infrastructure (which wasn't available at the time this driver had been created).
      
      Until anyone who still has this old hardware steps up an does the conversion,
      fix it by not calling the symbol_request calls if the driver is compiled in
      without the default IR symbols (CONFIG_DVB_USB_AF9005_REMOTE).
      Due to the IR related pointers beeing NULL by default, IR support will then be disabled.
      
      The downside of this solution is, that it will no longer be possible to
      compile custom IR symbols (not using CONFIG_DVB_USB_AF9005_REMOTE) in.
      
      Please note that this patch has NOT been tested with all possible cases.
      I don't have the hardware and could only verify that it fixes the reported
      bug.
      Reported-by: default avatarFengguag Wu <fengguang.wu@intel.com>
      Signed-off-by: default avatarFrank Schäfer <fschaefer.oss@googlemail.com>
      Cc: <stable@vger.kernel.org>
      Acked-by: default avatarLuca Olivetti <luca@ventoso.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      22799487
    • nibble.max's avatar
      [media] cx23885: add IR for DVBSky T9580 Dual DVB-S2/T2/C PCIe card · d11a3835
      nibble.max authored
      DVBSky T9580 uses Integrated CX23885 IR controller to decode IR signal.
      The IR type of DVBSky remote control is RC5.
      Signed-off-by: default avatarNibble Max <nibble.max@gmail.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      d11a3835
    • Olli Salonen's avatar
      [media] cx23855: add CI support for DVBSky T980C · 24e77409
      Olli Salonen authored
      Add CI support for DVBSky T980C card. The new host device independent CIMaX SP2 I2C driver was used to implement it.
      
      IRQ handling is not implemented at this point. It could be used to detect the CAM insertion/removal instantly.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      24e77409
    • Olli Salonen's avatar
      [media] cx23885: add I2C client for CI into state and handle unregistering · e450de45
      Olli Salonen authored
      If the CI chip has an I2C driver, we need to store I2C client into state.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      e450de45
    • Olli Salonen's avatar
      [media] sp2: improve debug logging · b1cb7ad2
      Olli Salonen authored
      Improve debugging output.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      b1cb7ad2
    • Olli Salonen's avatar
      [media] sp2: fix incorrect struct · 9a25d410
      Olli Salonen authored
      Incorrect struct used in the SP2 driver.
      Reported-by: default avatarMax Nibble <nibble.max@gmail.com>
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      9a25d410
    • Olli Salonen's avatar
      [media] cx23855: add support for DVBSky T980C (no CI support) · 82c10276
      Olli Salonen authored
      This patch adds basic support for DVBSky T980C card. CI interface is not supported.
      
      DVBSky T980C is a PCIe card with the following components:
      - CX23885 PCIe bridge
      - Si2168-A20 demodulator
      - Si2158-A20 tuner
      - CIMaX SP2 CI chip
      
      The demodulator and tuner need firmware. They're the same as used with TT CT2-4650 CI:
      https://www.mail-archive.com/linux-media@vger.kernel.org/msg78033.htmlSigned-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      82c10276
    • Behan Webster's avatar
      [media] ti-fpe: LLVMLinux: Remove nested function from ti-vpe · 61110fba
      Behan Webster authored
      Replace the use of nested functions where a normal function will suffice.
      
      Nested functions are not liked by upstream kernel developers in general. Their
      use breaks the use of clang as a compiler, and doesn't make the code any
      better.
      
      This code now works for both gcc and clang.
      Suggested-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBehan Webster <behanw@converseincode.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      61110fba
    • Mauro Carvalho Chehab's avatar
      [media] sound: Update au0828 quirks table · 678fa12f
      Mauro Carvalho Chehab authored
      The au0828 quirks table is currently not in sync with the au0828
      media driver.
      
      Syncronize it and put them on the same order as found at au0828
      driver, as all the au0828 devices with analog TV need the
      same quirks.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      678fa12f
    • Mauro Carvalho Chehab's avatar
      [media] sound: simplify au0828 quirk table · 5d1f00a2
      Mauro Carvalho Chehab authored
      Add a macro to simplify au0828 quirk table. That makes easier
      to check it against the USB IDs at drivers/media/usb/au0828/au0828-cards.c.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      5d1f00a2
    • Olli Salonen's avatar
      [media] si2157: add support for SYS_DVBC_ANNEX_B · 0d1165fc
      Olli Salonen authored
      Set the property for delivery system also in case of SYS_DVBC_ANNEX_B.
      This behaviour is observed in the sniffs taken with Hauppauge HVR-955Q
      Windows driver.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      0d1165fc
    • Mauro Carvalho Chehab's avatar
      [media] em28xx-dvb: remove unused mfe_sharing · 1b07a77f
      Mauro Carvalho Chehab authored
      This field is not used on this driver anymore. Remove it.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      1b07a77f
    • Mauro Carvalho Chehab's avatar
      [media] drxk: Fix debug printks · 52ee29fe
      Mauro Carvalho Chehab authored
      This patch partially reverts 0fb220f2. What happened is
      that the conversion of debug messages to use pr_debug() was a
      bad idea, because one needing to debug would need to both
      enable debug level via a modprobe parameter, and then to
      enable the dynamic printk's.
      
      So, for now, let's use printk() directly at dprintk().
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      52ee29fe
    • Mauro Carvalho Chehab's avatar
      [media] Documentation: FE_SET_PROPERTY requires R/W · a47959fb
      Mauro Carvalho Chehab authored
      FE_SET_PROPERTY requires to open the devnode on R/W mode, or
      otherwise it will fail. Document it.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      a47959fb
    • Mauro Carvalho Chehab's avatar
      [media] dib7000p: get rid of an unused argument · 986f1686
      Mauro Carvalho Chehab authored
      dib7000p is for DVB, and not ISDB. So, there's no layer.
      
      That removes this compilation warning:
      	drivers/media/dvb-frontends/dib7000p.c:1972: warning: 'i' is used uninitialized in this function
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      986f1686
  2. 28 Oct, 2014 24 commits