1. 19 11月, 2015 4 次提交
  2. 19 8月, 2015 1 次提交
  3. 12 8月, 2015 1 次提交
  4. 06 7月, 2015 3 次提交
  5. 15 5月, 2015 1 次提交
  6. 01 5月, 2015 1 次提交
  7. 24 12月, 2014 1 次提交
    • J
      [media] rc-main: Re-apply filter for no-op protocol change · 983c5bd2
      James Hogan 提交于
      Since commit da6e162d ("[media] rc-core: simplify sysfs code"), when
      the IR protocol is set using the sysfs interface to the same set of
      protocols that are already set, store_protocols() does not refresh the
      scancode filter with the new protocol, even if it has already called the
      change_protocol() callback successfully. This results in the filter
      being disabled in the hardware and not re-enabled until the filter is
      set again using sysfs.
      
      Fix in store_protocols() by still re-applying the filter whenever the
      change_protocol() driver callback succeeded.
      
      The problem can be reproduced with the img-ir driver by setting a
      filter, and then setting the protocol to the same protocol that is
      already set:
      $ echo nec > protocols
      $ echo 0xffff > filter_mask
      $ echo nec > protocols
      
      After this, messages which don't match the filter were still being
      received.
      
      Fixes: da6e162d ("[media] rc-core: simplify sysfs code")
      Reported-by: NSifan Naeem <sifan.naeem@imgtec.com>
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: David Härdeman <david@hardeman.nu>
      Cc: <stable@vger.kernel.org> # v3.17+
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      983c5bd2
  8. 25 11月, 2014 1 次提交
  9. 05 11月, 2014 1 次提交
  10. 31 10月, 2014 1 次提交
    • T
      [media] rc-main: fix lockdep splash for rc-main · 37fa8716
      Tomas Melin 提交于
      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: NTomas Melin <tomas.melin@iki.fi>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      37fa8716
  11. 30 10月, 2014 1 次提交
  12. 31 7月, 2014 1 次提交
  13. 27 7月, 2014 1 次提交
  14. 26 7月, 2014 2 次提交
  15. 24 7月, 2014 2 次提交
  16. 06 4月, 2014 2 次提交
  17. 13 3月, 2014 1 次提交
  18. 12 3月, 2014 5 次提交
  19. 11 3月, 2014 1 次提交
  20. 07 2月, 2014 1 次提交
  21. 06 2月, 2014 1 次提交
    • J
      [media] media: rc: add sysfs scancode filtering interface · 00942d1a
      James Hogan 提交于
      Add and document a generic sysfs based scancode filtering interface for
      making use of IR data matching hardware to filter out uninteresting
      scancodes. Two filters exist, one for normal operation and one for
      filtering scancodes which are permitted to wake the system from suspend.
      
      The following files are added to /sys/class/rc/rc?/:
       - filter: normal scancode filter value
       - filter_mask: normal scancode filter mask
       - wakeup_filter: wakeup scancode filter value
       - wakeup_filter_mask: wakeup scancode filter mask
      
      A new s_filter() driver callback is added which must arrange for the
      specified filter to be applied at the right time. Drivers can convert
      the scancode filter into a raw IR data filter, which can be applied
      immediately or later (for wake up filters).
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
      Cc: linux-media@vger.kernel.org
      Cc: Rob Landley <rob@landley.net>
      Cc: linux-doc@vger.kernel.org
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      00942d1a
  22. 04 2月, 2014 3 次提交
  23. 15 1月, 2014 1 次提交
  24. 23 8月, 2013 1 次提交
  25. 22 8月, 2013 1 次提交
  26. 01 8月, 2013 1 次提交
    • S
      [media] media: rc: Add rc_open/close and use count to rc_dev · 8b2ff320
      Srinivas Kandagatla 提交于
      This patch adds user count to rc_dev structure, the reason to add this
      new member is to allow other code like lirc to open rc device directly.
      In the existing code, rc device is only opened by input subsystem which
      works ok if we have any input drivers to match. But in case like lirc
      where there will be no input driver, rc device will be never opened.
      Having this user count variable will be usefull to allow rc device to be
      opened from code other than rc-main.
      This patch also adds rc_open and rc_close functions for other drivers
      like lirc to open and close rc devices. This functions safely increment
      and decrement the user count. Other driver wanting to open rc device
      should call rc_open and rc_close, rather than directly modifying the
      rc_dev structure.
      Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@st.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      8b2ff320