1. 31 Oct, 2019 1 commit
  2. 25 Oct, 2019 1 commit
    • Rafael J. Wysocki's avatar
      ACPI: processor: Add QoS requests for all CPUs · a1bb46c3
      Rafael J. Wysocki authored
      The _PPC change notifications from the platform firmware are per-CPU,
      so acpi_processor_ppc_init() needs to add a frequency QoS request
      for each CPU covered by a cpufreq policy to take all of them into
      account.
      
      Even though ACPI thermal control of CPUs sets frequency limits
      per processor package, it also needs a frequency QoS request for each
      CPU in a cpufreq policy in case some of them are taken offline and
      the frequency limit needs to be set through the remaining online
      ones (this is slightly excessive, because all CPUs covered by one
      cpufreq policy will set the same frequency limit through their QoS
      requests, but it is not incorrect).
      
      Modify the code in accordance with the above observations.
      
      Fixes: d15ce412 ("ACPI: cpufreq: Switch to QoS requests instead of cpufreq notifier")
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      a1bb46c3
  3. 24 Oct, 2019 1 commit
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpuidle' and 'pm-opp' · 767d2d71
      Rafael J. Wysocki authored
      * pm-cpuidle:
        cpuidle: haltpoll: Take 'idle=' override into account
      
      * pm-opp:
        opp: Reinitialize the list_kref before adding the static OPPs again
        opp: core: Revert "add regulators enable and disable"
        opp: of: drop incorrect lockdep_assert_held()
      767d2d71
  4. 23 Oct, 2019 2 commits
  5. 22 Oct, 2019 2 commits
    • Sudeep Holla's avatar
      cpufreq: Cancel policy update work scheduled before freeing · 6941051d
      Sudeep Holla authored
      Scheduled policy update work may end up racing with the freeing of the
      policy and unregistering the driver.
      
      One possible race is as below, where the cpufreq_driver is unregistered,
      but the scheduled work gets executed at later stage when, cpufreq_driver
      is NULL (i.e. after freeing the policy and driver).
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000001c
      pgd = (ptrval)
      [0000001c] *pgd=80000080204003, *pmd=00000000
      Internal error: Oops: 206 [#1] SMP THUMB2
      Modules linked in:
      CPU: 0 PID: 34 Comm: kworker/0:1 Not tainted 5.4.0-rc3-00006-g67f5a8081a4b #86
      Hardware name: ARM-Versatile Express
      Workqueue: events handle_update
      PC is at cpufreq_set_policy+0x58/0x228
      LR is at dev_pm_qos_read_value+0x77/0xac
      Control: 70c5387d  Table: 80203000  DAC: fffffffd
      Process kworker/0:1 (pid: 34, stack limit = 0x(ptrval))
      	(cpufreq_set_policy) from (refresh_frequency_limits.part.24+0x37/0x48)
      	(refresh_frequency_limits.part.24) from (handle_update+0x2f/0x38)
      	(handle_update) from (process_one_work+0x16d/0x3cc)
      	(process_one_work) from (worker_thread+0xff/0x414)
      	(worker_thread) from (kthread+0xff/0x100)
      	(kthread) from (ret_from_fork+0x11/0x28)
      
      Fixes: 67d874c3 ("cpufreq: Register notifiers with the PM QoS framework")
      Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      [ rjw: Cancel the work before dropping the QoS requests ]
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      6941051d
    • Zhenzhong Duan's avatar
      cpuidle: haltpoll: Take 'idle=' override into account · 31d85140
      Zhenzhong Duan authored
      Currenly haltpoll isn't aware of the 'idle=' override, the priority is
      'idle=poll' > haltpoll > 'idle=halt'. When 'idle=poll' is used, cpuidle
      driver is bypassed but current_driver in sys still shows 'haltpoll'.
      
      When 'idle=halt' is used, haltpoll takes precedence and makes
      'idle=halt' have no effect.
      
      Add a check to prevent the haltpoll driver from loading if 'idle=' is
      present.
      Signed-off-by: default avatarZhenzhong Duan <zhenzhong.duan@oracle.com>
      Co-developed-by: default avatarJoao Martins <joao.m.martins@oracle.com>
      [ rjw: Subject ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      31d85140
  6. 21 Oct, 2019 4 commits
  7. 20 Oct, 2019 6 commits
  8. 19 Oct, 2019 23 commits