Bug 1348 - processor.c using byte IO even if DSDT prescribes otherwise
Summary: processor.c using byte IO even if DSDT prescribes otherwise
Status: REJECTED DUPLICATE of bug 1349
Alias: None
Product: ACPI
Classification: Unclassified
Component: Power-Processor (show other bugs)
Hardware: i386 Linux
: P2 high
Assignee: Len Brown
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-10-12 04:13 UTC by Mario Lorenz
Modified: 2004-03-04 12:10 UTC (History)
0 users

See Also:
Kernel Version: 2.4.23-pre7 + ACPI 20031006164230
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description Mario Lorenz 2003-10-12 04:13:08 UTC
Distribution: Debian
Hardware Environment: Asus M2400N Centrino
Software Environment: Bios 0206; see DSDT in Repository
Problem Description: 

ACPI Processor Performance level setting does not work on this Notebook.

The reason for this is that processor.c uses outb() byte writes to
write to the power control register, even tho the DSDT prescribes otherwise
(see PPCT Ressource template in the DSDT, the register has a length of 0x10,
and the value is a 16bit value too)

Changing the u8 typecasts to u16 and putting in an outw() - et voila: ACPI
performance level setting starts to work.

The propper fix would probably be to do away with outb() completely and use
proper ACPI generic adresses. This would also accomodate the alternate 
PCT/PSS Methods from the DSDT which use the Centrino MSR directly, and no
IO at all.

That in turn does depend uppon support of FFixedHW Address Types. Is this planned ?

I furthermore do wonder if this is somehow related to #1269, after all,
its about the same (0x82) register.

What I also noticed: switching the performance level does not update
/proc/cpuinfo (using speedstep-centrino patches, it does), and therefore
internal clock/timers could possibly be wrong after a performance level
change ?

Steps to reproduce:

load processor.o on a M2400N.
Observe processsor performance switching does not work.
Patch processor.c replacing the outb() with outw() and expanding the
value cast from u8 to u16.
recompile
insert module
observe ACPI processor performance switching does work now.
Comment 1 Mario Lorenz 2003-10-16 23:57:47 UTC

*** This bug has been marked as a duplicate of 1349 ***

Note You need to log in before you can comment on or make changes to this bug.