1. 26 3月, 2021 2 次提交
  2. 10 10月, 2020 2 次提交
    • M
      soc/tegra: pmc: Don't create fake interrupt hierarchy levels · c351ab7b
      Marc Zyngier 提交于
      The Tegra PMC driver does ungodly things with the interrupt hierarchy,
      repeatedly corrupting it by pulling hwirq numbers out of thin air,
      overriding existing IRQ mappings and changing the handling flow
      of unsuspecting users.
      
      All of this is done in the name of preserving the interrupt hierarchy
      even when these levels do not exist in the HW. Together with the use
      of proper IRQs for IPIs, this leads to an unbootable system as the
      rescheduling IPI gets repeatedly repurposed for random drivers...
      
      Instead, let's simply mark the level from which the hierarchy does
      not make sense for the HW, and let the core code trim the usused
      levels from the hierarchy.
      Signed-off-by: NMarc Zyngier <maz@kernel.org>
      c351ab7b
    • M
      soc/tegra: pmc: Allow optional irq parent callbacks · 8681cc33
      Marc Zyngier 提交于
      Make the PMC driver resistent to variable depth interrupt hierarchy,
      which we are about to introduce.
      Signed-off-by: NMarc Zyngier <maz@kernel.org>
      8681cc33
  3. 18 9月, 2020 2 次提交
  4. 24 8月, 2020 1 次提交
  5. 22 5月, 2020 1 次提交
  6. 08 5月, 2020 1 次提交
  7. 22 4月, 2020 1 次提交
  8. 13 3月, 2020 4 次提交
  9. 06 1月, 2020 1 次提交
  10. 18 11月, 2019 3 次提交
  11. 29 10月, 2019 6 次提交
  12. 01 10月, 2019 1 次提交
    • T
      soc/tegra: pmc: Fix crashes for hierarchical interrupts · c9e75376
      Thierry Reding 提交于
      Interrupts that don't have an associated wake event or GPIO wake events
      end up with an associate IRQ chip that is NULL and which causes IRQ code
      to crash. This is because we don't implicitly set the parent IRQ chip by
      allocating the interrupt at the parent. However, there really isn't a
      corresponding interrupt at the parent, so we need to work around this by
      setting the special no_irq_chip as the IRQ chip for these interrupts.
      
      Fixes: 19906e6b ("soc/tegra: pmc: Add wake event support")
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      c9e75376
  13. 21 6月, 2019 1 次提交
  14. 05 6月, 2019 4 次提交
  15. 17 4月, 2019 3 次提交
    • J
      soc/tegra: pmc: Move powergate initialisation to probe · 6ac2a01d
      Jon Hunter 提交于
      Commit 8df12745 ("soc/tegra: pmc: Enable XUSB partitions on boot")
      was added as a workaround to ensure that the XUSB powergates or domains
      were turned on early during boot because as this time the Tegra XHCI
      driver did not handle the power domains at all. Now that the Tegra XHCI
      driver has been updated to properly managed the power domains, the
      workaround to enable the XUSB power domain early has been removed. This
      also means that we can now move the initialisation of the powergates
      into the PMC driver probe. Therefore, move the powergate initialisation
      into the PMC driver probe and return any errors detected. To handle any
      errors, functions to cleanup and remove any power-domains registered
      with the generic power-domain framework have been added.
      
      Finally the initialisation of the 'powergates_available' bitmask is kept
      in the PMC early init function to allow the legacy PMC powergate APIs to
      be called during early boot for enabling secondary CPUs on 32-bit Tegra
      devices.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      6ac2a01d
    • J
      soc/tegra: pmc: Remove reset sysfs entries on error · a46b51cd
      Jon Hunter 提交于
      Commit 5f84bb1a ("soc/tegra: pmc: Add sysfs entries for reset info")
      added sysfs entries for Tegra reset source and level. However, these
      sysfs are not removed on error and so if the registering of PMC device
      is probe deferred, then the next time we attempt to probe the PMC device
      warnings such as the following will be displayed on boot ...
      
        sysfs: cannot create duplicate filename '/devices/platform/7000e400.pmc/reset_reason'
      
      Fix this by calling device_remove_file() for each sysfs entry added on
      failure. Note that we call device_remove_file() unconditionally without
      checking if the sysfs entry was created in the first place, but this
      should be OK because kernfs_remove_by_name_ns() will fail silently.
      
      Fixes: 5f84bb1a ("soc/tegra: pmc: Add sysfs entries for reset info")
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      a46b51cd
    • J
      soc/tegra: pmc: Fix reset sources and levels · 00cdaa1b
      Jon Hunter 提交于
      Commit 5f84bb1a ("soc/tegra: pmc: Add sysfs entries for reset info")
      added support for reading the Tegra reset source and level from sysfs.
      However, there are a few issues with this commit which are ...
      1. The number of reset sources for Tegra210 is defined as 5 but it
         should be 6.
      2. The number of reset sources for Tegra186 is defined as 13 but it
         should be 15.
      3. The SoC data variables num_reset_sources and num_reset_levels are
         defined but never used.
      
      Fix the above by ...
      
      1. Removing the reset source 'AOTAG' from the tegra30_reset_sources
         because this is only applicable for Tegra210.
      2. Adding a new tegra210_reset_sources structure for Tegra210 reset
         sources.
      3. Correct the number of reset sources for Tegra210 and Tegra186 by
         using the ARRAY_SIZE macro.
      4. Updating the functions reset_reason_show() and reset_level_show()
         to check whether the value read is valid. While we are at it
         clean-up these functions to remove an unnecessary u32 variable.
      
      Fixes: 5f84bb1a ("soc/tegra: pmc: Add sysfs entries for reset info")
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      00cdaa1b
  16. 22 3月, 2019 1 次提交
  17. 25 1月, 2019 6 次提交