> Date: Sun, 13 Jul 2014 12:44:12 +0200
> From: Alexander Schrijver <a...@flupzor.nl>
> 
> On Sat, Jul 12, 2014 at 02:29:52PM +0200, Mark Kettenis wrote:
> > One thing to try is to change the parameter passed to the "INIT" AML
> > call in acpiasus_init() from 0x40 to something else.  I'd start with
> > trying 0.
> 
> Just a small update: i've tried 0x00, 0x01, 0x04, 0x10, 0x400, 0x4000 and all
> give me a blank screen.

Does the diff below fix things?

Index: dsdt.c
===================================================================
RCS file: /home/cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.212
diff -u -p -r1.212 dsdt.c
--- dsdt.c      12 Jul 2014 18:48:17 -0000      1.212
+++ dsdt.c      20 Jul 2014 09:37:30 -0000
@@ -2311,7 +2311,8 @@ aml_rwgas(struct aml_value *rgn, int bpo
                aml_bufcpy(vbit, 0, tbit, bpos, blen);
        } else {
                /* Write bits to opregion */
-               if (AML_FIELD_UPDATE(flag) == AML_FIELD_PRESERVE) {
+               if (AML_FIELD_UPDATE(flag) == AML_FIELD_PRESERVE &&
+                   (bpos != 0 || blen != tlen)) {
                        acpi_gasio(acpi_softc, ACPI_IOREAD, type, pi.addr,
                            sz, tlen >> 3, tbit);
                } else if (AML_FIELD_UPDATE(flag) == AML_FIELD_WRITEASONES) {

Reply via email to