need people to test this patch with acpi

2008-01-16 Thread Marco Peereboom
Please test this on all acpi capable machines and send me a dmesg if you
see this in the dmesg: store from field!!

If you see this panic or something similar:
acpi0: tables DSDT FACP SLIC HPET APIC MCFG TCPA SSDT SSDT SSDT SSDT
SSDT
wrong setbufint type

2ca8 Called: \\_SB_.C003.C098.C155
   arg0: 0xd17b7910 cnt:01 stk:00 objref: 0xd176d484 index:
  [\\_SB_.C06A] 0xd176d484 cnt:02 stk:00 field: bitpos=02e0 bitlen=00a0
ref1:d176c904 ref2:0 [Field]
  [\\_SB_.C043] 0xd176c904 cnt:32 stk:00 opregion: 00,3f7e7dc0,140
   arg1: 0xd17b793c cnt:01 stk:00 objref: 0xd1756410 index:
  0xd1756410 cnt:00 stk:60 integer: 0
   local0: 0xd1756a10 cnt:00 stk:60 integer: 0
2c7d Called: \\_SB_.C003.C098._INI
   local0: 0xd1756410 cnt:00 stk:60 integer: 0
panic: aml_die aml_setbufint:983 

please try this diff:
Index: dsdt.c
===
RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.106
diff -u -p -r1.106 dsdt.c
--- dsdt.c  2 Dec 2007 22:24:54 -   1.106
+++ dsdt.c  16 Jan 2008 20:20:27 -
@@ -980,9 +980,10 @@ void
 aml_setbufint(struct aml_value *dst, int bitpos, int bitlen,
 struct aml_value *src)
 {
-   if (src-type != AML_OBJTYPE_BUFFER)
+   if (src-type != AML_OBJTYPE_BUFFER) {
+   aml_showvalue(src, 0);
aml_die(wrong setbufint type %d\n, src-type);
-
+   }
 #if 1
/* Return buffer type */
_aml_setvalue(dst, AML_OBJTYPE_BUFFER, (bitlen+7)3, NULL);
@@ -1633,10 +1634,17 @@ aml_setvalue(struct aml_scope *scope, st
struct aml_value tmpint;
 
/* Use integer as result */
+   memset(tmpint, 0, sizeof(tmpint));
if (rhs == NULL) {
-   memset(tmpint, 0, sizeof(tmpint));
rhs = _aml_setvalue(tmpint, AML_OBJTYPE_INTEGER, ival, NULL);
}
+   else if (rhs-type == AML_OBJTYPE_BUFFERFIELD ||
+rhs-type == AML_OBJTYPE_FIELDUNIT)
+   {
+   printf(store from field!!\n);
+   aml_fieldio(scope, rhs, tmpint, ACPI_IOREAD);
+   rhs = tmpint;
+   }
 
if (!is_local(scope, lhs))
lhs = aml_dereftarget(scope, lhs);
@@ -1725,6 +1733,7 @@ aml_setvalue(struct aml_scope *scope, st
dnprintf(10, setvalue.unknown: %x, lhs-type);
break;
}
+   aml_freevalue(tmpint);
 }
 
 /* Allocate dynamic AML value



Re: need people to test this patch with acpi

2008-01-16 Thread NetOne - Doichin Dokov

Is this for -current only, or you need testing on 4.2 too?

Marco Peereboom P=P0P?P8QP0:

Please test this on all acpi capable machines and send me a dmesg if you
see this in the dmesg: store from field!!

If you see this panic or something similar:
acpi0: tables DSDT FACP SLIC HPET APIC MCFG TCPA SSDT SSDT SSDT SSDT
SSDT
wrong setbufint type

2ca8 Called: \\_SB_.C003.C098.C155
   arg0: 0xd17b7910 cnt:01 stk:00 objref: 0xd176d484 index:
  [\\_SB_.C06A] 0xd176d484 cnt:02 stk:00 field: bitpos=02e0 bitlen=00a0
ref1:d176c904 ref2:0 [Field]
  [\\_SB_.C043] 0xd176c904 cnt:32 stk:00 opregion: 00,3f7e7dc0,140
   arg1: 0xd17b793c cnt:01 stk:00 objref: 0xd1756410 index:
  0xd1756410 cnt:00 stk:60 integer: 0
   local0: 0xd1756a10 cnt:00 stk:60 integer: 0
2c7d Called: \\_SB_.C003.C098._INI
   local0: 0xd1756410 cnt:00 stk:60 integer: 0
panic: aml_die aml_setbufint:983 


please try this diff:
Index: dsdt.c
===
RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.106
diff -u -p -r1.106 dsdt.c
--- dsdt.c  2 Dec 2007 22:24:54 -   1.106
+++ dsdt.c  16 Jan 2008 20:20:27 -
@@ -980,9 +980,10 @@ void
 aml_setbufint(struct aml_value *dst, int bitpos, int bitlen,
 struct aml_value *src)
 {
-   if (src-type != AML_OBJTYPE_BUFFER)
+   if (src-type != AML_OBJTYPE_BUFFER) {
+   aml_showvalue(src, 0);
aml_die(wrong setbufint type %d\n, src-type);
-
+   }
 #if 1
/* Return buffer type */
_aml_setvalue(dst, AML_OBJTYPE_BUFFER, (bitlen+7)3, NULL);
@@ -1633,10 +1634,17 @@ aml_setvalue(struct aml_scope *scope, st
struct aml_value tmpint;
 
 	/* Use integer as result */

+   memset(tmpint, 0, sizeof(tmpint));
if (rhs == NULL) {
-   memset(tmpint, 0, sizeof(tmpint));
rhs = _aml_setvalue(tmpint, AML_OBJTYPE_INTEGER, ival, NULL);
}
+   else if (rhs-type == AML_OBJTYPE_BUFFERFIELD ||
+rhs-type == AML_OBJTYPE_FIELDUNIT)
+   {
+   printf(store from field!!\n);
+   aml_fieldio(scope, rhs, tmpint, ACPI_IOREAD);
+   rhs = tmpint;
+   }
 
 	if (!is_local(scope, lhs))

lhs = aml_dereftarget(scope, lhs);
@@ -1725,6 +1733,7 @@ aml_setvalue(struct aml_scope *scope, st
dnprintf(10, setvalue.unknown: %x, lhs-type);
break;
}
+   aml_freevalue(tmpint);
 }
 
 /* Allocate dynamic AML value




Re: need people to test this patch with acpi

2008-01-16 Thread Nick Nauwelaerts
On Wed, 16 Jan 2008 14:44:02 -0600
Marco Peereboom [EMAIL PROTECTED] wrote:

 Please test this on all acpi capable machines and send me a dmesg if
 you see this in the dmesg: store from field!!

Is this in any recent snapshots or source only?

And I have the same question for the tech@ email with subject:
Subject: [EMAIL PROTECTED]: Re: acpicpu needs wide testing]

thx

// nick



Re: need people to test this patch with acpi

2008-01-16 Thread Marco Peereboom
Source only.

On Wed, Jan 16, 2008 at 11:24:00PM +0100, Nick Nauwelaerts wrote:
 On Wed, 16 Jan 2008 14:44:02 -0600
 Marco Peereboom [EMAIL PROTECTED] wrote:
 
  Please test this on all acpi capable machines and send me a dmesg if
  you see this in the dmesg: store from field!!
 
 Is this in any recent snapshots or source only?
 
 And I have the same question for the tech@ email with subject:
 Subject: [EMAIL PROTECTED]: Re: acpicpu needs wide testing]
 
 thx
 
 // nick



Re: need people to test this patch with acpi

2008-01-16 Thread Marco Peereboom
-current of course.

On Wed, Jan 16, 2008 at 11:25:04PM +0200, NetOne - Doichin Dokov wrote:
 Is this for -current only, or you need testing on 4.2 too?

 Marco Peereboom :
 Please test this on all acpi capable machines and send me a dmesg if you
 see this in the dmesg: store from field!!

 If you see this panic or something similar:
 acpi0: tables DSDT FACP SLIC HPET APIC MCFG TCPA SSDT SSDT SSDT SSDT
 SSDT
 wrong setbufint type

 2ca8 Called: \\_SB_.C003.C098.C155
arg0: 0xd17b7910 cnt:01 stk:00 objref: 0xd176d484 index:
   [\\_SB_.C06A] 0xd176d484 cnt:02 stk:00 field: bitpos=02e0 bitlen=00a0
 ref1:d176c904 ref2:0 [Field]
   [\\_SB_.C043] 0xd176c904 cnt:32 stk:00 opregion: 00,3f7e7dc0,140
arg1: 0xd17b793c cnt:01 stk:00 objref: 0xd1756410 index:
   0xd1756410 cnt:00 stk:60 integer: 0
local0: 0xd1756a10 cnt:00 stk:60 integer: 0
 2c7d Called: \\_SB_.C003.C098._INI
local0: 0xd1756410 cnt:00 stk:60 integer: 0
 panic: aml_die aml_setbufint:983 
 please try this diff:
 Index: dsdt.c
 ===
 RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
 retrieving revision 1.106
 diff -u -p -r1.106 dsdt.c
 --- dsdt.c   2 Dec 2007 22:24:54 -   1.106
 +++ dsdt.c   16 Jan 2008 20:20:27 -
 @@ -980,9 +980,10 @@ void
  aml_setbufint(struct aml_value *dst, int bitpos, int bitlen,
  struct aml_value *src)
  {
 -if (src-type != AML_OBJTYPE_BUFFER)
 +if (src-type != AML_OBJTYPE_BUFFER) {
 +aml_showvalue(src, 0);
  aml_die(wrong setbufint type %d\n, src-type);
 -
 +}
  #if 1
  /* Return buffer type */
  _aml_setvalue(dst, AML_OBJTYPE_BUFFER, (bitlen+7)3, NULL);
 @@ -1633,10 +1634,17 @@ aml_setvalue(struct aml_scope *scope, st
  struct aml_value tmpint;
  /* Use integer as result */
 +memset(tmpint, 0, sizeof(tmpint));
  if (rhs == NULL) {
 -memset(tmpint, 0, sizeof(tmpint));
  rhs = _aml_setvalue(tmpint, AML_OBJTYPE_INTEGER, ival, NULL);
  }
 +else if (rhs-type == AML_OBJTYPE_BUFFERFIELD ||
 + rhs-type == AML_OBJTYPE_FIELDUNIT)
 +{
 +printf(store from field!!\n);
 +aml_fieldio(scope, rhs, tmpint, ACPI_IOREAD);
 +rhs = tmpint;
 +}
  if (!is_local(scope, lhs))
  lhs = aml_dereftarget(scope, lhs);
 @@ -1725,6 +1733,7 @@ aml_setvalue(struct aml_scope *scope, st
  dnprintf(10, setvalue.unknown: %x, lhs-type);
  break;
  }
 +aml_freevalue(tmpint);
  }
   /* Allocate dynamic AML value