Bug 7576 - ASUS A6Tc - no C-States for the processor, HIGH temperatures.
Summary: ASUS A6Tc - no C-States for the processor, HIGH temperatures.
Status: REJECTED INVALID
Alias: None
Product: ACPI
Classification: Unclassified
Component: Power-Processor (show other bugs)
Hardware: i386 Linux
: P2 high
Assignee: Thomas Renninger
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-11-23 17:21 UTC by Patrizio
Modified: 2007-06-06 01:22 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.18
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description Patrizio 2006-11-23 17:21:38 UTC
Distribution: Gentoo
Problem Description: There are no C-States available for the processor (AMD
Turion X2 1600mhz, on ASUS A6Tc laptop). There must be also other power
management bugs, because temperature is 10-15 higher than in windows even with
reduced clock, and there are also various ACPI bugs in the dmesg.

You can download the logs (dmesg, acpidump, ecc) here:
http://www.failed.it/crono/acpilogs.tar.gz

Steps to reproduce:

cd /proc/acpi/processor/cpu1

cat info
processor id:            0
acpi id:                 1
bus mastering control:   yes
power management:        no
throttling control:      yes
limit interface:         yes


cat power
active state:            C1
max_cstate:              C8
bus master activity:     00000000
states:
   *C1:                  type[C1] promotion[--] demotion[--] latency[000]
usage[00000000] duration[00000000000000000000]




--------------------------
Comment 1 Zhang Rui 2006-12-15 00:11:31 UTC
Please
#echo 0x1f >/proc/acpi/debug_level
then insmod processor.ko again
and attach the dmesg. :)

To Bob:
There is something strange when I was trying to get DSDT.
ACPI Error(psloop-0268): Found unknown opcode FD at AML address 0x58827c, 
offset 5BA8, ignoring....
could you help me verify what the problem is please? :)
Comment 2 Robert Moore 2006-12-15 15:04:42 UTC
We have seen this before, it is caused by the BIOS incorrectly fussing with 
the DSDT on the fly. We don't have a workaround, at least yet.
Comment 3 Julien Muchembled 2006-12-15 22:51:05 UTC
(I have exactly the same problems on my Asus A6Tc.)

> Please
> #echo 0x1f >/proc/acpi/debug_level
> then insmod processor.ko again
> and attach the dmesg. :)
<pre>
    scan-0516 [00] bus_driver_init       : Driver successfully bound to device
acpi_processor-0437 [00] processor_get_info    : Bus mastering arbitration 
control present
acpi_processor-0487 [00] processor_get_info    : Processor [0:1]
acpi_utils-0288 [00] evaluate_integer      : Return value [0]
acpi_processor-0180 [00] processor_get_throttli: pblk_address[0x00000510] 
duty_offset[1] duty_width[3]
acpi_processor-0227 [00] processor_get_throttli: Found 8 throttling states
acpi_processor-0093 [00] processor_get_throttli: Throttling state is T0 (0% 
throttling applied)
 nsutils-0876 [03] ns_get_node           : _CST, AE_NOT_FOUND
acpi_processor-0666 [00] processor_get_power_in: No _CST, giving up
acpi_processor-0622 [00] processor_get_power_in: lvl2[0x00000514] lvl3
[0x00000515]
acpi_processor-0788 [00] processor_power_verify: latency too large [101]
acpi_processor-0817 [00] processor_power_verify: latency too large [1001]
ACPI: Processor [CPU1] (supports 8 throttling states)
    scan-0558 [00] driver_attach         : Found driver [ACPI Processor 
Driver] for device [CPU1]
    scan-0516 [00] bus_driver_init       : Driver successfully bound to device
acpi_processor-0437 [00] processor_get_info    : Bus mastering arbitration 
control present
acpi_processor-0487 [00] processor_get_info    : Processor [1:2]
acpi_processor-0490 [00] processor_get_info    : No PBLK (NULL address)
acpi_utils-0288 [00] evaluate_integer      : Return value [0]
acpi_processor-0180 [00] processor_get_throttli: pblk_address[0x00000000] 
duty_offset[0] duty_width[0]
acpi_processor-0188 [00] processor_get_throttli: No throttling register
 nsutils-0876 [03] ns_get_node           : _CST, AE_NOT_FOUND
acpi_processor-0666 [00] processor_get_power_in: No _CST, giving up
    scan-0558 [00] driver_attach         : Found driver [ACPI Processor 
Driver] for device [CPU2]
</pre>
Comment 4 Zhang Rui 2006-12-18 22:34:41 UTC
Look at
http://gentoo-wiki.com/HARDWARE_Asus_A6T.
"There is still no support for C-States on A6Tc, thus there are no hlt 
instructions on idle cycles. That's why the cpu runs constantly at higher 
temperatures than in Windows."
I incline to this from what I've gotten from the ACPIDUMP and Dmesg.
Maybe you can check if there is a bios update. :)
Comment 5 Julien Muchembled 2007-03-04 17:19:49 UTC
>ACPI Error(psloop-0268):
> Found unknown opcode FD at AML address 0x58827c,
>  offset 5BA8, ignoring....

On my laptop, I have :

ACPI Error (psloop-0268): Found unknown opcode FD at AML address 0x58a3ac offset
5BA8, ignoring [20060912]
ACPI Error (psloop-0268): Found unknown opcode FD at AML address 0x58a45b offset
5C57, ignoring [20060912]

and the errors are located in the _PSD objects (1 per CPU).

Partial hexdump of my dsdt:
00005BB0   08 5F 50 50  43 0A 00 08  5F 50 53 44  12 0F 01 12  ._PPC..._PSD....
00005BC0   15 05 0A 05  0A 00 0C 00  00 00 00 0C  FD 00 00 00  ................
00005BD0   0C 02 00 00  00 10 4E 0A  5C 2E 5F 50  52 5F 43 50  ......N.\._PR_CP

The faulty byte is the one at 0x5BBD, i.e. the length of a Package object. The
length of _PSD is not 0xF but 0x18.

The dsdt decompiles to:
        Name (_PSD, Package (0x01)
        {
            Package (0x05)
            {
                0x05,
                0x00,
                0x00000000,
                0x000000FD
            }
        })
        Zero
        Zero
        Zero
        0x00000002

If we replace 0xF by 0x18, there is no more error and we have a valid _PSD:
        Name (_PSD, Package (0x01)
        {
            Package (0x05)
            {
                0x05,
                0x00,
                0x00000000,
                0x000000FD,
                0x00000002
            }
        })

The same thing must be done for the second cpu. Understanding this is
interesting because it allows me to recompile (customize) my dsdt: that's a
first step to make things better.
Unfortunately, all that is about P-States (useless with powernowk8). Not C-states.

Do we suppose that C-States are available under Windows ? Is it possible if
there's no _CST in the dsdt ??
Comment 6 Patrizio 2007-03-05 10:08:39 UTC
Hi, first of all thanks for the effort!

How do you fix the error in line 6215:
Return (Stall (0x0F))
^Syntax error, unexpected PARSEOP_STALL ?

Should it be out of the ()?

I also noticed that there's nothing about _CST, maybe the high temperatures are 
due to the graphic card (nvidia drivers without the cool-thing support?), and 
the /proc/acpi/processor/cpu1 informations are random.
Comment 7 Julien Muchembled 2007-03-05 13:15:08 UTC
>Should it be out of the ()?
Yes:
    Stall (0x0F)
    Return ()
And for the last error:
-Name (_HID, "*pnp0c14")
+Name (_HID, EisaId ("PNP0C14"))
But I don't know what PNP0C14 is (Windows Management Interface for ACPI?) so I
can't tell if that the best way to fix this error.
Comment 8 fiodor.f.suietov 2007-03-06 12:05:28 UTC
Since the ACPI Spec revision 3.0a the Return ASL operator definition
more exactly says, that "if no Arg object is specified, a Return(Zero)
is generated by the ASL compiler". The iASL compiler implements this
feature since the 20050309 release. The previous iASL releases were
generating no any return value in that case. That old AML code can not
be disassembled properly resulting in incorrect ASL expressions like

            If (LEqual (Local2, 0x00))
            {
                Return (Stall (0x0F))
            }

It looks like the original ASL code was the following:

            If (LEqual (Local2, 0x00))
            {
                Return ()
            }
            Stall (0x0F)
Comment 9 Thomas Renninger 2007-06-06 01:21:50 UTC
AMD SMP machines do not support C2/C3. BIOS enters an enhanced C1E mode if all 
cores are set to C1.

-> Assigning to myself for closing.

Because of high temps:
Does this one have an ATI graphics card?
Maybe it helps for you to use the fglrx driver. You can even decrease power 
consumption by using aticonfig --set-powerstate=2 (or even 1, 1 froze for me on 
a specific card, it might work for you). This setting might be especially 
helpful when working on battery...
You might want to mail me privately whether it helped.

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