diff options
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/intel/gma/acpi.c | 41 | ||||
-rw-r--r-- | src/drivers/intel/gma/acpi/common.asl | 35 |
2 files changed, 20 insertions, 56 deletions
diff --git a/src/drivers/intel/gma/acpi.c b/src/drivers/intel/gma/acpi.c index 3f71a5ea84..d3fb69dec8 100644 --- a/src/drivers/intel/gma/acpi.c +++ b/src/drivers/intel/gma/acpi.c @@ -102,39 +102,38 @@ drivers_intel_gma_displays_ssdt_generate(const struct i915_gpu_controller_info * } /* - Method(_DCS, 0) - { - Return (^^XDCS(<device number>)) - } + * _DCS, _DGS and _DSS are required by specification. However, + * we never implemented them properly, and no OS driver com- + * plained yet. So we stub them out and keep the traditional + * behavior in case an OS driver checks for their existence. + */ + + /* + Method(_DCS, 0) + { + Return (0x1d) + } */ acpigen_write_method("_DCS", 0); - acpigen_emit_byte(0xa4); /* ReturnOp. */ - acpigen_emit_namestring("^^XDCS"); - acpigen_write_byte(i); + acpigen_write_return_integer(0x1d); acpigen_pop_len(); /* - Method(_DGS, 0) - { - Return (^^XDGS(<device number>)) - } + Method(_DGS, 0) + { + Return (0) + } */ acpigen_write_method("_DGS", 0); - acpigen_emit_byte(0xa4); /* ReturnOp. */ - acpigen_emit_namestring("^^XDGS"); - acpigen_write_byte(i); + acpigen_write_return_integer(0); acpigen_pop_len(); /* - Method(_DSS, 1) - { - ^^XDSS(0x5a, Arg0) - } + Method(_DSS, 1) + { + } */ acpigen_write_method("_DSS", 1); - acpigen_emit_namestring("^^XDSS"); - acpigen_write_byte(i); - acpigen_emit_byte(0x68); /* Arg0Op. */ acpigen_pop_len(); acpigen_pop_len(); diff --git a/src/drivers/intel/gma/acpi/common.asl b/src/drivers/intel/gma/acpi/common.asl index 3932a88e87..09d48a20e0 100644 --- a/src/drivers/intel/gma/acpi/common.asl +++ b/src/drivers/intel/gma/acpi/common.asl @@ -35,11 +35,6 @@ /* Display Output Switching */ Method (_DOS, 1) { - /* Windows 2000 and Windows XP call _DOS to enable/disable - * Display Output Switching during init and while a switch - * is already active - */ - Store (And(Arg0, 7), DSEN) } /* @@ -80,33 +75,3 @@ XBCM (DerefOf (Index (BRIG, Local0))) } } - - /* Device Current Status */ - Method(XDCS, 1) - { - TRAP(1) - If (And(CSTE, ShiftLeft (1, Arg0))) { - Return (0x1f) - } - Return(0x1d) - } - - /* Query Device Graphics State */ - Method(XDGS, 1) - { - If (And(NSTE, ShiftLeft (1, Arg0))) { - Return(1) - } - Return(0) - } - - /* Device Set State */ - Method(XDSS, 1) - { - /* If Parameter Arg0 is (1 << 31) | (1 << 30), the - * display switch was completed - */ - If (LEqual(And(Arg0, 0xc0000000), 0xc0000000)) { - Store (NSTE, CSTE) - } - } |