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