Chameleon

Chameleon Commit Details

Date:2010-07-22 21:45:41 (13 years 9 months ago)
Author:Tamás Kosárszky
Commit:202
Parents: 201
Message:Merged mozo's r200, r201 changes: Fixed bug _PSS & _CST SSDTs was generated multiple times for all versions of ACPI. Modified RSDT now allocated with proper length, fixes unwanted effects like dropped SSDT appears in ACPI tables list, not working dumpacpitbls (command line utility).
Changes:
M/trunk/CREDITS
M/trunk/i386/libsaio/acpi_patcher.c

File differences

trunk/i386/libsaio/acpi_patcher.c
3131
3232
3333
34
34
3535
3636
37
37
3838
3939
4040
......
198198
199199
200200
201
201
202202
203203
204204
......
206206
207207
208208
209
209
210210
211211
212212
......
386386
387387
388388
389
389
390390
391391
392392
......
893893
894894
895895
896
896
897
898
897899
900
898901
899902
900903
904
905
901906
907
902908
903909
904910
......
906912
907913
908914
909
915
910916
911917
912918
......
10051011
10061012
10071013
1014
1015
10081016
1017
10091018
10101019
10111020
1021
1022
10121023
1024
10131025
10141026
10151027
int i;
for (i=0; i<4; i++) {
if ((table[i] &~0x20) != (sgn[i] &~0x20)) {
return FALSE;
return false;
}
}
return TRUE;
return true;
}
/* Gets the ACPI 1.0 RSDP address */
if (dsdt[i] == 0x5B && dsdt[i+1] == 0x83) // ProcessorOP
{
uint8_t offset = i+2+(dsdt[i+2] >> 6) + 1, j;
bool add_name = TRUE;
bool add_name = true;
for (j=0; j<4; j++)
{
if (!aml_isvalidchar(c))
{
add_name = FALSE;
add_name = false;
verbose("Invalid characters found in ProcessorOP!\n");
break;
}
ssdt->Checksum = 256 - checksum8(ssdt, ssdt->Length);
//dumpPhysAddr("C-States SSDT content: ", ssdt, ssdt_size);
verbose ("SSDT with CPU C-States generated successfully\n");
return ssdt;
rsdt_entries[i-dropoffset]=(uint32_t)fadt_mod;
// Generate _CST SSDT
if (generate_cstates && (new_ssdt[ssdt_count] = generate_cst_ssdt(fadt_mod)))
if (generate_cstates && (new_ssdt[ssdt_count] = generate_cst_ssdt(fadt_mod)))
{
generate_cstates = false; // Generate SSDT only once!
ssdt_count++;
}
// Generating _PSS SSDT
if (generate_pstates && (new_ssdt[ssdt_count] = generate_pss_ssdt((void*)fadt_mod->DSDT)))
{
generate_pstates = false; // Generate SSDT only once!
ssdt_count++;
}
continue;
}
DBG("\n");
// Allocate rsdt in Kernel memory area
rsdt_mod->Length += rsdt_mod->Length + 4*ssdt_count - 4*dropoffset;
rsdt_mod->Length += 4*ssdt_count - 4*dropoffset;
struct acpi_2_rsdt *rsdt_copy = (struct acpi_2_rsdt *)AllocateKernelMemory(rsdt_mod->Length);
memcpy (rsdt_copy, rsdt_mod, rsdt_mod->Length);
free(rsdt_mod); rsdt_mod = rsdt_copy;
// Generate _CST SSDT
if (generate_cstates && (new_ssdt[ssdt_count] = generate_cst_ssdt(fadt_mod)))
{
generate_cstates = false; // Generate SSDT only once!
ssdt_count++;
}
// Generating _PSS SSDT
if (generate_pstates && (new_ssdt[ssdt_count] = generate_pss_ssdt((void*)fadt_mod->DSDT)))
{
generate_pstates = false; // Generate SSDT only once!
ssdt_count++;
}
continue;
}
trunk/CREDITS
33
44
55
6
7
8
9
10
11
12
13
14
15
16
17
18
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1922
2023
2124
22
23
24
25
26
27
28
29
30
31
32
33
34
35
25
26
27
28
29
30
31
32
33
34
35
36
37
Developers:
----------
Crazor
Dense
fassl
iNDi
JrCs
Kabyl
kaitek
mackerintel
mercurysquad
munky
rekursor
Turbo
zef
Crazor
Dense
fassl
iNDi
JrCs
Kabyl
kaitek
mackerintel
mercurysquad
munky
meklort
mozodojo
rekursor
Turbo
valv
zef
Thanks to:
---------
asereBLN
bumby
cosmo1t
dfe
Galaxy
kalyway
Krazubu
MasterChief
netkas
sckevyn
smith@@
THeKiNG
XyZ
asereBLN
Azimutz
bumby
cosmo1t
dfe
Galaxy
kalyway
Krazubu
MasterChief
netkas
sckevyn
smith@@
THeKiNG

Archive Download the corresponding diff file

Revision: 202