1. 22 7月, 2019 1 次提交
  2. 16 7月, 2019 1 次提交
  3. 09 7月, 2019 4 次提交
  4. 28 6月, 2019 3 次提交
    • V
      cpufreq: Avoid calling cpufreq_verify_current_freq() from handle_update() · 70a59fde
      Viresh Kumar 提交于
      On some occasions cpufreq_verify_current_freq() schedules a work whose
      callback is handle_update(), which further calls cpufreq_update_policy()
      which may end up calling cpufreq_verify_current_freq() again.
      
      On the other hand, when cpufreq_update_policy() is called from
      handle_update(), the pointer to the cpufreq policy is already
      available, but cpufreq_cpu_acquire() is still called to get it in
      cpufreq_update_policy(), which should be avoided as well.
      
      To fix these issues, create a new helper, refresh_frequency_limits(),
      and make both handle_update() call it cpufreq_update_policy().
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      [ rjw: Rename reeval_frequency_limits() as refresh_frequency_limits() ]
      [ rjw: Changelog ]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      70a59fde
    • V
      cpufreq: Consolidate cpufreq_update_current_freq() and __cpufreq_get() · 5980752e
      Viresh Kumar 提交于
      Their implementations are quite similar, so modify
      cpufreq_update_current_freq() somewhat and call it from
      __cpufreq_get().
      
      Also rename cpufreq_update_current_freq() to
      cpufreq_verify_current_freq(), as that's what it is doing.
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      [ rjw: Subject & changelog ]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5980752e
    • V
      cpufreq: Don't skip frequency validation for has_target() drivers · 98015228
      Viresh Kumar 提交于
      CPUFREQ_CONST_LOOPS was introduced in a very old commit from pre-2.6
      kernel release by commit 6a4a93f9c0d5 ("[CPUFREQ] Fix 'out of sync'
      issue").
      
      Basically, that commit does two things:
      
       - It adds the frequency verification code (which is quite similar to
         what we have today as well).
      
       - And it sets the CPUFREQ_CONST_LOOPS flag only for setpolicy drivers,
         rightly so based on the code we had then. The idea was to avoid
         frequency validation for setpolicy drivers as the cpufreq core doesn't
         know what frequency the hardware is running at and so no point in
         doing frequency verification.
      
      The problem happened when we started to use the same CPUFREQ_CONST_LOOPS
      flag for constant loops-per-jiffy thing as well and many has_target()
      drivers started using the same flag and unknowingly skipped the
      verification of frequency. There is no logical reason behind skipping
      frequency validation because of the presence of CPUFREQ_CONST_LOOPS
      flag otherwise.
      
      Fix this issue by skipping frequency validation only for setpolicy
      drivers and always doing it for has_target() drivers irrespective of
      the presence or absence of CPUFREQ_CONST_LOOPS flag.
      
      cpufreq_notify_transition() is only called for has_target() type driver
      and not for set_policy type, and the check is simply redundant. Remove
      it as well.
      
      Also remove () around freq comparison statement as they aren't required
      and checkpatch also warns for them.
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      98015228
  5. 26 6月, 2019 3 次提交
  6. 24 6月, 2019 1 次提交
  7. 19 6月, 2019 2 次提交
  8. 17 6月, 2019 1 次提交
  9. 13 6月, 2019 1 次提交
  10. 06 6月, 2019 2 次提交
  11. 05 6月, 2019 5 次提交
  12. 04 6月, 2019 2 次提交
  13. 03 6月, 2019 2 次提交
  14. 31 5月, 2019 5 次提交
  15. 24 5月, 2019 1 次提交
  16. 21 5月, 2019 2 次提交
  17. 20 5月, 2019 1 次提交
  18. 16 5月, 2019 1 次提交
    • S
      clk: Remove io.h from clk-provider.h · 62e59c4e
      Stephen Boyd 提交于
      Now that we've gotten rid of clk_readl() we can remove io.h from the
      clk-provider header and push out the io.h include to any code that isn't
      already including the io.h header but using things like readl/writel,
      etc.
      
      Found with this grep:
      
        git grep -l clk-provider.h | grep '.c$' | xargs git grep -L 'linux/io.h' | \
        	xargs git grep -l \
      	-e '\<__iowrite32_copy\>' --or \
      	-e '\<__ioread32_copy\>' --or \
      	-e '\<__iowrite64_copy\>' --or \
      	-e '\<ioremap_page_range\>' --or \
      	-e '\<ioremap_huge_init\>' --or \
      	-e '\<arch_ioremap_pud_supported\>' --or \
      	-e '\<arch_ioremap_pmd_supported\>' --or \
      	-e '\<devm_ioport_map\>' --or \
      	-e '\<devm_ioport_unmap\>' --or \
      	-e '\<IOMEM_ERR_PTR\>' --or \
      	-e '\<devm_ioremap\>' --or \
      	-e '\<devm_ioremap_nocache\>' --or \
      	-e '\<devm_ioremap_wc\>' --or \
      	-e '\<devm_iounmap\>' --or \
      	-e '\<devm_ioremap_release\>' --or \
      	-e '\<devm_memremap\>' --or \
      	-e '\<devm_memunmap\>' --or \
      	-e '\<__devm_memremap_pages\>' --or \
      	-e '\<pci_remap_cfgspace\>' --or \
      	-e '\<arch_has_dev_port\>' --or \
      	-e '\<arch_phys_wc_add\>' --or \
      	-e '\<arch_phys_wc_del\>' --or \
      	-e '\<memremap\>' --or \
      	-e '\<memunmap\>' --or \
      	-e '\<arch_io_reserve_memtype_wc\>' --or \
      	-e '\<arch_io_free_memtype_wc\>' --or \
      	-e '\<__io_aw\>' --or \
      	-e '\<__io_pbw\>' --or \
      	-e '\<__io_paw\>' --or \
      	-e '\<__io_pbr\>' --or \
      	-e '\<__io_par\>' --or \
      	-e '\<__raw_readb\>' --or \
      	-e '\<__raw_readw\>' --or \
      	-e '\<__raw_readl\>' --or \
      	-e '\<__raw_readq\>' --or \
      	-e '\<__raw_writeb\>' --or \
      	-e '\<__raw_writew\>' --or \
      	-e '\<__raw_writel\>' --or \
      	-e '\<__raw_writeq\>' --or \
      	-e '\<readb\>' --or \
      	-e '\<readw\>' --or \
      	-e '\<readl\>' --or \
      	-e '\<readq\>' --or \
      	-e '\<writeb\>' --or \
      	-e '\<writew\>' --or \
      	-e '\<writel\>' --or \
      	-e '\<writeq\>' --or \
      	-e '\<readb_relaxed\>' --or \
      	-e '\<readw_relaxed\>' --or \
      	-e '\<readl_relaxed\>' --or \
      	-e '\<readq_relaxed\>' --or \
      	-e '\<writeb_relaxed\>' --or \
      	-e '\<writew_relaxed\>' --or \
      	-e '\<writel_relaxed\>' --or \
      	-e '\<writeq_relaxed\>' --or \
      	-e '\<readsb\>' --or \
      	-e '\<readsw\>' --or \
      	-e '\<readsl\>' --or \
      	-e '\<readsq\>' --or \
      	-e '\<writesb\>' --or \
      	-e '\<writesw\>' --or \
      	-e '\<writesl\>' --or \
      	-e '\<writesq\>' --or \
      	-e '\<inb\>' --or \
      	-e '\<inw\>' --or \
      	-e '\<inl\>' --or \
      	-e '\<outb\>' --or \
      	-e '\<outw\>' --or \
      	-e '\<outl\>' --or \
      	-e '\<inb_p\>' --or \
      	-e '\<inw_p\>' --or \
      	-e '\<inl_p\>' --or \
      	-e '\<outb_p\>' --or \
      	-e '\<outw_p\>' --or \
      	-e '\<outl_p\>' --or \
      	-e '\<insb\>' --or \
      	-e '\<insw\>' --or \
      	-e '\<insl\>' --or \
      	-e '\<outsb\>' --or \
      	-e '\<outsw\>' --or \
      	-e '\<outsl\>' --or \
      	-e '\<insb_p\>' --or \
      	-e '\<insw_p\>' --or \
      	-e '\<insl_p\>' --or \
      	-e '\<outsb_p\>' --or \
      	-e '\<outsw_p\>' --or \
      	-e '\<outsl_p\>' --or \
      	-e '\<ioread8\>' --or \
      	-e '\<ioread16\>' --or \
      	-e '\<ioread32\>' --or \
      	-e '\<ioread64\>' --or \
      	-e '\<iowrite8\>' --or \
      	-e '\<iowrite16\>' --or \
      	-e '\<iowrite32\>' --or \
      	-e '\<iowrite64\>' --or \
      	-e '\<ioread16be\>' --or \
      	-e '\<ioread32be\>' --or \
      	-e '\<ioread64be\>' --or \
      	-e '\<iowrite16be\>' --or \
      	-e '\<iowrite32be\>' --or \
      	-e '\<iowrite64be\>' --or \
      	-e '\<ioread8_rep\>' --or \
      	-e '\<ioread16_rep\>' --or \
      	-e '\<ioread32_rep\>' --or \
      	-e '\<ioread64_rep\>' --or \
      	-e '\<iowrite8_rep\>' --or \
      	-e '\<iowrite16_rep\>' --or \
      	-e '\<iowrite32_rep\>' --or \
      	-e '\<iowrite64_rep\>' --or \
      	-e '\<__io_virt\>' --or \
      	-e '\<pci_iounmap\>' --or \
      	-e '\<virt_to_phys\>' --or \
      	-e '\<phys_to_virt\>' --or \
      	-e '\<ioremap_uc\>' --or \
      	-e '\<ioremap\>' --or \
      	-e '\<__ioremap\>' --or \
      	-e '\<iounmap\>' --or \
      	-e '\<ioremap\>' --or \
      	-e '\<ioremap_nocache\>' --or \
      	-e '\<ioremap_uc\>' --or \
      	-e '\<ioremap_wc\>' --or \
      	-e '\<ioremap_wc\>' --or \
      	-e '\<ioremap_wt\>' --or \
      	-e '\<ioport_map\>' --or \
      	-e '\<ioport_unmap\>' --or \
      	-e '\<ioport_map\>' --or \
      	-e '\<ioport_unmap\>' --or \
      	-e '\<xlate_dev_kmem_ptr\>' --or \
      	-e '\<xlate_dev_mem_ptr\>' --or \
      	-e '\<unxlate_dev_mem_ptr\>' --or \
      	-e '\<virt_to_bus\>' --or \
      	-e '\<bus_to_virt\>' --or \
      	-e '\<memset_io\>' --or \
      	-e '\<memcpy_fromio\>' --or \
      	-e '\<memcpy_toio\>'
      
      I also reordered a couple includes when they weren't alphabetical and
      removed clk.h from kona, replacing it with clk-provider.h because
      that driver doesn't use clk consumer APIs.
      Acked-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Cc: Chen-Yu Tsai <wens@csie.org>
      Acked-by: NMaxime Ripard <maxime.ripard@bootlin.com>
      Acked-by: NTero Kristo <t-kristo@ti.com>
      Acked-by: NSekhar Nori <nsekhar@ti.com>
      Cc: Krzysztof Kozlowski <krzk@kernel.org>
      Acked-by: NMark Brown <broonie@kernel.org>
      Cc: Chris Zankel <chris@zankel.net>
      Acked-by: NMax Filippov <jcmvbkbc@gmail.com>
      Acked-by: NJohn Crispin <john@phrozen.org>
      Acked-by: NHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: NStephen Boyd <sboyd@kernel.org>
      62e59c4e
  19. 13 5月, 2019 2 次提交