1. 31 8月, 2018 1 次提交
  2. 24 8月, 2018 1 次提交
  3. 09 8月, 2018 1 次提交
  4. 05 8月, 2018 1 次提交
  5. 25 7月, 2018 1 次提交
    • P
      i2c/mux, locking/core: Annotate the nested rt_mutex usage · 7b94ea50
      Peter Rosin 提交于
      If an i2c topology has instances of nested muxes, then a lockdep splat
      is produced when when i2c_parent_lock_bus() is called.  Here is an
      example:
      
        ============================================
        WARNING: possible recursive locking detected
        --------------------------------------------
        insmod/68159 is trying to acquire lock:
          (i2c_register_adapter#2){+.+.}, at: i2c_parent_lock_bus+0x32/0x50 [i2c_mux]
      
        but task is already holding lock:
          (i2c_register_adapter#2){+.+.}, at: i2c_parent_lock_bus+0x32/0x50 [i2c_mux]
      
        other info that might help us debug this:
          Possible unsafe locking scenario:
      
                CPU0
                ----
           lock(i2c_register_adapter#2);
           lock(i2c_register_adapter#2);
      
          *** DEADLOCK ***
      
          May be due to missing lock nesting notation
      
        1 lock held by insmod/68159:
          #0:  (i2c_register_adapter#2){+.+.}, at: i2c_parent_lock_bus+0x32/0x50 [i2c_mux]
      
        stack backtrace:
        CPU: 13 PID: 68159 Comm: insmod Tainted: G           O
        Call Trace:
          dump_stack+0x67/0x98
          __lock_acquire+0x162e/0x1780
          lock_acquire+0xba/0x200
          rt_mutex_lock+0x44/0x60
          i2c_parent_lock_bus+0x32/0x50 [i2c_mux]
          i2c_parent_lock_bus+0x3e/0x50 [i2c_mux]
          i2c_smbus_xfer+0xf0/0x700
          i2c_smbus_read_byte+0x42/0x70
          my2c_init+0xa2/0x1000 [my2c]
          do_one_initcall+0x51/0x192
          do_init_module+0x62/0x216
          load_module+0x20f9/0x2b50
          SYSC_init_module+0x19a/0x1c0
          SyS_init_module+0xe/0x10
          do_syscall_64+0x6c/0x1a0
          entry_SYSCALL_64_after_hwframe+0x42/0xb7
      Reported-by: NJohn Sperbeck <jsperbeck@google.com>
      Tested-by: NJohn Sperbeck <jsperbeck@google.com>
      Signed-off-by: NPeter Rosin <peda@axentia.se>
      Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Deepa Dinamani <deepadinamani@google.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Chang <dpf@google.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Philippe Ombredanne <pombredanne@nexb.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Wolfram Sang <wsa@the-dreams.de>
      Link: http://lkml.kernel.org/r/20180720083914.1950-3-peda@axentia.seSigned-off-by: NIngo Molnar <mingo@kernel.org>
      7b94ea50
  6. 21 7月, 2018 1 次提交
  7. 17 7月, 2018 4 次提交
  8. 13 7月, 2018 1 次提交
  9. 22 5月, 2018 1 次提交
    • B
      i2c: Retain info->of_node in i2c_new_device() · 04782265
      Boris Brezillon 提交于
      Currently, of_i2c_register_devices() is responsible for retaining
      info->of_node, but we're about to expose a function to parse I2C board
      info without registering the I2C device.
      
      We could possibly let this function retain ->of_node, but this approach
      is prone to reference leak since people will have to remember to call
      of_node_put() if something goes wrong between the OF node parsing and
      the registration step.
      Let's just retain the ->of_node in i2c_new_register() instead.
      Signed-off-by: NBoris Brezillon <boris.brezillon@bootlin.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      04782265
  10. 15 5月, 2018 2 次提交
  11. 12 4月, 2018 1 次提交
  12. 04 4月, 2018 1 次提交
  13. 03 4月, 2018 1 次提交
  14. 24 3月, 2018 1 次提交
  15. 06 3月, 2018 1 次提交
  16. 05 3月, 2018 1 次提交
    • J
      i2c: core: report OF style module alias for devices registered via OF · af503716
      Javier Martinez Canillas 提交于
      The buses should honor the firmware interface used to register the device,
      but the I2C core reports a MODALIAS of the form i2c:<device> even for I2C
      devices registered via OF.
      
      This means that user-space will never get an OF stype uevent MODALIAS even
      when the drivers modules contain aliases exported from both the I2C and OF
      device ID tables. For example, an Atmel maXTouch Touchscreen registered by
      a DT node with compatible "atmel,maxtouch" has the following module alias:
      
      $ cat /sys/class/i2c-adapter/i2c-8/8-004b/modalias
      i2c:maxtouch
      
      So udev won't be able to auto-load a module for an OF-only device driver.
      Many OF-only drivers duplicate the OF device ID table entries in an I2C ID
      table only has a workaround for how the I2C core reports the module alias.
      
      This patch changes the I2C core to report an OF related MODALIAS uevent if
      the device was registered via OF. So for the previous example, after this
      patch, the reported MODALIAS for the Atmel maXTouch will be the following:
      
      $ cat /sys/class/i2c-adapter/i2c-8/8-004b/modalias
      of:NtrackpadT<NULL>Catmel,maxtouch
      
      NOTE: This patch may break out-of-tree drivers that were relying on this
            behavior, and only had an I2C device ID table even when the device
            was registered via OF. There are no remaining drivers in mainline
            that do this, but out-of-tree drivers have to be fixed and define
            a proper OF device ID table to have module auto-loading working.
      Signed-off-by: NJavier Martinez Canillas <javierm@redhat.com>
      Tested-by: NDmitry Mastykin <mastichi@gmail.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      af503716
  17. 17 1月, 2018 1 次提交
  18. 16 1月, 2018 3 次提交
  19. 04 12月, 2017 2 次提交
  20. 28 11月, 2017 3 次提交
  21. 02 11月, 2017 1 次提交
  22. 29 10月, 2017 2 次提交
  23. 27 10月, 2017 1 次提交
    • H
      i2c: Allow overriding dev_name through board_info · 728fe6ce
      Hans de Goede 提交于
      For devices not instantiated through ACPI the i2c-client's device-name
      gets set to <busnr>-<addr> by default, e.g. "0-0022" this means that
      the device-name is dependent on the order in which the i2c-busses are
      enumerated.
      
      In some cases having a predictable constant device-name is desirable,
      for example on non device-tree platforms the link between a regulator
      and its consumers is specified by the platform code by setting
      regulator_init_data.consumers. This array identifies the regulator's
      consumers by dev_name and supply(-name). Which requires a constant
      dev_name.
      
      This commit adds a dev_name field to i2c_board_info allowing
      platform code to set a contstant dev_name so that the device can
      be identified by its dev_name in other platform code.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Acked-by: Mark Brown <broonie@kernel.org> (live at ELCE17)
      Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> (live at ELCE17)
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      728fe6ce
  24. 15 8月, 2017 1 次提交
  25. 31 7月, 2017 1 次提交
  26. 01 6月, 2017 5 次提交