Hmm.. this should work off -current (the reverted stuff).
rm *.c *.h in dev/acpi
cvs xxx -q up -PAd
patch < revert.diff

Essentially, it's a backout of the backout, plus the _HID change..
The hid diff alone (makes R210 work on pre-revert) is:
Index: dsdt.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.163
diff -u -p -u -p -b -r1.163 dsdt.c
--- dsdt.c      1 Jul 2010 01:39:39 -0000       1.163
+++ dsdt.c      1 Jul 2010 15:25:48 -0000
@@ -3745,12 +3745,7 @@ aml_xparse(struct aml_scope *scope, int
               /* Name: Nt */
               rv = opargs[0];
               aml_freevalue(rv);
-               if (!strcmp(rv->node->name, "_HID") && opargs[1]->type
== AML_OBJTYPE_INTEGER) {
-                       /* Shortcut for _HID: autoconvert to string */
-                       _aml_setvalue(rv, AML_OBJTYPE_STRING, -1,
aml_eisaid(opargs[1]->v_integer));
-               } else {
                       aml_copyvalue(rv, opargs[1]);
-               }
               break;
       case AMLOP_ALIAS:
               /* Alias: nN */

On Thu, Jul 1, 2010 at 8:27 AM, Stuart Henderson <[email protected]> wrote:
> On 2010/07/01 03:37, Jordan Hargrave wrote:
>> So found the problem; on the R210 the AML code CHANGES the _HID for
>> the PCI Root Bus depending on the _OSI OS running.. UGH
>>
>> I'd had code in dsdt.c for ages that converted the _HID integer value
>> to its PNP-string equivalent at create time.   However with the
>> dynamic _HID changing code in the AML, the store tried to convert an
>> integer value to a string, eg. storing integer HID 0x12345 became
>> "12345" instead of PNP0A03.
>>
>> I took out the default _HID conversion code in dsdt.c and reverted
>> back to the original code, this does work on the R210 but would like
>> to test on other systems as well.
>>
>> The old acpiprt code worked because it searched for ANY _HID value.. the
>> new code explicitly looks for PNP0A03 or PNP0A08.
>>
>> @tech, please test this diff and report any issues with panic
>
> What code is this diff meant to apply to? There are many conflicts when
> attempting to apply it to -current (acpi.c 1.168, acpiprt.c 1.38, etc).

Reply via email to