ACPI / cpuidle: Drop flags.bm_check tests from acpi_idle_enter_bm()
Since acpi_idle_enter_bm() is only used if flags.bm_check is set for the given acpi_processor object, it doesn't make sense to check that flag in there. For this reason, drop flags.bm_check tests (and some code depending on them) from acpi_idle_enter_bm(). Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
5f97d66286
commit
2a73835291
@ -842,28 +842,25 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
|
||||
/*
|
||||
* disable bus master
|
||||
* bm_check implies we need ARB_DIS
|
||||
* !bm_check implies we need cache flush
|
||||
* bm_control implies whether we can do ARB_DIS
|
||||
*
|
||||
* That leaves a case where bm_check is set and bm_control is
|
||||
* not set. In that case we cannot do much, we enter C3
|
||||
* without doing anything.
|
||||
*/
|
||||
if (pr->flags.bm_check && pr->flags.bm_control) {
|
||||
if (pr->flags.bm_control) {
|
||||
raw_spin_lock(&c3_lock);
|
||||
c3_cpu_count++;
|
||||
/* Disable bus master arbitration when all CPUs are in C3 */
|
||||
if (c3_cpu_count == num_online_cpus())
|
||||
acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 1);
|
||||
raw_spin_unlock(&c3_lock);
|
||||
} else if (!pr->flags.bm_check) {
|
||||
ACPI_FLUSH_CPU_CACHE();
|
||||
}
|
||||
|
||||
acpi_idle_do_entry(cx);
|
||||
|
||||
/* Re-enable bus master arbitration */
|
||||
if (pr->flags.bm_check && pr->flags.bm_control) {
|
||||
if (pr->flags.bm_control) {
|
||||
raw_spin_lock(&c3_lock);
|
||||
acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 0);
|
||||
c3_cpu_count--;
|
||||
|
Loading…
Reference in New Issue
Block a user