summaryrefslogtreecommitdiff
path: root/src/mainboard/lenovo/t60
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2014-10-31 09:16:31 +0100
committerVladimir Serbinenko <phcoder@gmail.com>2015-05-28 08:27:10 +0200
commitdd2bc3f819ecb64a07f37c2a63621ecadd6b6ed8 (patch)
treef611f100b307a2acc410a99726825e736d958e40 /src/mainboard/lenovo/t60
parentf44ac13db26c5ab18ac2e35111acbf91841a2608 (diff)
igd.asl rewrite
Old igd.asl had inconsistent addresses (between _DOD and actual device) and ghost devices. Any of those is enough to make brightness on windows fail and make igd.asl out-of-ACPI-spec. Also old code favoured ridiculous copying of the same thing 6 times per chipset. Leave only hooking up and chipset-specific part in chipset directory. Move NVS handling and ACPI-spec parts to a common file. Change-Id: I556769e5e28b83e7465e3db689e26c8c0ab44757 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/7472 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <edward.ocallaghan@koparo.com> Reviewed-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Diffstat (limited to 'src/mainboard/lenovo/t60')
-rw-r--r--src/mainboard/lenovo/t60/acpi/video.asl24
-rw-r--r--src/mainboard/lenovo/t60/acpi_tables.c7
-rw-r--r--src/mainboard/lenovo/t60/devicetree.cb3
-rw-r--r--src/mainboard/lenovo/t60/dsdt.asl10
4 files changed, 14 insertions, 30 deletions
diff --git a/src/mainboard/lenovo/t60/acpi/video.asl b/src/mainboard/lenovo/t60/acpi/video.asl
index 1a7a596e98..31d5b0495b 100644
--- a/src/mainboard/lenovo/t60/acpi/video.asl
+++ b/src/mainboard/lenovo/t60/acpi/video.asl
@@ -20,35 +20,17 @@
#include "smi.h"
-Device (DSPC)
+Scope (\)
{
- Name (_ADR, 0x00020001)
- OperationRegion (DSPC, PCI_Config, 0x00, 0x100)
- Field (DSPC, ByteAcc, NoLock, Preserve)
- {
- Offset (0xf4),
- BRTC, 8
- }
-
Method(BRTD, 0, NotSerialized)
{
Trap(SMI_BRIGHTNESS_DOWN)
- Store(BRTC, Local0)
- if (LGreater (Local0, 15))
- {
- Subtract(Local0, 16, Local0)
- Store(Local0, BRTC)
- }
+ \_SB.PCI0.GFX0.DECB()
}
Method(BRTU, 0, NotSerialized)
{
Trap(SMI_BRIGHTNESS_UP)
- Store (BRTC, Local0)
- if (LLess(Local0, 0xff))
- {
- Add (Local0, 16, Local0)
- Store(Local0, BRTC)
- }
+ \_SB.PCI0.GFX0.INCB()
}
}
diff --git a/src/mainboard/lenovo/t60/acpi_tables.c b/src/mainboard/lenovo/t60/acpi_tables.c
index 64b1fc6bad..4e4cf1e576 100644
--- a/src/mainboard/lenovo/t60/acpi_tables.c
+++ b/src/mainboard/lenovo/t60/acpi_tables.c
@@ -36,13 +36,6 @@ void acpi_create_gnvs(global_nvs_t *gnvs)
gnvs->cmap = 0x01;
gnvs->cmbp = 0x01;
- /* IGD Displays */
- gnvs->ndid = 3;
- gnvs->did[0] = 0x80000100;
- gnvs->did[1] = 0x80000240;
- gnvs->did[2] = 0x80000410;
- gnvs->did[3] = 0x80000410;
- gnvs->did[4] = 0x00000005;
}
unsigned long acpi_fill_madt(unsigned long current)
diff --git a/src/mainboard/lenovo/t60/devicetree.cb b/src/mainboard/lenovo/t60/devicetree.cb
index 40ce3d8bdc..719fa9a38b 100644
--- a/src/mainboard/lenovo/t60/devicetree.cb
+++ b/src/mainboard/lenovo/t60/devicetree.cb
@@ -20,6 +20,9 @@
##
chip northbridge/intel/i945
+ # IGD Displays
+ register "gfx.ndid" = "3"
+ register "gfx.did" = "{ 0x80000100, 0x80000240, 0x80000410, 0x80000410, 0x00000005 }"
device cpu_cluster 0 on
chip cpu/intel/socket_mFCPGA478
diff --git a/src/mainboard/lenovo/t60/dsdt.asl b/src/mainboard/lenovo/t60/dsdt.asl
index 92aac6ced7..b746b69f98 100644
--- a/src/mainboard/lenovo/t60/dsdt.asl
+++ b/src/mainboard/lenovo/t60/dsdt.asl
@@ -19,8 +19,8 @@
*/
#define THINKPAD_EC_GPE 28
-#define BRIGHTNESS_UP \DSPC.BRTU
-#define BRIGHTNESS_DOWN \DSPC.BRTD
+#define BRIGHTNESS_UP \BRTU
+#define BRIGHTNESS_DOWN \BRTD
#define ACPI_VIDEO_DEVICE \_SB.PCI0.GFX0
DefinitionBlock(
@@ -45,6 +45,12 @@ DefinitionBlock(
// mainboard specific devices
#include "acpi/mainboard.asl"
+ Scope (\)
+ {
+ // backlight control, display switching, lid
+ #include "acpi/video.asl"
+ }
+
#include <cpu/intel/model_6dx/acpi/cpu.asl>
Scope (\_SB) {