1. 09 11月, 2017 1 次提交
  2. 08 11月, 2017 7 次提交
  3. 14 10月, 2017 4 次提交
    • R
      PM / QoS: Drop PM_QOS_FLAG_REMOTE_WAKEUP · 20f97caf
      Rafael J. Wysocki 提交于
      The PM QoS flag PM_QOS_FLAG_REMOTE_WAKEUP is not used consistently
      and the vast majority of code simply assumes that remote wakeup
      should be enabled for devices in runtime suspend if they can
      generate wakeup signals, so drop it.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: NUlf Hansson <ulf.hansson@linaro.org>
      Reviewed-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      20f97caf
    • L
      ARM: cpuidle: Refactor rollback operations if init fails · 7943bfae
      Leo Yan 提交于
      If init fails, we need execute two levels rollback operations: the first
      level is for the failed CPU rollback operations, the second level is to
      iterate all succeeded CPUs to cancel their registration; currently the
      code uses one function to finish these two levels rollback operations.
      
      This commit is to refactor rollback operations, so it adds a new
      function arm_idle_init_cpu() to encapsulate one specified CPU driver
      registration and rollback the first level operations; and use function
      arm_idle_init() to iterate all CPUs and finish the second level's
      rollback operations.
      Suggested-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: NLeo Yan <leo.yan@linaro.org>
      Acked-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      7943bfae
    • L
      ARM: cpuidle: Correct driver unregistration if init fails · 0f87855d
      Leo Yan 提交于
      If cpuidle init fails, the code misses to unregister the driver for
      current CPU. Furthermore, we also need to rollback to cancel all
      previous CPUs registration; but the code retrieves driver handler by
      using function cpuidle_get_driver(), this function returns back
      current CPU driver handler but not previous CPU's handler, which leads
      to the failure handling code cannot unregister previous CPUs driver.
      
      This commit fixes two mentioned issues, it adds error handling path
      'goto out_unregister_drv' for current CPU driver unregistration; and
      it is to replace cpuidle_get_driver() with cpuidle_get_cpu_driver(),
      the later function can retrieve driver handler for previous CPUs
      according to the CPU device handler so can unregister the driver
      properly.
      
      This patch also adds extra error handling paths 'goto out_kfree_dev'
      and 'goto out_kfree_drv' and adjusts the freeing sentences for previous
      CPUs; so make the code more readable for freeing 'dev' and 'drv'
      structures.
      Suggested-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: NLeo Yan <leo.yan@linaro.org>
      Fixes: d50a7d8a (ARM: cpuidle: Support asymmetric idle definition)
      Acked-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0f87855d
    • V
      PM / Domains: Add support to select performance-state of domains · 42f6284a
      Viresh Kumar 提交于
      Some platforms have the capability to configure the performance state of
      PM domains. This patch enhances the genpd core to support such
      platforms.
      
      The performance levels (within the genpd core) are identified by
      positive integer values, a lower value represents lower performance
      state.
      
      This patch adds a new genpd API, which is called by user drivers (like
      OPP framework):
      
      - int dev_pm_genpd_set_performance_state(struct device *dev,
      					 unsigned int state);
      
        This updates the performance state constraint of the device on its PM
        domain. On success, the genpd will have its performance state set to a
        value which is >= "state" passed to this routine. The genpd core calls
        the genpd->set_performance_state() callback, if implemented,
        else -ENODEV is returned to the caller.
      
      The PM domain drivers need to implement the following callback if they
      want to support performance states.
      
      - int (*set_performance_state)(struct generic_pm_domain *genpd,
      			       unsigned int state);
      
        This is called internally by the genpd core on several occasions. The
        genpd core passes the genpd pointer and the aggregate of the
        performance states of the devices supported by that genpd to this
        callback. This callback must update the performance state of the genpd
        (in a platform dependent way).
      
      The power domains can avoid supplying above callback, if they don't
      support setting performance-states.
      
      Currently we aren't propagating performance state changes of a subdomain
      to its masters as we don't have hardware that needs it right now. Over
      that, the performance states of subdomain and its masters may not have
      one-to-one mapping and would require additional information. We can get
      back to this once we have hardware that needs it.
      Tested-by: NRajendra Nayak <rnayak@codeaurora.org>
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Acked-by: NUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      42f6284a
  4. 11 10月, 2017 2 次提交
  5. 06 10月, 2017 1 次提交
    • J
      dm raid: fix incorrect status output at the end of a "recover" process · 41dcf197
      Jonathan Brassow 提交于
      There are three important fields that indicate the overall health and
      status of an array: dev_health, sync_ratio, and sync_action.  They tell
      us the condition of the devices in the array, and the degree to which
      the array is synchronized.
      
      This commit fixes a condition that is reported incorrectly.  When a member
      of the array is being rebuilt or a new device is added, the "recover"
      process is used to synchronize it with the rest of the array.  When the
      process is complete, but the sync thread hasn't yet been reaped, it is
      possible for the state of MD to be:
       mddev->recovery = [ MD_RECOVERY_RUNNING MD_RECOVERY_RECOVER MD_RECOVERY_DONE ]
       curr_resync_completed = <max dev size> (but not MaxSector)
       and all rdevs to be In_sync.
      This causes the 'array_in_sync' output parameter that is passed to
      rs_get_progress() to be computed incorrectly and reported as 'false' --
      or not in-sync.  This in turn causes the dev_health status characters to
      be reported as all 'a', rather than the proper 'A'.
      
      This can cause erroneous output for several seconds at a time when tools
      will want to be checking the condition due to events that are raised at
      the end of a sync process.  Fix this by properly calculating the
      'array_in_sync' return parameter in rs_get_progress().
      
      Also, remove an unnecessary intermediate 'recovery_cp' variable in
      rs_get_progress().
      Signed-off-by: NJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      41dcf197
  6. 05 10月, 2017 14 次提交
  7. 04 10月, 2017 11 次提交