aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/intel/gma
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/intel/gma')
-rw-r--r--src/drivers/intel/gma/acpi.c41
-rw-r--r--src/drivers/intel/gma/acpi/common.asl35
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)
- }
- }