Re: [ACPI-sppt] Re: ASUS centrino laptop DSDT reward !

Ducrot Bruno <[email protected]> Thu, 11 Sep 2003 11:30:03 +0200
Newsgroups gmane.linux.acpi.support
Message-ID <[email protected]>
On Thu, Sep 11, 2003 at 01:08:41AM +0100, Luca Capello wrote:
> Hello,
> 
> on 10/09/2003 13.44, Ducrot Bruno wrote:
> >Just for my info.  Could you please give me the output of
> >lspci -v -xxx
> Sure, here it is...
> 
> Just a question: do u find which is the real problem about temperature 
> and ASUS notebooks?
> 

Yes.  But I don't know how to fix it though.

You have something like that in the ASL:

   1255                     OperationRegion (\ECMS, SystemIO, 0x72, 0x02)
   1256                     Field (\ECMS, ByteAcc, Lock, Preserve)
   1257                     {
   1258                         EIND,   8,
   1259                         EDAT,   8
   1260                     }
   1261 
   1262                     IndexField (EIND, EDAT, ByteAcc, NoLock, Preserve)
   1263                     {
   1264                         Offset (0x10),
   1265                         IKFG,   8,
   1266                         FRPN,   16,
   1267                         RAMB,   32,
   1268                         AVOL,   8,
   1269                         LBTN,   8,
   1270                         CKLN,   8,
   ....                         .........

This define a way to access to the CMOS of your laptop.

The RAMB here is 0x64646464 for the M2400N.

Next, there is:

   1311                     OperationRegion (\RAMW, SystemMemory, RAMB, 0xFF)
   1312                     Field (\RAMW, ByteAcc, NoLock, Preserve)
   1313                     {
   1314                         Offset (0xB0),
   1315                         TRTY,   8,
   1316                         FSFN,   8,
   1317                         FSTA,   16,
   1318                         FADR,   32,
   1319                         FSIZ,   16,
   1320                         ACTD,   8,
   1321                         AVLD,   8,
   1322                         SETD,   8,
   1323                         ACPF,   1,
   1324                         DCPF,   1,
   1325                         CHGF,   1,
   1326                         Offset (0xBE),
   1327                         PADL,   16,
   1328                         CADL,   16,
   1329                         CSTE,   16,
   1330                         NSTE,   16,
   1331                         SSTE,   16,
   1332                         SFUN,   8,
   1333                         TSAD,   8,
   1334                         TAC3,   8,
   1335                         TAC2,   8,
   1336                         TAC1,   8,
   1337                         TAC0,   8,
   1338                         TPSV,   8,
   1339                         TCRT,   8,
   1340                         F1L0,   8,
   1341                         F2L0,   8,
   1342                         F1L1,   8,
   1343                         F2L1,   8,
   1344                         F1L2,   8,
   1345                         F2L2,   8,
   1346                         F1L3,   8,
   1347                         F2L3,   8,
   1348                         F1L4,   8,
   1349                         F2L4,   8,
   1350                         SLPT,   8,
   1351                         DBRD,   32,
   1352                         SIDS,   8
   1353                     }


RAMB is used in order to define an Operational Region.
A SystemMemory type is access to the memory (via read[bwl] and
write[rbl]).  That one start at 0x64646464.

This is the trouble.  There is nothing related to that memory mapping
unfortunately.  So all read to this OR will return -1.

The _TMP method in the thermal zone need TSAD (which is in this
operational region).  TSAD is -1 which is 255 for an unsigned char (TSAD
is 8 bit long).  If you read the Method related to _TMP,
you will see that actually it is an access to a SMBUS, but
with a wrong address (TSAD is 255), so the return for the read of
this smbus will be always 255 (but with the check done (if tmp >= tcrt
then do nothing), and since the temperature read is stored
in LTMP, that will give 60 C since LTMP is not updated).

Also, some others values of this operational regions (like TAC[123],
TPSV, TCRT for thermal stuff, F[12]L[0-4] for fan stuff) will done
only invalid results, explaining why all fan related are not OK as
well.

-- 
Ducrot Bruno

--  Which is worse:  ignorance or apathy?
--  Don't know.  Don't care.


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf