1. 24 6月, 2017 1 次提交
  2. 10 2月, 2017 1 次提交
  3. 30 1月, 2017 3 次提交
  4. 27 1月, 2017 2 次提交
  5. 06 12月, 2016 4 次提交
  6. 01 12月, 2016 1 次提交
    • S
      PM / OPP: Pass opp_table to dev_pm_opp_put_regulator() · 91291d9a
      Stephen Boyd 提交于
      Joonyoung Shim reported an interesting problem on his ARM octa-core
      Odoroid-XU3 platform. During system suspend, dev_pm_opp_put_regulator()
      was failing for a struct device for which dev_pm_opp_set_regulator() is
      called earlier.
      
      This happened because an earlier call to
      dev_pm_opp_of_cpumask_remove_table() function (from cpufreq-dt.c file)
      removed all the entries from opp_table->dev_list apart from the last CPU
      device in the cpumask of CPUs sharing the OPP.
      
      But both dev_pm_opp_set_regulator() and dev_pm_opp_put_regulator()
      routines get CPU device for the first CPU in the cpumask. And so the OPP
      core failed to find the OPP table for the struct device.
      
      This patch attempts to fix this problem by returning a pointer to the
      opp_table from dev_pm_opp_set_regulator() and using that as the
      parameter to dev_pm_opp_put_regulator(). This ensures that the
      dev_pm_opp_put_regulator() doesn't fail to find the opp table.
      
      Note that similar design problem also exists with other
      dev_pm_opp_put_*() APIs, but those aren't used currently by anyone and
      so we don't need to update them for now.
      
      Cc: 4.4+ <stable@vger.kernel.org> # 4.4+
      Reported-by: NJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      [ Viresh: Wrote commit log and tested on exynos 5250 ]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      91291d9a
  7. 05 5月, 2016 2 次提交
    • S
      PM / OPP: add non-OF versions of dev_pm_opp_{cpumask_, }remove_table · 411466c5
      Sudeep Holla 提交于
      Functions dev_pm_opp_of_{cpumask_,}remove_table removes/frees all the
      static OPP entries associated with the device and/or all cpus(in case
      of cpumask) that are created from DT.
      
      However the OPP entries are populated reading from the firmware or some
      different method using dev_pm_opp_add are marked dynamic and can't be
      removed using above functions.
      
      This patch adds non DT/OF versions of dev_pm_opp_{cpumask_,}remove_table
      to support the above mentioned usecase.
      
      This is in preparation to make use of the same in scpi-cpufreq.c
      Signed-off-by: NSudeep Holla <sudeep.holla@arm.com>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Reviewed-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      411466c5
    • A
      PM / OPP: pass cpumask by reference · ddbb74bc
      Arnd Bergmann 提交于
      The new use of dev_pm_opp_set_sharing_cpus resulted in a harmless compiler
      warning with CONFIG_CPUMASK_OFFSTACK=y:
      
      drivers/cpufreq/mvebu-cpufreq.c: In function 'armada_xp_pmsu_cpufreq_init':
      include/linux/cpumask.h:550:25: error: passing argument 2 of 'dev_pm_opp_set_sharing_cpus' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
      
      The problem here is that cpumask_var_t gets passed by reference, but
      by declaring a 'const cpumask_var_t' argument, only the pointer is
      constant, not the actual mask. This is harmless because the function
      does not actually modify the mask.
      
      This patch changes the function prototypes for all of the related functions
      to pass a 'struct cpumask *' instead of 'cpumask_var_t', matching what
      most other such functions do in the kernel. This lets us mark all the
      other similar functions as taking a 'const' mask where possible,
      and it avoids the warning without any change in object code.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: 947bd567 (mvebu: Use dev_pm_opp_set_sharing_cpus() to mark OPP tables as shared)
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Reviewed-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ddbb74bc
  8. 28 4月, 2016 3 次提交
  9. 25 4月, 2016 1 次提交
  10. 10 2月, 2016 4 次提交
  11. 11 12月, 2015 2 次提交
  12. 15 9月, 2015 2 次提交
  13. 09 9月, 2015 1 次提交
  14. 07 8月, 2015 3 次提交
  15. 30 11月, 2014 1 次提交
    • V
      PM / OPP Introduce APIs to remove OPPs · 129eec55
      Viresh Kumar 提交于
      OPPs are created statically (from DT) or dynamically. Currently we don't free
      OPPs that are created statically, when the module unloads. And so if the module
      is inserted back again, we get warning for duplicate OPPs as the same were
      already present.
      
      Also, there might be a need to remove dynamic OPPs in future and so API for that
      is also added.
      
      This patch adds helper APIs to remove/free existing static and dynamic OPPs.
      
      Because the OPPs are used both under RCU and SRCU, we have to wait for grace
      period of both. And so are using kfree_rcu() from within call_srcu().
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      129eec55
  16. 07 5月, 2014 1 次提交
  17. 26 10月, 2013 3 次提交
  18. 23 2月, 2013 1 次提交
  19. 10 9月, 2012 1 次提交
  20. 16 3月, 2012 1 次提交
    • P
      device.h: audit and cleanup users in main include dir · 313162d0
      Paul Gortmaker 提交于
      The <linux/device.h> header includes a lot of stuff, and
      it in turn gets a lot of use just for the basic "struct device"
      which appears so often.
      
      Clean up the users as follows:
      
      1) For those headers only needing "struct device" as a pointer
      in fcn args, replace the include with exactly that.
      
      2) For headers not really using anything from device.h, simply
      delete the include altogether.
      
      3) For headers relying on getting device.h implicitly before
      being included themselves, now explicitly include device.h
      
      4) For files in which doing #1 or #2 uncovers an implicit
      dependency on some other header, fix by explicitly adding
      the required header(s).
      
      Any C files that were implicitly relying on device.h to be
      present have already been dealt with in advance.
      
      Total removals from #1 and #2: 51.  Total additions coming
      from #3: 9.  Total other implicit dependencies from #4: 7.
      
      As of 3.3-rc1, there were 110, so a net removal of 42 gives
      about a 38% reduction in device.h presence in include/*
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      313162d0
  21. 05 11月, 2011 1 次提交
  22. 01 10月, 2011 1 次提交