public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: "Pedro I. Sanchez" <pedro.sanchez-bJEeYj9oJeDQT0dZR+AlfA@public.gmane.org>
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Help with the DSDT for an Acer Ferrari 3400 laptop
Date: Tue, 28 Dec 2004 00:38:37 -0500	[thread overview]
Message-ID: <41D0F15D.8000201@rogers.com> (raw)

Hello,

I'm new to this ACPI world and I'd like your help to fix the dsdt.dsl 
file that I got with this laptop. I followed the steps in the ACPI FAQ 
to disassemble the bin file and ended up with a source file that 
compiles with 8 errors and 1 warning using the Intel ASL compiler.

For your reference the problem I want to fix is that I have no control 
over the fan which is always on, quite annoying. Even though my Linux 
kernel has compiled ACPI fan support the directory /proc/acpi/fan is 
empty. I'm running vanilla kernel 2.6.10 with Debian-AMD64.

The good news is that the 8 errors are actually the same one spread all 
over the source file. So fixing it once will fix the whole file. The bad 
news is that I don't know how to fix it :|

The Error
---------
dsdt.dsl  4480:           If (LLess (\_PR.CPU0._PPC, Local1))
Error    1022 -             Object does not exist ^  (\_PR.CPU0._PPC)

The error is repeated every time the object \_PR.CPU0._PPC appears in 
the code. I read in the FAQ that one possible solution is to use the 
statement

	External(\_PR.CPU0._PPC)

to tell the compiler that this is an external object. However I don't 
understand where this External statement should go. I've tried putting 
it at the beginning of the file and inside the Scope(\_PR) section which 
simply reads

	Scope (\_PR)
	{
	   Processor (CPU0, 0x00, 0x00004010, 0x06) {}
	}

In both cases the compiler complains. So, where shall this External 
statement go?

The Warning
-----------
dsdt.dsl  4287: Method (SMSL, 0, NotSerialized)
Warning  2019 -            ^ Not all control paths return a value (SMSL)

I added a Return (0x00) statement at the very end of the method and the 
warning disappeared. But, is this right? Following my signature you will 
find the code of the offending method including my extra line.


Thanks in advance for any advice you can give me.

-- 
Pedro



                     Name (ACFL, 0x00)
                     Method (SMSL, 0, NotSerialized)
                     {
                         Store ("CMBatt - SMSL", Debug)
                         If (LEqual (\_SB.ECOK, 0x00))
                         {
                             Return (0xFF)
                         }

                         Acquire (\_SB.PCI0.PIB.EC0.MUT1, 0xFFFF)
                         If (LNot (\_SB.PCI0.PIB.EC0.SMRD (0x09, 0x14, 
0x01, RefOf (Local0))))
                         {
                             Store (Local0, SEL0)
                             Store (SEL0, Debug)
                             If (LEqual (ALRT, 0x01))
                             {
                                 \_SB.BAT1.IVBI ()
                                 \_SB.BAT1.IVBS ()
                                 Store (0x00, ALRT)
                             }

                             Store (\_SB.ACAD.CHAC (SEL0), Local1)
                             Store (\_SB.BAT1.CHBP (SEL0), Local2)
                             Or (SEL0, 0x0FFF, Local0)
                             SMWR (0x08, 0x14, 0x01, Local0)
                             If (LAnd (Local1, \_SB.ACAD.ACP))
                             {
                                 Store ("CMBatt - Notify(ACAD,0x80): 
AC_Inserted", Debug)
                                 Notify (\_SB.ACAD, 0x80)
                                 Store (0x02, ACFL)
                             }

                             If (And (0x04, Local2))
                             {
                                 \_SB.BAT1.B1CK ()
                             }

                             If (And (0x02, Local2))
                             {
                                 \_SB.BAT1.B1ST ()
                             }

                             If (And (0x01, Local2))
                             {
                                 \_SB.BAT1.B1IF ()
                             }

                             If (LAnd (Local1, LNot (\_SB.ACAD.ACP)))
                             {
                                 Store ("CMBatt - Notify(ACAD, 0x80): 
AC_Removed", Debug)
                                 Notify (\_SB.ACAD, 0x80)
                                 Store (0x01, ACFL)
                             }
                         }

                         Store (0x3C, Local4)
                         If (\_SB.BAT1.REPT)
                         {
                             Store (0x02, Local4)
                         }

                         If (BFLG)
                         {
                             Store (0x01, Local5)
                             While (LNot (And (BFLG, 0x01)))
                             {
                                 Increment (Local5)
                                 ShiftRight (BFLG, 0x01, BFLG)
                             }

                             ShiftRight (BFLG, 0x01, BFLG)
                             If (LGreater (Local4, Local5))
                             {
                                 Store (Local5, Local4)
                             }
                         }

                         Store (Local4, BPD)
                         BPOL ()
                         Release (\_SB.PCI0.PIB.EC0.MUT1)
                         If (ACFL)
                         {
                             Decrement (ACFL)
                             Store (0x00, ACFL)
                         }
                         Return (0x00)
                     }



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/

             reply	other threads:[~2004-12-28  5:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-28  5:38 Pedro I. Sanchez [this message]
     [not found] ` <41D0F15D.8000201-bJEeYj9oJeDQT0dZR+AlfA@public.gmane.org>
2004-12-28 10:56   ` Help with the DSDT for an Acer Ferrari 3400 laptop Bruno Ducrot
     [not found]     ` <20041228105611.GF9606-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2004-12-29  2:51       ` Pedro I. Sanchez
     [not found]         ` <41D21B9A.4020409-bJEeYj9oJeDQT0dZR+AlfA@public.gmane.org>
2004-12-29 10:57           ` Bruno Ducrot
2004-12-29 11:26   ` Bruno Ducrot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41D0F15D.8000201@rogers.com \
    --to=pedro.sanchez-bjeeyj9ojedqt0dzr+alfa@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox