|
@@ -287,10 +287,10 @@ static void acpi_processor_idle(void)
|
|
pr->power.bm_check_timestamp = jiffies;
|
|
pr->power.bm_check_timestamp = jiffies;
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Apply bus mastering demotion policy. Automatically demote
|
|
|
|
|
|
+ * If bus mastering is or was active this jiffy, demote
|
|
* to avoid a faulty transition. Note that the processor
|
|
* to avoid a faulty transition. Note that the processor
|
|
* won't enter a low-power state during this call (to this
|
|
* won't enter a low-power state during this call (to this
|
|
- * funciton) but should upon the next.
|
|
|
|
|
|
+ * function) but should upon the next.
|
|
*
|
|
*
|
|
* TBD: A better policy might be to fallback to the demotion
|
|
* TBD: A better policy might be to fallback to the demotion
|
|
* state (use it for this quantum only) istead of
|
|
* state (use it for this quantum only) istead of
|
|
@@ -298,7 +298,8 @@ static void acpi_processor_idle(void)
|
|
* qualification. This may, however, introduce DMA
|
|
* qualification. This may, however, introduce DMA
|
|
* issues (e.g. floppy DMA transfer overrun/underrun).
|
|
* issues (e.g. floppy DMA transfer overrun/underrun).
|
|
*/
|
|
*/
|
|
- if (pr->power.bm_activity & cx->demotion.threshold.bm) {
|
|
|
|
|
|
+ if ((pr->power.bm_activity & 0x1) &&
|
|
|
|
+ cx->demotion.threshold.bm) {
|
|
local_irq_enable();
|
|
local_irq_enable();
|
|
next_state = cx->demotion.state;
|
|
next_state = cx->demotion.state;
|
|
goto end;
|
|
goto end;
|