[Intel-gfx] [RFC 10/12] drm/i915/config: Introduce a test table and code to make use of it.

Bob Paauwe bob.j.paauwe at intel.com
Thu Feb 12 15:41:36 PST 2015


Modify the table loading function to accept an included property table
as a last resort. This can be used to create test cases.  It may
also be used to provide a static, compiled in configuration.

A sample test table (source and compiled HEX version) are included in
this commit.

Signed-off-by: Bob Paauwe <bob.j.paauwe at intel.com>
---
 drivers/gpu/drm/i915/i915-properties.asl | 150 +++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915-properties.hex | 173 +++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_config.c      |  20 +++-
 3 files changed, 342 insertions(+), 1 deletion(-)
 create mode 100644 drivers/gpu/drm/i915/i915-properties.asl
 create mode 100644 drivers/gpu/drm/i915/i915-properties.hex

diff --git a/drivers/gpu/drm/i915/i915-properties.asl b/drivers/gpu/drm/i915/i915-properties.asl
new file mode 100644
index 0000000..7e9d12b
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915-properties.asl
@@ -0,0 +1,150 @@
+DefinitionBlock ("i915-properties.aml", "SSDT", 5, "", "", 0x00000001)
+{
+	External (DSEN)
+
+	Device (\_SB.PRP) {
+		Device(GFX0) {
+		Name (_ADR, 0x00020000)
+		Name (_HID, "PRP0000")
+
+		Method (_DOS, 1, NotSerialized) {
+			Store (And (Arg0, 0x07), DSEN)
+			If (LEqual (And (Arg0, 0x03), Zero)) {
+			}
+		}
+
+		Name (_DSD, Package() {
+			ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+			Package () {
+				Package() {"display_detect", 1},
+				Package() {"fastboot", 1},
+				Package() {"powersave", 0},
+				Package() {"count", 99},
+			}
+		})
+
+		Device (CRTC) {
+			Name (_HID, "PRP0000")
+			Name (_DSD, Package() {
+				ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+				Package () {
+					Package() { "enabled", "3" },
+					Package() { "count", 3 }
+				}
+			})
+
+			Device (ID0) {
+				Name (_HID, "PRP0000")
+				Name (_DSD, Package() {
+					ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+					Package () {
+						Package() { "id", 0 },
+						Package() { "canvas_color", Package() { 0, 0, 0 } },
+						Package() { "blend_equ", 0 },
+						Package() { "enabled", 1 }
+					}
+				})
+			}
+
+			Device (ID1) {
+				Name (_HID, "PRP0000")
+				Name (_DSD, Package() {
+					ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+					Package () {
+						Package() { "id", 1 },
+						Package() { "canvas_color", Package() { 0, 0, 0 } },
+						Package() { "blend_equ", 0 },
+						Package() { "enabled", 1 }
+					}
+				})
+			}
+
+			Device (ID2) {
+				Name (_HID, "PRP0000")
+				Name (_DSD, Package() {
+					ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+					Package () {
+						Package() { "id", 2 },
+						Package() { "canvas_color", Package() { 0, 0, 0 } },
+						Package() { "blend_equ", 0 },
+						Package() { "enabled", 1 }
+					}
+				})
+			}
+		}
+
+		Device (PLNS) {
+			Name (_HID, "PRP0000")
+			Name (_DSD, Package() {
+				ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+				Package () {
+					Package() { "count", 2 }
+				}
+			})
+
+			Device (PL0) {
+				Name (_HID, "PRP0000")
+				Name (_DSD, Package() {
+					ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+					Package () {
+						Package () { "gamma", 1 },
+						Package () { "color-key", 0xffffffff },
+					}
+				})
+			}
+
+			Device (PL1) {
+				Name (_HID, "PRP0000")
+				Name (_DSD, Package() {
+					ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+					Package () {
+						Package () { "gamma", 0 },
+						Package () { "color-key", 0xffffffff },
+					}
+				})
+			}
+		}
+
+
+		Device (CNCT) {
+			Name (_HID, "PRP0000")
+			Name (_DSD, Package() {
+				ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+				Package () {
+					Package() { "count", 2 }
+				}
+			})
+
+			Device(C0) {
+				Name (_HID, "PRP0000")
+				Name (_DSD, Package() {
+					ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+					Package () {
+						Package() { "name", "analog" },
+						Package() { "enabled", 1 },
+						Package() { "bits_per_color", 6 },
+						Package() { "constant_alpha", 255 }
+					}
+				})
+			}
+
+			Device(C1) {
+				Name (_HID, "PRP0000")
+				Name (_DSD, Package() {
+					ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+					Package () {
+						Package() { "name", "displayport_a" },
+						Package() { "enabled", 1 },
+						Package() { "scaling_mode", "Full aspect" },
+						Package() { "audio", "force-dvi" },
+						Package() { "Broadcast_RGB", "Automatic" },
+						Package() { "bits_per_color", 8 },
+						Package() { "constant_alpha", 255 }
+					}
+				})
+			}
+		}
+	}
+	}
+}
+
diff --git a/drivers/gpu/drm/i915/i915-properties.hex b/drivers/gpu/drm/i915/i915-properties.hex
new file mode 100644
index 0000000..0a391eef
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915-properties.hex
@@ -0,0 +1,173 @@
+/*
+ * 
+ * Intel ACPI Component Architecture
+ * ASL Optimizing Compiler version 20131115-64 [Nov 26 2013]
+ * Copyright (c) 2000 - 2013 Intel Corporation
+ * 
+ * Compilation of "i915-properties.asl" - Mon Aug 18 13:16:20 2014
+ * 
+ * C source code output
+ * AML code block contains 0x4EA bytes
+ *
+ */
+unsigned char AmlCode[] =
+{
+    0x53,0x53,0x44,0x54,0xEA,0x04,0x00,0x00,  /* 00000000    "SSDT...." */
+    0x05,0x98,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000008    "........" */
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  /* 00000010    "........" */
+    0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C,  /* 00000018    "....INTL" */
+    0x15,0x11,0x13,0x20,0x5B,0x82,0x44,0x4C,  /* 00000020    "... [.DL" */
+    0x5C,0x2E,0x5F,0x53,0x42,0x5F,0x50,0x52,  /* 00000028    "\._SB_PR" */
+    0x50,0x5F,0x5B,0x82,0x46,0x4B,0x47,0x46,  /* 00000030    "P_[.FKGF" */
+    0x58,0x30,0x08,0x5F,0x41,0x44,0x52,0x0C,  /* 00000038    "X0._ADR." */
+    0x00,0x00,0x02,0x00,0x08,0x5F,0x48,0x49,  /* 00000040    "....._HI" */
+    0x44,0x0D,0x50,0x52,0x50,0x30,0x30,0x30,  /* 00000048    "D.PRP000" */
+    0x30,0x00,0x14,0x19,0x5F,0x44,0x4F,0x53,  /* 00000050    "0..._DOS" */
+    0x01,0x70,0x7B,0x68,0x0A,0x07,0x00,0x44,  /* 00000058    ".p{h...D" */
+    0x53,0x45,0x4E,0xA0,0x08,0x93,0x7B,0x68,  /* 00000060    "SEN...{h" */
+    0x0A,0x03,0x00,0x00,0x08,0x5F,0x44,0x53,  /* 00000068    "....._DS" */
+    0x44,0x12,0x47,0x05,0x02,0x11,0x13,0x0A,  /* 00000070    "D.G....." */
+    0x10,0x14,0xD8,0xFF,0xDA,0xBA,0x6E,0x8C,  /* 00000078    "......n." */
+    0x4D,0x8A,0x91,0xBC,0x9B,0xBF,0x4A,0xA3,  /* 00000080    "M.....J." */
+    0x01,0x12,0x3F,0x04,0x12,0x13,0x02,0x0D,  /* 00000088    "..?....." */
+    0x64,0x69,0x73,0x70,0x6C,0x61,0x79,0x5F,  /* 00000090    "display_" */
+    0x64,0x65,0x74,0x65,0x63,0x74,0x00,0x01,  /* 00000098    "detect.." */
+    0x12,0x0D,0x02,0x0D,0x66,0x61,0x73,0x74,  /* 000000A0    "....fast" */
+    0x62,0x6F,0x6F,0x74,0x00,0x01,0x12,0x0E,  /* 000000A8    "boot...." */
+    0x02,0x0D,0x70,0x6F,0x77,0x65,0x72,0x73,  /* 000000B0    "..powers" */
+    0x61,0x76,0x65,0x00,0x00,0x12,0x0B,0x02,  /* 000000B8    "ave....." */
+    0x0D,0x63,0x6F,0x75,0x6E,0x74,0x00,0x0A,  /* 000000C0    ".count.." */
+    0x63,0x5B,0x82,0x42,0x1A,0x43,0x52,0x54,  /* 000000C8    "c[.B.CRT" */
+    0x43,0x08,0x5F,0x48,0x49,0x44,0x0D,0x50,  /* 000000D0    "C._HID.P" */
+    0x52,0x50,0x30,0x30,0x30,0x30,0x00,0x08,  /* 000000D8    "RP0000.." */
+    0x5F,0x44,0x53,0x44,0x12,0x34,0x02,0x11,  /* 000000E0    "_DSD.4.." */
+    0x13,0x0A,0x10,0x14,0xD8,0xFF,0xDA,0xBA,  /* 000000E8    "........" */
+    0x6E,0x8C,0x4D,0x8A,0x91,0xBC,0x9B,0xBF,  /* 000000F0    "n.M....." */
+    0x4A,0xA3,0x01,0x12,0x1D,0x02,0x12,0x0E,  /* 000000F8    "J......." */
+    0x02,0x0D,0x65,0x6E,0x61,0x62,0x6C,0x65,  /* 00000100    "..enable" */
+    0x64,0x00,0x0D,0x33,0x00,0x12,0x0B,0x02,  /* 00000108    "d..3...." */
+    0x0D,0x63,0x6F,0x75,0x6E,0x74,0x00,0x0A,  /* 00000110    ".count.." */
+    0x03,0x5B,0x82,0x4F,0x06,0x49,0x44,0x30,  /* 00000118    ".[.O.ID0" */
+    0x5F,0x08,0x5F,0x48,0x49,0x44,0x0D,0x50,  /* 00000120    "_._HID.P" */
+    0x52,0x50,0x30,0x30,0x30,0x30,0x00,0x08,  /* 00000128    "RP0000.." */
+    0x5F,0x44,0x53,0x44,0x12,0x45,0x05,0x02,  /* 00000130    "_DSD.E.." */
+    0x11,0x13,0x0A,0x10,0x14,0xD8,0xFF,0xDA,  /* 00000138    "........" */
+    0xBA,0x6E,0x8C,0x4D,0x8A,0x91,0xBC,0x9B,  /* 00000140    ".n.M...." */
+    0xBF,0x4A,0xA3,0x01,0x12,0x3D,0x04,0x12,  /* 00000148    ".J...=.." */
+    0x07,0x02,0x0D,0x69,0x64,0x00,0x00,0x12,  /* 00000150    "...id..." */
+    0x16,0x02,0x0D,0x63,0x61,0x6E,0x76,0x61,  /* 00000158    "...canva" */
+    0x73,0x5F,0x63,0x6F,0x6C,0x6F,0x72,0x00,  /* 00000160    "s_color." */
+    0x12,0x05,0x03,0x00,0x00,0x00,0x12,0x0E,  /* 00000168    "........" */
+    0x02,0x0D,0x62,0x6C,0x65,0x6E,0x64,0x5F,  /* 00000170    "..blend_" */
+    0x65,0x71,0x75,0x00,0x00,0x12,0x0C,0x02,  /* 00000178    "equ....." */
+    0x0D,0x65,0x6E,0x61,0x62,0x6C,0x65,0x64,  /* 00000180    ".enabled" */
+    0x00,0x01,0x5B,0x82,0x4F,0x06,0x49,0x44,  /* 00000188    "..[.O.ID" */
+    0x31,0x5F,0x08,0x5F,0x48,0x49,0x44,0x0D,  /* 00000190    "1_._HID." */
+    0x50,0x52,0x50,0x30,0x30,0x30,0x30,0x00,  /* 00000198    "PRP0000." */
+    0x08,0x5F,0x44,0x53,0x44,0x12,0x45,0x05,  /* 000001A0    "._DSD.E." */
+    0x02,0x11,0x13,0x0A,0x10,0x14,0xD8,0xFF,  /* 000001A8    "........" */
+    0xDA,0xBA,0x6E,0x8C,0x4D,0x8A,0x91,0xBC,  /* 000001B0    "..n.M..." */
+    0x9B,0xBF,0x4A,0xA3,0x01,0x12,0x3D,0x04,  /* 000001B8    "..J...=." */
+    0x12,0x07,0x02,0x0D,0x69,0x64,0x00,0x01,  /* 000001C0    "....id.." */
+    0x12,0x16,0x02,0x0D,0x63,0x61,0x6E,0x76,  /* 000001C8    "....canv" */
+    0x61,0x73,0x5F,0x63,0x6F,0x6C,0x6F,0x72,  /* 000001D0    "as_color" */
+    0x00,0x12,0x05,0x03,0x00,0x00,0x00,0x12,  /* 000001D8    "........" */
+    0x0E,0x02,0x0D,0x62,0x6C,0x65,0x6E,0x64,  /* 000001E0    "...blend" */
+    0x5F,0x65,0x71,0x75,0x00,0x00,0x12,0x0C,  /* 000001E8    "_equ...." */
+    0x02,0x0D,0x65,0x6E,0x61,0x62,0x6C,0x65,  /* 000001F0    "..enable" */
+    0x64,0x00,0x01,0x5B,0x82,0x40,0x07,0x49,  /* 000001F8    "d..[. at .I" */
+    0x44,0x32,0x5F,0x08,0x5F,0x48,0x49,0x44,  /* 00000200    "D2_._HID" */
+    0x0D,0x50,0x52,0x50,0x30,0x30,0x30,0x30,  /* 00000208    ".PRP0000" */
+    0x00,0x08,0x5F,0x44,0x53,0x44,0x12,0x46,  /* 00000210    ".._DSD.F" */
+    0x05,0x02,0x11,0x13,0x0A,0x10,0x14,0xD8,  /* 00000218    "........" */
+    0xFF,0xDA,0xBA,0x6E,0x8C,0x4D,0x8A,0x91,  /* 00000220    "...n.M.." */
+    0xBC,0x9B,0xBF,0x4A,0xA3,0x01,0x12,0x3E,  /* 00000228    "...J...>" */
+    0x04,0x12,0x08,0x02,0x0D,0x69,0x64,0x00,  /* 00000230    ".....id." */
+    0x0A,0x02,0x12,0x16,0x02,0x0D,0x63,0x61,  /* 00000238    "......ca" */
+    0x6E,0x76,0x61,0x73,0x5F,0x63,0x6F,0x6C,  /* 00000240    "nvas_col" */
+    0x6F,0x72,0x00,0x12,0x05,0x03,0x00,0x00,  /* 00000248    "or......" */
+    0x00,0x12,0x0E,0x02,0x0D,0x62,0x6C,0x65,  /* 00000250    ".....ble" */
+    0x6E,0x64,0x5F,0x65,0x71,0x75,0x00,0x00,  /* 00000258    "nd_equ.." */
+    0x12,0x0C,0x02,0x0D,0x65,0x6E,0x61,0x62,  /* 00000260    "....enab" */
+    0x6C,0x65,0x64,0x00,0x01,0x5B,0x82,0x45,  /* 00000268    "led..[.E" */
+    0x0E,0x50,0x4C,0x4E,0x53,0x08,0x5F,0x48,  /* 00000270    ".PLNS._H" */
+    0x49,0x44,0x0D,0x50,0x52,0x50,0x30,0x30,  /* 00000278    "ID.PRP00" */
+    0x30,0x30,0x00,0x08,0x5F,0x44,0x53,0x44,  /* 00000280    "00.._DSD" */
+    0x12,0x25,0x02,0x11,0x13,0x0A,0x10,0x14,  /* 00000288    ".%......" */
+    0xD8,0xFF,0xDA,0xBA,0x6E,0x8C,0x4D,0x8A,  /* 00000290    "....n.M." */
+    0x91,0xBC,0x9B,0xBF,0x4A,0xA3,0x01,0x12,  /* 00000298    "....J..." */
+    0x0E,0x01,0x12,0x0B,0x02,0x0D,0x63,0x6F,  /* 000002A0    "......co" */
+    0x75,0x6E,0x74,0x00,0x0A,0x02,0x5B,0x82,  /* 000002A8    "unt...[." */
+    0x41,0x05,0x50,0x4C,0x30,0x5F,0x08,0x5F,  /* 000002B0    "A.PL0_._" */
+    0x48,0x49,0x44,0x0D,0x50,0x52,0x50,0x30,  /* 000002B8    "HID.PRP0" */
+    0x30,0x30,0x30,0x00,0x08,0x5F,0x44,0x53,  /* 000002C0    "000.._DS" */
+    0x44,0x12,0x37,0x02,0x11,0x13,0x0A,0x10,  /* 000002C8    "D.7....." */
+    0x14,0xD8,0xFF,0xDA,0xBA,0x6E,0x8C,0x4D,  /* 000002D0    ".....n.M" */
+    0x8A,0x91,0xBC,0x9B,0xBF,0x4A,0xA3,0x01,  /* 000002D8    ".....J.." */
+    0x12,0x20,0x02,0x12,0x0A,0x02,0x0D,0x67,  /* 000002E0    ". .....g" */
+    0x61,0x6D,0x6D,0x61,0x00,0x01,0x12,0x12,  /* 000002E8    "amma...." */
+    0x02,0x0D,0x63,0x6F,0x6C,0x6F,0x72,0x2D,  /* 000002F0    "..color-" */
+    0x6B,0x65,0x79,0x00,0x0C,0xFF,0xFF,0xFF,  /* 000002F8    "key....." */
+    0xFF,0x5B,0x82,0x41,0x05,0x50,0x4C,0x31,  /* 00000300    ".[.A.PL1" */
+    0x5F,0x08,0x5F,0x48,0x49,0x44,0x0D,0x50,  /* 00000308    "_._HID.P" */
+    0x52,0x50,0x30,0x30,0x30,0x30,0x00,0x08,  /* 00000310    "RP0000.." */
+    0x5F,0x44,0x53,0x44,0x12,0x37,0x02,0x11,  /* 00000318    "_DSD.7.." */
+    0x13,0x0A,0x10,0x14,0xD8,0xFF,0xDA,0xBA,  /* 00000320    "........" */
+    0x6E,0x8C,0x4D,0x8A,0x91,0xBC,0x9B,0xBF,  /* 00000328    "n.M....." */
+    0x4A,0xA3,0x01,0x12,0x20,0x02,0x12,0x0A,  /* 00000330    "J... ..." */
+    0x02,0x0D,0x67,0x61,0x6D,0x6D,0x61,0x00,  /* 00000338    "..gamma." */
+    0x00,0x12,0x12,0x02,0x0D,0x63,0x6F,0x6C,  /* 00000340    ".....col" */
+    0x6F,0x72,0x2D,0x6B,0x65,0x79,0x00,0x0C,  /* 00000348    "or-key.." */
+    0xFF,0xFF,0xFF,0xFF,0x5B,0x82,0x44,0x19,  /* 00000350    "....[.D." */
+    0x43,0x4E,0x43,0x54,0x08,0x5F,0x48,0x49,  /* 00000358    "CNCT._HI" */
+    0x44,0x0D,0x50,0x52,0x50,0x30,0x30,0x30,  /* 00000360    "D.PRP000" */
+    0x30,0x00,0x08,0x5F,0x44,0x53,0x44,0x12,  /* 00000368    "0.._DSD." */
+    0x25,0x02,0x11,0x13,0x0A,0x10,0x14,0xD8,  /* 00000370    "%......." */
+    0xFF,0xDA,0xBA,0x6E,0x8C,0x4D,0x8A,0x91,  /* 00000378    "...n.M.." */
+    0xBC,0x9B,0xBF,0x4A,0xA3,0x01,0x12,0x0E,  /* 00000380    "...J...." */
+    0x01,0x12,0x0B,0x02,0x0D,0x63,0x6F,0x75,  /* 00000388    ".....cou" */
+    0x6E,0x74,0x00,0x0A,0x02,0x5B,0x82,0x4D,  /* 00000390    "nt...[.M" */
+    0x07,0x43,0x30,0x5F,0x5F,0x08,0x5F,0x48,  /* 00000398    ".C0__._H" */
+    0x49,0x44,0x0D,0x50,0x52,0x50,0x30,0x30,  /* 000003A0    "ID.PRP00" */
+    0x30,0x30,0x00,0x08,0x5F,0x44,0x53,0x44,  /* 000003A8    "00.._DSD" */
+    0x12,0x43,0x06,0x02,0x11,0x13,0x0A,0x10,  /* 000003B0    ".C......" */
+    0x14,0xD8,0xFF,0xDA,0xBA,0x6E,0x8C,0x4D,  /* 000003B8    ".....n.M" */
+    0x8A,0x91,0xBC,0x9B,0xBF,0x4A,0xA3,0x01,  /* 000003C0    ".....J.." */
+    0x12,0x4B,0x04,0x04,0x12,0x10,0x02,0x0D,  /* 000003C8    ".K......" */
+    0x6E,0x61,0x6D,0x65,0x00,0x0D,0x61,0x6E,  /* 000003D0    "name..an" */
+    0x61,0x6C,0x6F,0x67,0x00,0x12,0x0C,0x02,  /* 000003D8    "alog...." */
+    0x0D,0x65,0x6E,0x61,0x62,0x6C,0x65,0x64,  /* 000003E0    ".enabled" */
+    0x00,0x01,0x12,0x14,0x02,0x0D,0x62,0x69,  /* 000003E8    "......bi" */
+    0x74,0x73,0x5F,0x70,0x65,0x72,0x5F,0x63,  /* 000003F0    "ts_per_c" */
+    0x6F,0x6C,0x6F,0x72,0x00,0x0A,0x06,0x12,  /* 000003F8    "olor...." */
+    0x14,0x02,0x0D,0x63,0x6F,0x6E,0x73,0x74,  /* 00000400    "...const" */
+    0x61,0x6E,0x74,0x5F,0x61,0x6C,0x70,0x68,  /* 00000408    "ant_alph" */
+    0x61,0x00,0x0A,0xFF,0x5B,0x82,0x44,0x0D,  /* 00000410    "a...[.D." */
+    0x43,0x31,0x5F,0x5F,0x08,0x5F,0x48,0x49,  /* 00000418    "C1__._HI" */
+    0x44,0x0D,0x50,0x52,0x50,0x30,0x30,0x30,  /* 00000420    "D.PRP000" */
+    0x30,0x00,0x08,0x5F,0x44,0x53,0x44,0x12,  /* 00000428    "0.._DSD." */
+    0x4A,0x0B,0x02,0x11,0x13,0x0A,0x10,0x14,  /* 00000430    "J......." */
+    0xD8,0xFF,0xDA,0xBA,0x6E,0x8C,0x4D,0x8A,  /* 00000438    "....n.M." */
+    0x91,0xBC,0x9B,0xBF,0x4A,0xA3,0x01,0x12,  /* 00000440    "....J..." */
+    0x42,0x0A,0x07,0x12,0x17,0x02,0x0D,0x6E,  /* 00000448    "B......n" */
+    0x61,0x6D,0x65,0x00,0x0D,0x64,0x69,0x73,  /* 00000450    "ame..dis" */
+    0x70,0x6C,0x61,0x79,0x70,0x6F,0x72,0x74,  /* 00000458    "playport" */
+    0x5F,0x61,0x00,0x12,0x0C,0x02,0x0D,0x65,  /* 00000460    "_a.....e" */
+    0x6E,0x61,0x62,0x6C,0x65,0x64,0x00,0x01,  /* 00000468    "nabled.." */
+    0x12,0x1D,0x02,0x0D,0x73,0x63,0x61,0x6C,  /* 00000470    "....scal" */
+    0x69,0x6E,0x67,0x5F,0x6D,0x6F,0x64,0x65,  /* 00000478    "ing_mode" */
+    0x00,0x0D,0x46,0x75,0x6C,0x6C,0x20,0x61,  /* 00000480    "..Full a" */
+    0x73,0x70,0x65,0x63,0x74,0x00,0x12,0x14,  /* 00000488    "spect..." */
+    0x02,0x0D,0x61,0x75,0x64,0x69,0x6F,0x00,  /* 00000490    "..audio." */
+    0x0D,0x66,0x6F,0x72,0x63,0x65,0x2D,0x64,  /* 00000498    ".force-d" */
+    0x76,0x69,0x00,0x12,0x1C,0x02,0x0D,0x42,  /* 000004A0    "vi.....B" */
+    0x72,0x6F,0x61,0x64,0x63,0x61,0x73,0x74,  /* 000004A8    "roadcast" */
+    0x5F,0x52,0x47,0x42,0x00,0x0D,0x41,0x75,  /* 000004B0    "_RGB..Au" */
+    0x74,0x6F,0x6D,0x61,0x74,0x69,0x63,0x00,  /* 000004B8    "tomatic." */
+    0x12,0x14,0x02,0x0D,0x62,0x69,0x74,0x73,  /* 000004C0    "....bits" */
+    0x5F,0x70,0x65,0x72,0x5F,0x63,0x6F,0x6C,  /* 000004C8    "_per_col" */
+    0x6F,0x72,0x00,0x0A,0x08,0x12,0x14,0x02,  /* 000004D0    "or......" */
+    0x0D,0x63,0x6F,0x6E,0x73,0x74,0x61,0x6E,  /* 000004D8    ".constan" */
+    0x74,0x5F,0x61,0x6C,0x70,0x68,0x61,0x00,  /* 000004E0    "t_alpha." */
+    0x0A,0xFF                                 /* 000004E8    ".."       */
+};
diff --git a/drivers/gpu/drm/i915/intel_config.c b/drivers/gpu/drm/i915/intel_config.c
index c1b06b7..7db749b 100644
--- a/drivers/gpu/drm/i915/intel_config.c
+++ b/drivers/gpu/drm/i915/intel_config.c
@@ -39,6 +39,17 @@
 #define i915_ACPI_PRP_ROOT "\\_SB.PRP.GFX0"
 
 /*
+ * For testing we insert this fixed table into the ACPI configuration
+ * space. In the real world, this will either be part of the firmware
+ * or inserted into the ACPI configuration space via a well defined
+ * kernel method.
+ *
+ *    iasl -f -tc i915-properties.asl
+ *
+ */
+#include "i915-properties.hex"
+
+/*
  * Load an ACPI property table into the ACPI subsystem.
  *
  * First, verify that a table isn't already loaded.  The table may
@@ -82,7 +93,14 @@ static int intel_acpi_load_table(struct drm_device *dev, char *firmware)
 			DRM_ERROR("Failed to find ACPI table %s: %d\n",
 				  firmware, ret);
 			fw = NULL;
-			goto bad_table;
+
+			/*
+			 * A static ACPI table can be linked into the code.
+			 * This is used primarily for testing out the code
+			 * but can also be used with a driver compiled
+			 * into the kernel for an embedded type configuration.
+			 */
+			table = (struct acpi_table_header *)AmlCode;
 		} else {
 			table = (struct acpi_table_header *)fw->data;
 		}
-- 
2.1.0



More information about the Intel-gfx mailing list