1. 09 10月, 2019 1 次提交
  2. 06 9月, 2019 1 次提交
  3. 04 9月, 2019 4 次提交
  4. 17 8月, 2019 1 次提交
  5. 15 8月, 2019 1 次提交
    • L
      gpio: Add support for hierarchical IRQ domains · fdd61a01
      Linus Walleij 提交于
      Hierarchical IRQ domains can be used to stack different IRQ
      controllers on top of each other.
      
      Bring hierarchical IRQ domains into the GPIOLIB core with the
      following basic idea:
      
      Drivers that need their interrupts handled hierarchically
      specify a callback to translate the child hardware IRQ and
      IRQ type for each GPIO offset to a parent hardware IRQ and
      parent hardware IRQ type.
      
      Users have to pass the callback, fwnode, and parent irqdomain
      before calling gpiochip_irqchip_add().
      
      We use the new method of just filling in the struct
      gpio_irq_chip before adding the gpiochip for all hierarchical
      irqchips of this type.
      
      The code path for device tree is pretty straight-forward,
      while the code path for old boardfiles or anything else will
      be more convoluted requireing upfront allocation of the
      interrupts when adding the chip.
      
      One specific use-case where this can be useful is if a power
      management controller has top-level controls for wakeup
      interrupts. In such cases, the power management controller can
      be a parent to other interrupt controllers and program
      additional registers when an IRQ has its wake capability
      enabled or disabled.
      
      The hierarchical irqchip helper code will only be available
      when IRQ_DOMAIN_HIERARCHY is selected to GPIO chips using
      this should select or depend on that symbol. When using
      hierarchical IRQs, the parent interrupt controller must
      also be hierarchical all the way up to the top interrupt
      controller wireing directly into the CPU, so on systems
      that do not have this we can get rid of all the extra
      code for supporting hierarchical irqs.
      
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Lina Iyer <ilina@codeaurora.org>
      Cc: Jon Hunter <jonathanh@nvidia.com>
      Cc: Sowjanya Komatineni <skomatineni@nvidia.com>
      Cc: Bitan Biswas <bbiswas@nvidia.com>
      Cc: linux-tegra@vger.kernel.org
      Cc: David Daney <david.daney@cavium.com>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Brian Masney <masneyb@onstation.org>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      Signed-off-by: NBrian Masney <masneyb@onstation.org>
      Co-developed-by: NBrian Masney <masneyb@onstation.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Link: https://lore.kernel.org/r/20190808123242.5359-1-linus.walleij@linaro.org
      fdd61a01
  6. 01 8月, 2019 4 次提交
  7. 30 7月, 2019 1 次提交
  8. 29 7月, 2019 1 次提交
  9. 27 7月, 2019 1 次提交
  10. 26 7月, 2019 1 次提交
  11. 25 7月, 2019 1 次提交
    • R
      driver core: Remove device link creation limitation · 515db266
      Rafael J. Wysocki 提交于
      If device_link_add() is called for a consumer/supplier pair with an
      existing device link between them and the existing link's type is
      not in agreement with the flags passed to that function by its
      caller, NULL will be returned.  That is seriously inconvenient,
      because it forces the callers of device_link_add() to worry about
      what others may or may not do even if that is not relevant to them
      for any other reasons.
      
      It turns out, however, that this limitation can be made go away
      relatively easily.
      
      The underlying observation is that if DL_FLAG_STATELESS has been
      passed to device_link_add() in flags for the given consumer/supplier
      pair at least once, calling either device_link_del() or
      device_link_remove() to release the link returned by it should work,
      but there are no other requirements associated with that flag.  In
      turn, if at least one of the callers of device_link_add() for the
      given consumer/supplier pair has not passed DL_FLAG_STATELESS to it
      in flags, the driver core should track the status of the link and act
      on it as appropriate (ie. the link should be treated as "managed").
      This means that DL_FLAG_STATELESS needs to be set for managed device
      links and it should be valid to call device_link_del() or
      device_link_remove() to drop references to them in certain
      sutiations.
      
      To allow that to happen, introduce a new (internal) device link flag
      called DL_FLAG_MANAGED and make device_link_add() set it automatically
      whenever DL_FLAG_STATELESS is not passed to it.  Also make it take
      additional references to existing device links that were previously
      stateless (that is, with DL_FLAG_STATELESS set and DL_FLAG_MANAGED
      unset) and will need to be managed going forward and initialize
      their status (which has been DL_STATE_NONE so far).
      
      Accordingly, when a managed device link is dropped automatically
      by the driver core, make it clear DL_FLAG_MANAGED, reset the link's
      status back to DL_STATE_NONE and drop the reference to it associated
      with DL_FLAG_MANAGED instead of just deleting it right away (to
      allow it to stay around in case it still needs to be released
      explicitly by someone).
      
      With that, since setting DL_FLAG_STATELESS doesn't mean that the
      device link in question is not managed any more, replace all of the
      status-tracking checks against DL_FLAG_STATELESS with analogous
      checks against DL_FLAG_MANAGED and update the documentation to
      reflect these changes.
      
      While at it, make device_link_add() reject flags that it does not
      recognize, including DL_FLAG_MANAGED.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: NSaravana Kannan <saravanak@google.com>
      Tested-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Review-by: NSaravana Kannan <saravanak@google.com>
      Link: https://lore.kernel.org/r/2305283.AStDPdUUnE@kreacherSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      515db266
  12. 17 7月, 2019 1 次提交
  13. 15 7月, 2019 18 次提交
  14. 13 7月, 2019 1 次提交
  15. 05 7月, 2019 1 次提交
  16. 04 7月, 2019 1 次提交
  17. 01 7月, 2019 1 次提交