Vladimir Serbinenko (phcoder@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5320
-gerrit
commit 4d6ae4e52a03afd74d5c33bb3bc5f07806cf25a2 Author: Vladimir Serbinenko phcoder@gmail.com Date: Sun Mar 2 17:28:20 2014 +0100
i945: Replace video gfx init.
Old init was a replay not even meant to have been committed. This one really computes values and does its job. Tested on Macbook2,1 (1280x800).
Change-Id: I61b6946c095fe06e20ae9a0db54696d0568225dd Signed-off-by: Vladimir Serbinenko phcoder@gmail.com --- src/mainboard/lenovo/x60/Kconfig | 1 + src/mainboard/lenovo/x60/Makefile.inc | 3 - src/mainboard/lenovo/x60/devicetree.cb | 4 + src/mainboard/lenovo/x60/i915.c | 373 ------ src/mainboard/lenovo/x60/i915io.c | 2273 -------------------------------- src/mainboard/lenovo/x60/intel_dp.c | 167 --- src/northbridge/intel/i945/chip.h | 5 + src/northbridge/intel/i945/gma.c | 337 ++++- 8 files changed, 341 insertions(+), 2822 deletions(-)
diff --git a/src/mainboard/lenovo/x60/Kconfig b/src/mainboard/lenovo/x60/Kconfig index 7ed2665..977d9e5 100644 --- a/src/mainboard/lenovo/x60/Kconfig +++ b/src/mainboard/lenovo/x60/Kconfig @@ -26,6 +26,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy select MAINBOARD_HAS_NATIVE_VGA_INIT select EARLY_CBMEM_INIT select H8_DOCK_EARLY_INIT + select INTEL_EDID
config MAINBOARD_DIR string diff --git a/src/mainboard/lenovo/x60/Makefile.inc b/src/mainboard/lenovo/x60/Makefile.inc index ecb7ce5..0b01fe4 100644 --- a/src/mainboard/lenovo/x60/Makefile.inc +++ b/src/mainboard/lenovo/x60/Makefile.inc @@ -20,6 +20,3 @@ smm-$(CONFIG_HAVE_SMI_HANDLER) += dock.c romstage-y += dock.c ramstage-y += dock.c -ramstage-$(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT) += i915.c -ramstage-$(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT) += i915io.c -ramstage-$(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT) += intel_dp.c diff --git a/src/mainboard/lenovo/x60/devicetree.cb b/src/mainboard/lenovo/x60/devicetree.cb index 3880f18..d9ff942 100644 --- a/src/mainboard/lenovo/x60/devicetree.cb +++ b/src/mainboard/lenovo/x60/devicetree.cb @@ -22,6 +22,10 @@
chip northbridge/intel/i945
+ register "gpu_hotplug" = "0x00000220" + register "gpu_lvds_use_spread_spectrum_clock" = "1" + register "gpu_lvds_is_dual_channel" = "0" + device cpu_cluster 0 on chip cpu/intel/socket_mFCPGA478 device lapic 0 on end diff --git a/src/mainboard/lenovo/x60/i915.c b/src/mainboard/lenovo/x60/i915.c deleted file mode 100644 index 4870fd8..0000000 --- a/src/mainboard/lenovo/x60/i915.c +++ /dev/null @@ -1,373 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2012 Google Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <types.h> -#include <string.h> -#include <stdlib.h> -#include <device/device.h> -#include <device/device.h> -#include <device/pci_def.h> -#include <device/pci_ops.h> -#include <console/console.h> -#include <delay.h> -#include <pc80/mc146818rtc.h> -#include <arch/acpi.h> -#include <arch/io.h> -#include <arch/interrupt.h> -#include <boot/coreboot_tables.h> -#include <southbridge/intel/bd82x6x/pch.h> -#include <smbios.h> -#include <device/pci.h> -#include <ec/google/chromeec/ec.h> -#include <cbfs_core.h> - -#include <cpu/x86/tsc.h> -#include <cpu/x86/cache.h> -#include <cpu/x86/mtrr.h> -#include <cpu/x86/msr.h> -#include <edid.h> -#include "i915io.h" - -enum { - vmsg = 1, vio = 2, vspin = 4, -}; - -#define PGETLB_CTL 0x2020 - -static int verbose = 0; - -static unsigned int *mmio; -static unsigned int graphics; -static unsigned short addrport; -static unsigned short dataport; -static unsigned int physbase; - -#define PGETBL_CTL 0x2020 -#define PGETBL_ENABLED 0x00000001 - - -static u32 htotal, hblank, hsync, vtotal, vblank, vsync; - -const u8 x60_edid_data[] = { - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x30, 0xae, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0f, 0x01, 0x03, 0x80, 0x19, 0x12, 0x78, 0xea, 0xed, 0x75, 0x91, 0x57, 0x4f, 0x8b, 0x26, - 0x21, 0x50, 0x54, 0x21, 0x08, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x28, 0x15, 0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88, - 0x36, 0x00, 0xf6, 0xb9, 0x00, 0x00, 0x00, 0x18, 0xed, 0x10, 0x00, 0x40, 0x41, 0x00, 0x26, 0x30, - 0x18, 0x88, 0x36, 0x00, 0xf6, 0xb9, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x61, - 0x43, 0x32, 0x61, 0x43, 0x28, 0x0f, 0x01, 0x00, 0x4c, 0xa3, 0x58, 0x4a, 0x00, 0x00, 0x00, 0xfe, - 0x00, 0x4c, 0x54, 0x4e, 0x31, 0x32, 0x31, 0x58, 0x4a, 0x2d, 0x4c, 0x30, 0x37, 0x0a, 0x00, 0x00, -}; -#define READ32(addr) io_i915_READ32(addr) -#define WRITE32(val, addr) io_i915_WRITE32(val, addr) - -static char *regname(unsigned long addr) -{ - static char name[16]; - snprintf(name, sizeof (name), "0x%lx", addr); - return name; -} - -unsigned long io_i915_READ32(unsigned long addr) -{ - unsigned long val; - outl(addr, addrport); - val = inl(dataport); - if (verbose & vio) - printk(BIOS_SPEW, "%s: Got %08lx\n", regname(addr), val); - return val; -} - -void io_i915_WRITE32(unsigned long val, unsigned long addr) -{ - if (verbose & vio) - printk(BIOS_SPEW, "%s: outl %08lx\n", regname(addr), val); - outl(addr, addrport); - outl(val, dataport); -} - - -/* - 2560 - 4 words per - 4 *p - 10240 - 4k bytes per page - 4096/p - 2.50 - 1700 lines - 1700 * p - 4250.00 - PTEs -*/ -static void -setgtt(int start, int end, unsigned long base, int inc) -{ - int i; - - printk(BIOS_INFO, "%s(%d,%d,0x%08lx,%d);\n", - __func__, start, end, base, inc); - - for (i = start; i < end; i++) { - u32 word = base + i*inc; - WRITE32(word|1, (i*4)|1); - } -} - -int gtt_setup(unsigned int mmiobase); -int gtt_setup(unsigned int mmiobase) -{ - unsigned long PGETBL_save; - - PGETBL_save = read32(mmiobase + PGETBL_CTL) & ~PGETBL_ENABLED; - PGETBL_save |= PGETBL_ENABLED; - - PGETBL_save |= pci_read_config32(dev_find_slot(0, PCI_DEVFN(2,0)), 0x5c) & 0xfffff000; - PGETBL_save |= 2; /* set GTT to 256kb */ - - write32(mmiobase + GFX_FLSH_CNTL, 0); - - write32(mmiobase + PGETBL_CTL, PGETBL_save); - - /* verify */ - if (read32(mmiobase + PGETBL_CTL) & PGETBL_ENABLED) { - printk(BIOS_DEBUG, "gtt_setup is enabled.\n"); - } else { - printk(BIOS_DEBUG, "gtt_setup failed!!!\n"); - return 1; - } - write32(mmiobase + GFX_FLSH_CNTL, 0); - - return 0; -} - - -static unsigned long tickspermicrosecond = 1795; -static unsigned long long globalstart; - -static unsigned long -microseconds(unsigned long long start, unsigned long long end) -{ - unsigned long ret; - ret = ((end - start)/tickspermicrosecond); - return ret; -} - -static unsigned long globalmicroseconds(void) -{ - return microseconds(globalstart, rdtscll()); -} - -extern struct iodef iodefs[]; -extern int niodefs; - -/* fill the palette. This runs when the P opcode is hit. */ -static void palette(void) -{ - int i; - unsigned long color = 0; - - for (i = 0; i < 256; i++, color += 0x010101) - io_i915_WRITE32(color, _LGC_PALETTE_A + (i<<2)); -} - -static unsigned long times[4096]; - -static int run(int index) -{ - int i, prev = 0; - struct iodef *id, *lastidread = 0; - unsigned long u, t; - if (index >= niodefs) - return index; - /* state machine! */ - for (i = index, id = &iodefs[i]; id->op; i++, id++) { - switch (id->op) { - case M: - if (verbose & vmsg) - printk(BIOS_SPEW, "%ld: %s\n", - globalmicroseconds(), id->msg); - break; - case P: - palette(); - break; - case R: - u = READ32(id->addr); - if (verbose & vio) - printk(BIOS_SPEW, "\texpect %08lx\n", id->data); - /* we're looking for something. */ - if (lastidread->addr == id->addr) { - /* they're going to be polling. - * just do it 1000 times - */ - for (t = 0; t < 1000 && id->data != u; t++) - u = READ32(id->addr); - - if (verbose & vspin) - printk(BIOS_SPEW, - "%s: # loops %ld got %08lx want %08lx\n", - regname(id->addr), - t, u, id->data); - } - lastidread = id; - break; - case W: - WRITE32(id->data, id->addr); - if (id->addr == PCH_PP_CONTROL) { - if (verbose & vio) - printk(BIOS_SPEW, "PCH_PP_CONTROL\n"); - switch (id->data & 0xf) { - case 8: - break; - case 7: - break; - default: - udelay(100000); - if (verbose & vio) - printk(BIOS_SPEW, "U %d\n", - 100000); - } - } - break; - case V: - if (id->count < 8) { - prev = verbose; - verbose = id->count; - } else { - verbose = prev; - } - printk(BIOS_SPEW, "Change verbosity to %d\n", verbose); - break; - case I: - printk(BIOS_SPEW, "run: return %d\n", i+1); - return i+1; - break; - default: - printk(BIOS_SPEW, "BAD TABLE, opcode %d @ %d\n", - id->op, i); - return -1; - } - if (id->udelay) - udelay(id->udelay); - if (i < ARRAY_SIZE(times)) - times[i] = globalmicroseconds(); - } - printk(BIOS_SPEW, "run: return %d\n", i); - return i+1; -} - -int i915lightup(unsigned int physbase, unsigned int iobase, unsigned int mmio, - unsigned int gfx); - -int i915lightup(unsigned int pphysbase, unsigned int piobase, - unsigned int pmmio, unsigned int pgfx) -{ - static struct edid edid; - - int index; - unsigned long temp; - mmio = (void *)pmmio; - addrport = piobase; - dataport = addrport + 4; - physbase = pphysbase; - graphics = pgfx; - printk(BIOS_SPEW, - "i915lightup: graphics %p mmio %p addrport %04x physbase %08x\n", - (void *)graphics, mmio, addrport, physbase); - globalstart = rdtscll(); - - - decode_edid((unsigned char *)&x60_edid_data, - sizeof(x60_edid_data), &edid); - - htotal = (edid.ha - 1) | ((edid.ha + edid.hbl - 1) << 16); - printk(BIOS_SPEW, "I915_WRITE(HTOTAL(pipe), %08x)\n", htotal); - - hblank = (edid.ha - 1) | ((edid.ha + edid.hbl - 1) << 16); - printk(BIOS_SPEW, "I915_WRITE(HBLANK(pipe),0x%08x)\n", hblank); - - hsync = (edid.ha + edid.hso - 1) | - ((edid.ha + edid.hso + edid.hspw - 1) << 16); - printk(BIOS_SPEW, "I915_WRITE(HSYNC(pipe),0x%08x)\n", hsync); - - vtotal = (edid.va - 1) | ((edid.va + edid.vbl - 1) << 16); - printk(BIOS_SPEW, "I915_WRITE(VTOTAL(pipe), %08x)\n", vtotal); - - vblank = (edid.va - 1) | ((edid.va + edid.vbl - 1) << 16); - printk(BIOS_SPEW, "I915_WRITE(VBLANK(pipe),0x%08x)\n", vblank); - - vsync = (edid.va + edid.vso - 1) | - ((edid.va + edid.vso + edid.vspw - 1) << 16); - printk(BIOS_SPEW, "I915_WRITE(VSYNC(pipe),0x%08x)\n", vsync); - - printk(BIOS_SPEW, "Table has %d elements\n", niodefs); - - index = run(0); - printk(BIOS_SPEW, "Run returns %d\n", index); - - verbose = 0; - /* GTT is the Global Translation Table for the graphics pipeline. - * It is used to translate graphics addresses to physical - * memory addresses. As in the CPU, GTTs map 4K pages. - * There are 32 bits per pixel, or 4 bytes, - * which means 1024 pixels per page. - * There are 4250 GTTs on Link: - * 2650 (X) * 1700 (Y) pixels / 1024 pixels per page. - * The setgtt function adds a further bit of flexibility: - * it allows you to set a range (the first two parameters) to point - * to a physical address (third parameter);the physical address is - * incremented by a count (fourth parameter) for each GTT in the - * range. - * Why do it this way? For ultrafast startup, - * we can point all the GTT entries to point to one page, - * and set that page to 0s: - * memset(physbase, 0, 4096); - * setgtt(0, 4250, physbase, 0); - * this takes about 2 ms, and is a win because zeroing - * the page takes a up to 200 ms. We will be exploiting this - * trick in a later rev of this code. - * This call sets the GTT to point to a linear range of pages - * starting at physbase. - */ - - if (gtt_setup(pmmio)) { - printk(BIOS_ERR, "ERROR: GTT Setup Failed!!!\n"); - return 0; - } - - setgtt(0, 800 , physbase, 4096); - - temp = READ32(PGETLB_CTL); - printk(BIOS_INFO, "GTT PGETLB_CTL register: 0x%lx\n", temp); - - if (temp & 1) - printk(BIOS_INFO, "GTT Enabled\n"); - else - printk(BIOS_ERR, "ERROR: GTT is still Disabled!!!\n"); - - printk(BIOS_SPEW, "memset %p to 0x00 for %d bytes\n", - (void *)graphics, FRAME_BUFFER_BYTES); - memset((void *)graphics, 0x00, FRAME_BUFFER_BYTES); - - printk(BIOS_SPEW, "%ld microseconds\n", globalmicroseconds()); - - set_vbe_mode_info_valid(&edid, graphics); - - return 0; -} diff --git a/src/mainboard/lenovo/x60/i915io.c b/src/mainboard/lenovo/x60/i915io.c deleted file mode 100644 index 3552867..0000000 --- a/src/mainboard/lenovo/x60/i915io.c +++ /dev/null @@ -1,2273 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2012 Google Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <stdint.h> -#include "i915io.h" - -struct iodef iodefs[] = { -{V, 0,}, -{M, 1, "Linux agpgart interface v0.103", 0x0, 0x0, 0}, -{M, 1, "agpgart-intel 0000:00:00.0:Intel 945GM Chipset", 0x0, 0x0, 0}, -{M, 1, "agpgart-intel 0000:00:00.0:detected gtt size:262144K total, 262144K mappable", 0x0, 0x0, 0}, -{M, 1, "agpgart-intel 0000:00:00.0:detected 8192K stolen memory", 0x0, 0x0, 0}, -{M, 1, "agpgart-intel 0000:00:00.0:AGP aperture is 256M @ 0xd0000000", 0x0, 0x0, 0}, -{M, 1, "[drm] Initialized drm 1.1.0 20060810", 0x0, 0x0, 0}, -{M, 1, "[drm] radeon defaulting to kernel modesetting.", 0x0, 0x0, 0}, -{M, 1, "[drm] radeon kernel modesetting enabled.", 0x0, 0x0, 0}, -{M, 1, "i915 0000:00:02.0:setting latency timer to 64", 0x0, 0x0, 0}, -{W, 1, "", 0x5100, 0x00000000, 0}, -{R, 1, "", PP_ON_DELAYS, 0x00000000, 0}, -{R, 1, "", PP_OFF_DELAYS, 0x00000000, 0}, -{W, 1, "", PP_ON_DELAYS, 0x00000000, 0}, -{W, 1, "", PP_OFF_DELAYS, 0x00000000, 0}, -{W, 1, "", INSTPM+0x24, MI_ARB_C3_LP_WRITE_ENABLE | 0x08000800, 0}, -{W, 1, "", RENDER_RING_BASE, 0x00000000, 0}, -{W, 1, "", RENDER_RING_BASE+0x4, 0x00000000, 0}, -{W, 1, "", RENDER_RING_BASE+0x8, 0x00000000, 0}, -{W, 1, "", RENDER_RING_BASE+0xc, 0x00000000, 0}, -{W, 1, "", RENDER_RING_BASE+0x10, 0x00000000, 0}, -{W, 1, "", RENDER_RING_BASE+0x14, 0x00000000, 0}, -{W, 1, "", RENDER_RING_BASE+0x18, 0x00000000, 0}, -{W, 1, "", RENDER_RING_BASE+0x1c, 0x00000000, 0}, -{W, 1, "", FENCE_REG_965_0, 0x00000000, 0}, -{W, 1, "", FENCE_REG_965_0+0x4, 0x00000000, 0}, -{W, 1, "", FENCE_REG_965_0+0x8, 0x00000000, 0}, -{W, 1, "", FENCE_REG_965_0+0xc, 0x00000000, 0}, -{W, 1, "", FENCE_REG_965_0+0x10, 0x00000000, 0}, -{W, 1, "", FENCE_REG_965_0+0x14, 0x00000000, 0}, -{W, 1, "", FENCE_REG_965_0+0x18, 0x00000000, 0}, -{W, 1, "", FENCE_REG_965_0+0x1c, 0x00000000, 0}, -{R, 1, "", DCC, DCC_ADDRESSING_MODE_DUAL_CHANNEL_INTERLEAVED | DCC_CHANNEL_XOR_BIT_17 | 0x000f0202, 0}, -{M, 1, "[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).", 0x0, 0x0, 0}, -{M, 1, "[drm] Driver supports precise vblank timestamp query.", 0x0, 0x0, 0}, -{M, 1, "i915 0000:00:02.0:Invalid ROM contents", 0x0, 0x0, 0}, -{M, 1, "[drm] failed to find VBIOS tables", 0x0, 0x0, 0}, -{M, 1, "vgaarb:device changed decodes:PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem", 0x0, 0x0, 0}, -{W, 1, "", VGACNTRL, VGA_DISP_DISABLE | 0x80000000, 0}, -{R, 1, "", PFIT_CONTROL, 0x00000000, 0}, -{W, 1, "", 0x5100, 0x00000003, 0}, -{W, 1, "", 0x5104, 0x460100a1, 0}, -{R, 1, "", 0x5108, 0x00004a00, 0}, -{R, 1, "", 0x510c, 0x00000000, 0}, -{R, 1, "", 0x5108, 0x0000c200, 0}, -{W, 1, "", 0x5104, 0x48000000, 0}, -{R, 1, "", 0x5108, 0x00008800, 0}, -{W, 1, "", 0x5100, 0x00000000, 0}, -{W, 1, "", 0x5100, 0x00000003, 0}, -{W, 1, "", 0x5104, 0x468000a1, 0}, -{R, 1, "", 0x5108, 0x00008a08, 0}, -{R, 1, "", 0x510c, 0xffffff00, 0}, -{R, 1, "", 0x5108, 0x00008a0c, 0}, -{R, 1, "", 0x510c, 0x00ffffff, 0}, -{R, 1, "", 0x5108, 0x00008a10, 0}, -{R, 1, "", 0x510c, 0x4000ae30, 0}, -{R, 1, "", 0x5108, 0x00008a14, 0}, -{R, 1, "", 0x510c, 0x00000000, 0}, -{R, 1, "", 0x5108, 0x00008a18, 0}, -{R, 1, "", 0x510c, 0x03010f00, 0}, -{R, 1, "", 0x5108, 0x00008a1c, 0}, -{R, 1, "", 0x510c, 0x78121980, 0}, -{R, 1, "", 0x5108, 0x00008a20, 0}, -{R, 1, "", 0x510c, 0x9175edea, 0}, -{R, 1, "", 0x5108, 0x00008a24, 0}, -{R, 1, "", 0x510c, 0x268b4f57, 0}, -{R, 1, "", 0x5108, 0x00008a28, 0}, -{R, 1, "", 0x510c, 0x21545021, 0}, -{R, 1, "", 0x5108, 0x00008a2c, 0}, -{R, 1, "", 0x510c, 0x01010008, 0}, -{R, 1, "", 0x5108, 0x00008a30, 0}, -{R, 1, "", 0x510c, 0x01010101, 0}, -{R, 1, "", 0x5108, 0x00008a34, 0}, -{R, 1, "", 0x510c, 0x01010101, 0}, -{R, 1, "", 0x5108, 0x00008a38, 0}, -{R, 1, "", 0x510c, 0x01010101, 0}, -{R, 1, "", 0x5108, 0x00008a3c, 0}, -{R, 1, "", 0x510c, 0x15280101, 0}, -{R, 1, "", 0x5108, 0x00008a40, 0}, -{R, 1, "", 0x510c, 0x00414000, 0}, -{R, 1, "", 0x5108, 0x00008a44, 0}, -{R, 1, "", 0x510c, 0x88183026, 0}, -{R, 1, "", 0x5108, 0x00008a48, 0}, -{R, 1, "", 0x510c, 0xb9f60036, 0}, -{R, 1, "", 0x5108, 0x00008a4c, 0}, -{R, 1, "", 0x510c, 0x18000000, 0}, -{R, 1, "", 0x5108, 0x00008a50, 0}, -{R, 1, "", 0x510c, 0x400010ed, 0}, -{R, 1, "", 0x5108, 0x00008a54, 0}, -{R, 1, "", 0x510c, 0x30260041, 0}, -{R, 1, "", 0x5108, 0x00008a58, 0}, -{R, 1, "", 0x510c, 0x00368818, 0}, -{R, 1, "", 0x5108, 0x00008a5c, 0}, -{R, 1, "", 0x510c, 0x0000b9f6, 0}, -{R, 1, "", 0x5108, 0x00008a60, 0}, -{R, 1, "", 0x510c, 0x00001800, 0}, -{R, 1, "", 0x5108, 0x00008a64, 0}, -{R, 1, "", 0x510c, 0x61000f00, 0}, -{R, 1, "", 0x5108, 0x00008a68, 0}, -{R, 1, "", 0x510c, 0x43613243, 0}, -{R, 1, "", 0x5108, 0x00008a6c, 0}, -{R, 1, "", 0x510c, 0x00010f28, 0}, -{R, 1, "", 0x5108, 0x00008a70, 0}, -{R, 1, "", 0x510c, 0x4a58a34c, 0}, -{R, 1, "", 0x5108, 0x00008a74, 0}, -{R, 1, "", 0x510c, 0xfe000000, 0}, -{R, 1, "", 0x5108, 0x00008a78, 0}, -{R, 1, "", 0x510c, 0x4e544c00, 0}, -{R, 1, "", 0x5108, 0x00008a7c, 0}, -{R, 1, "", 0x510c, 0x58313231, 0}, -{R, 1, "", 0x5108, 0x0000ca00, 0}, -{R, 1, "", 0x510c, 0x304c2d4a, 0}, -{R, 1, "", 0x5108, 0x0000ca00, 0}, -{R, 1, "", 0x510c, 0x00000a37, 0}, -{R, 1, "", 0x5108, 0x0000c200, 0}, -{W, 1, "", 0x5104, 0x48000000, 0}, -{R, 1, "", 0x5108, 0x00008800, 0}, -{W, 1, "", 0x5100, 0x00000000, 0}, -{R, 1, "", PP_CONTROL, 0x00000000, 0}, -{W, 1, "", PP_CONTROL, 0xabcd0000, 0}, -{R, 2, "", BLC_PWM_CTL, 0x00000000, 0}, -{R, 2, "", DVOB, 0x00300000, 0}, -{R, 1, "", DVOC, 0x00300000, 0}, -{R, 1, "", TV_CTL, 0x00000000, 0}, -{R, 1, "", TV_DAC, 0x00000000, 0}, -{W, 1, "", TV_DAC, 0x08000000, 0}, -{R, 1, "", TV_DAC, 0x08000000, 0}, -{W, 1, "", TV_DAC, 0x00000000, 0}, -{R, 1, "", TV_DAC, 0x00000000, 0}, -{W, 1, "", TV_DAC, 0x00000000, 0}, -{M, 1, "tsc:Refined TSC clocksource calibration:1662.499 MHz", 0x0, 0x0, 0}, -{W, 1, "", HWS_PGA, 0x352d2000, 0}, -{W, 1, "", PRB0_CTL, 0x00000000, 0}, -{M, 1, "Switching to clocksource tsc", 0x0, 0x0, 0}, -{W, 1, "", PRB0_HEAD, 0x00000000, 0}, -{W, 1, "", PRB0_TAIL, 0x00000000, 0}, -{R, 1, "", PRB0_HEAD, 0x00000000, 0}, -{W, 1, "", PRB0_START, 0x00000000, 0}, -{W, 1, "", PRB0_CTL, 0x0001f001, 0}, -{R, 1, "", PRB0_CTL, 0x0001f001, 0}, -{R, 1, "", PRB0_START, 0x00000000, 0}, -{R, 2, "", PRB0_HEAD, 0x00000000, 0}, -{R, 1, "", PRB0_TAIL, 0x00000000, 0}, -{R, 1, "", 0x6104, 0x00000000, 0}, -{W, 1, "", 0x6104, 0x0000000b, 0}, -{W, 1, "", ECOSKPD, 0x00010000, 0}, -{M, 1, "[drm] initialized overlay support", 0x0, 0x0, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", _PIPEBCONF, 0x00000000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x00000000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x00000000, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{W, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", _DSPACNTR, 0x00000000, 0}, -{R, 1, "", _PIPEBCONF, 0x00000000, 0}, -{W, 1, "", _PIPEBCONF, 0x00000000, 0}, -{R, 1, "", _DSPBCNTR, 0x00000000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x00000000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x00000000, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", _PIPEBCONF, 0x00000000, 0}, -{W, 1, "", PORT_HOTPLUG_EN, 0x00000000, 0}, -{R, 1, "", PORT_HOTPLUG_STAT, 0x00000000, 0}, -{W, 1, "", PORT_HOTPLUG_STAT, 0x00000000, 0}, -{W, 1, "", HWSTAM, 0x0000effe, 0}, -{W, 1, "", _PIPEASTAT, 0x00000000, 0}, -{W, 1, "", _PIPEBSTAT, 0x00000000, 0}, -{W, 1, "", IMR, 0xffffffff, 0}, -{W, 1, "", IER, 0x00000000, 0}, -{W, 1, "", EMR, 0xffffffed, 0}, -{W, 1, "", IMR, 0xfffd73ae, 0}, -{W, 1, "", IER, 0x00028053, 0}, -{R, 1, "", PORT_HOTPLUG_EN, 0x00000000, 0}, -{W, 1, "", PORT_HOTPLUG_EN, CRT_HOTPLUG_INT_EN | CRT_HOTPLUG_VOLTAGE_COMPARE_50 | 0x00000220, 0}, -{R, 1, "", PORT_HOTPLUG_EN, CRT_HOTPLUG_INT_EN | CRT_HOTPLUG_VOLTAGE_COMPARE_50 | 0x00000220, 0}, -{W, 1, "", PORT_HOTPLUG_EN, CRT_HOTPLUG_INT_EN | CRT_HOTPLUG_FORCE_DETECT | CRT_HOTPLUG_VOLTAGE_COMPARE_50 | 0x00000228, 0}, -{R, 1, "", PORT_HOTPLUG_EN, CRT_HOTPLUG_INT_EN | CRT_HOTPLUG_FORCE_DETECT | CRT_HOTPLUG_VOLTAGE_COMPARE_50 | 0x00000228, 0}, -{R, 1, "", PORT_HOTPLUG_EN, CRT_HOTPLUG_INT_EN | CRT_HOTPLUG_VOLTAGE_COMPARE_50 | 0x00000220, 0}, -{R, 1, "", PORT_HOTPLUG_STAT, 0x00000000, 0}, -{W, 1, "", PORT_HOTPLUG_STAT, CRT_HOTPLUG_INT_STATUS | 0x00000800, 0}, -{W, 1, "", PORT_HOTPLUG_EN, CRT_HOTPLUG_INT_EN | CRT_HOTPLUG_VOLTAGE_COMPARE_50 | 0x00000220, 0}, -{W, 1, "", 0x5100, 0x00000002, 0}, -{W, 1, "", 0x5104, 0x460100a1, 0}, -{R, 2, "", 0x5108, 0x00009c00, 0}, -{W, 1, "", 0x5104, 0x80000000, 0}, -{W, 1, "", 0x5104, 0x00000000, 0}, -{W, 2, "", 0x5100, 0x00000000, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{W, 1, "", _FPA0, 0x00020e08, 0}, -{W, 1, "", _FPA1, 0x00020e08, 0}, -{W, 1, "", _DPLL_A, 0x14020003, 0}, -{W, 2, "", _DPLL_A, 0x94020003, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{W, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{W, 1, "", _HBLANK_A, 0x06af04ff, 0}, -{W, 1, "", _HSYNC_A, 0x05d70557, 0}, -{W, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{W, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{W, 1, "", _VSYNC_A, 0x04090402, 0}, -{W, 1, "", _PIPEASRC, 0x04ff03ff, 0}, -{W, 1, "", _DSPBSIZE, 0x03ff04ff, 0}, -{W, 1, "", _DSPBPOS, 0x00000000, 0}, -{W, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", _DPLL_A, 0x94020003, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{W, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_GMBUS_INTERRUPT_STATUS | PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000a03, 0}, -{W, 1, "", _PIPEASTAT, PIPE_GMBUS_INTERRUPT_STATUS | PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000a03, 0}, -{R, 2, "", _PIPEASTAT, 0x00000000, 0}, -{R, 2, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{W, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 1, "", _PIPEASTAT, 0x00000000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{W, 1, "", _DSPBCNTR, 0x40000000, 0}, -{R, 1, "", _DSPBCNTR, 0x40000000, 0}, -{W, 1, "", _DSPBCNTR, 0x58000000, 0}, -{W, 1, "", _DSPBSTRIDE, 0x00001400, 0}, -{W, 1, "", _DSPBADDR, 0x00020000, 0}, -{R, 2, "", DSPARB, (DSPARB_CSTART_SHIFT & 0x4) | 0x00001d9c, 0}, -{W, 1, "", INSTPM+0x20, FW_BLC_SELF_EN_MASK | 0x80000000, 0}, -{W, 1, "", FW_BLC, 0x011d011a, 0}, -{W, 1, "", FW_BLC2, 0x00000102, 0}, -{R, 1, "", TV_CTL, 0x00000000, 0}, -{W, 1, "", TV_H_CTL_1, 0x00400359, 0}, -{W, 1, "", TV_H_CTL_2, 0x80480022, 0}, -{W, 1, "", TV_H_CTL_3, 0x007c0344, 0}, -{W, 1, "", TV_V_CTL_1, 0x00f01415, 0}, -{W, 1, "", TV_V_CTL_2, 0x00060607, 0}, -{W, 1, "", TV_V_CTL_3, 0x80120001, 0}, -{W, 1, "", TV_V_CTL_4, 0x000900f0, 0}, -{W, 1, "", TV_V_CTL_5, 0x000a00f0, 0}, -{W, 1, "", TV_V_CTL_6, 0x000900f0, 0}, -{W, 1, "", TV_V_CTL_7, 0x000a00f0, 0}, -{W, 1, "", TV_SC_CTL_1, 0xc1710087, 0}, -{W, 1, "", TV_SC_CTL_2, 0x6b405140, 0}, -{W, 1, "", TV_SC_CTL_3, 0x00000000, 0}, -{W, 1, "", TV_CSC_Y, 0x0332012d, 0}, -{W, 1, "", TV_CSC_Y2, 0x07d30104, 0}, -{W, 1, "", TV_CSC_U, 0x0733052d, 0}, -{W, 1, "", TV_CSC_U2, 0x05c70200, 0}, -{W, 1, "", TV_CSC_V, 0x0340030c, 0}, -{W, 1, "", TV_CSC_V2, 0x06d00200, 0}, -{W, 1, "", TV_CLR_KNOBS, 0x00606000, 0}, -{W, 1, "", TV_CLR_LEVEL, 0x010b00e1, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _DSPBCNTR, 0x58000000, 0}, -{W, 1, "", _DSPBCNTR, 0x58000000, 0}, -{R, 1, "", _DSPBADDR, 0x00020000, 0}, -{W, 1, "", _DSPBADDR, 0x00020000, 0}, -{W, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", _PIPEADSL, 0x0000029e, 0}, -{R, 3, "", _PIPEADSL, 0x000003ff, 0}, -{W, 1, "", _PFA_CTL_1, 0x80000000, 0}, -{W, 1, "", _PFA_WIN_POS, 0x00360024, 0}, -{W, 1, "", _PFA_WIN_SZ, 0x02640198, 0}, -{W, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{W, 1, "", _DSPBCNTR, 0x58000000, 0}, -{R, 1, "", _DSPBADDR, 0x00020000, 0}, -{W, 1, "", _DSPBADDR, 0x00020000, 0}, -{W, 1, "", TV_H_LUMA_0, 0xb1403000, 0}, -{W, 1, "", TV_H_LUMA_0+0x4, 0x2e203500, 0}, -{W, 1, "", TV_H_LUMA_0+0x8, 0x35002e20, 0}, -{W, 1, "", TV_H_LUMA_0+0xc, 0x3000b140, 0}, -{W, 1, "", TV_H_LUMA_0+0x10, 0x35a0b160, 0}, -{W, 1, "", TV_H_LUMA_0+0x14, 0x2dc02e80, 0}, -{W, 1, "", TV_H_LUMA_0+0x18, 0xb1403480, 0}, -{W, 1, "", TV_H_LUMA_0+0x1c, 0xb1603000, 0}, -{W, 1, "", TV_H_LUMA_0+0x20, 0x2ea03640, 0}, -{W, 1, "", TV_H_LUMA_0+0x24, 0x34002d80, 0}, -{W, 1, "", TV_H_LUMA_0+0x28, 0x3000b120, 0}, -{W, 1, "", TV_H_LUMA_0+0x2c, 0x36e0b160, 0}, -{W, 1, "", TV_H_LUMA_0+0x30, 0x2d202ef0, 0}, -{W, 1, "", TV_H_LUMA_0+0x34, 0xb1203380, 0}, -{W, 1, "", TV_H_LUMA_0+0x38, 0xb1603000, 0}, -{W, 1, "", TV_H_LUMA_0+0x3c, 0x2f303780, 0}, -{W, 1, "", TV_H_LUMA_0+0x40, 0x33002cc0, 0}, -{W, 1, "", TV_H_LUMA_0+0x44, 0x3000b100, 0}, -{W, 1, "", TV_H_LUMA_0+0x48, 0x3820b160, 0}, -{W, 1, "", TV_H_LUMA_0+0x4c, 0x2c802f50, 0}, -{W, 1, "", TV_H_LUMA_0+0x50, 0xb10032a0, 0}, -{W, 1, "", TV_H_LUMA_0+0x54, 0xb1603000, 0}, -{W, 1, "", TV_H_LUMA_0+0x58, 0x2f9038c0, 0}, -{W, 1, "", TV_H_LUMA_0+0x5c, 0x32202c20, 0}, -{W, 1, "", TV_H_LUMA_0+0x60, 0x3000b0e0, 0}, -{W, 1, "", TV_H_LUMA_0+0x64, 0x3980b160, 0}, -{W, 1, "", TV_H_LUMA_0+0x68, 0x2bc02fc0, 0}, -{W, 1, "", TV_H_LUMA_0+0x6c, 0xb0e031c0, 0}, -{W, 1, "", TV_H_LUMA_0+0x70, 0xb1603000, 0}, -{W, 1, "", TV_H_LUMA_0+0x74, 0x2ff03a20, 0}, -{W, 1, "", TV_H_LUMA_0+0x78, 0x31602b60, 0}, -{W, 1, "", TV_H_LUMA_0+0x7c, 0xb020b0c0, 0}, -{W, 1, "", 0x68180, 0x3ae0b160, 0}, -{W, 1, "", 0x68184, 0x2b001810, 0}, -{W, 1, "", 0x68188, 0xb0c03120, 0}, -{W, 1, "", 0x6818c, 0xb140b020, 0}, -{W, 1, "", 0x68190, 0x18283ba0, 0}, -{W, 1, "", 0x68194, 0x30c02a80, 0}, -{W, 1, "", 0x68198, 0xb020b0a0, 0}, -{W, 1, "", 0x6819c, 0x3c60b140, 0}, -{W, 1, "", 0x681a0, 0x2a201838, 0}, -{W, 1, "", 0x681a4, 0xb0a03080, 0}, -{W, 1, "", 0x681a8, 0xb120b020, 0}, -{W, 1, "", 0x681ac, 0x18383d20, 0}, -{W, 1, "", 0x681b0, 0x304029c0, 0}, -{W, 1, "", 0x681b4, 0xb040b080, 0}, -{W, 1, "", 0x681b8, 0x3de0b100, 0}, -{W, 1, "", 0x681bc, 0x29601848, 0}, -{W, 1, "", 0x681c0, 0xb0803000, 0}, -{W, 1, "", 0x681c4, 0xb100b040, 0}, -{W, 1, "", 0x681c8, 0x18483ec0, 0}, -{W, 1, "", 0x681cc, 0xb0402900, 0}, -{W, 1, "", 0x681d0, 0xb040b060, 0}, -{W, 1, "", 0x681d4, 0x3f80b0c0, 0}, -{W, 1, "", 0x681d8, 0x28801858, 0}, -{W, 1, "", 0x681dc, 0xb060b080, 0}, -{W, 1, "", 0x681e0, 0xb0a0b060, 0}, -{W, 1, "", 0x681e4, 0x18602820, 0}, -{W, 1, "", 0x681e8, 0xb0a02820, 0}, -{W, 1, "", TV_H_LUMA_59, 0x0000b060, 0}, -{W, 1, "", TV_H_CHROMA_0, 0xb1403000, 0}, -{W, 1, "", TV_H_CHROMA_0+0x4, 0x2e203500, 0}, -{W, 1, "", TV_H_CHROMA_0+0x8, 0x35002e20, 0}, -{W, 1, "", TV_H_CHROMA_0+0xc, 0x3000b140, 0}, -{W, 1, "", TV_H_CHROMA_0+0x10, 0x35a0b160, 0}, -{W, 1, "", TV_H_CHROMA_0+0x14, 0x2dc02e80, 0}, -{W, 1, "", TV_H_CHROMA_0+0x18, 0xb1403480, 0}, -{W, 1, "", TV_H_CHROMA_0+0x1c, 0xb1603000, 0}, -{W, 1, "", TV_H_CHROMA_0+0x20, 0x2ea03640, 0}, -{W, 1, "", TV_H_CHROMA_0+0x24, 0x34002d80, 0}, -{W, 1, "", TV_H_CHROMA_0+0x28, 0x3000b120, 0}, -{W, 1, "", TV_H_CHROMA_0+0x2c, 0x36e0b160, 0}, -{W, 1, "", TV_H_CHROMA_0+0x30, 0x2d202ef0, 0}, -{W, 1, "", TV_H_CHROMA_0+0x34, 0xb1203380, 0}, -{W, 1, "", TV_H_CHROMA_0+0x38, 0xb1603000, 0}, -{W, 1, "", TV_H_CHROMA_0+0x3c, 0x2f303780, 0}, -{W, 1, "", TV_H_CHROMA_0+0x40, 0x33002cc0, 0}, -{W, 1, "", TV_H_CHROMA_0+0x44, 0x3000b100, 0}, -{W, 1, "", TV_H_CHROMA_0+0x48, 0x3820b160, 0}, -{W, 1, "", TV_H_CHROMA_0+0x4c, 0x2c802f50, 0}, -{W, 1, "", TV_H_CHROMA_0+0x50, 0xb10032a0, 0}, -{W, 1, "", TV_H_CHROMA_0+0x54, 0xb1603000, 0}, -{W, 1, "", TV_H_CHROMA_0+0x58, 0x2f9038c0, 0}, -{W, 1, "", TV_H_CHROMA_0+0x5c, 0x32202c20, 0}, -{W, 1, "", TV_H_CHROMA_0+0x60, 0x3000b0e0, 0}, -{W, 1, "", TV_H_CHROMA_0+0x64, 0x3980b160, 0}, -{W, 1, "", TV_H_CHROMA_0+0x68, 0x2bc02fc0, 0}, -{W, 1, "", TV_H_CHROMA_0+0x6c, 0xb0e031c0, 0}, -{W, 1, "", TV_H_CHROMA_0+0x70, 0xb1603000, 0}, -{W, 1, "", TV_H_CHROMA_0+0x74, 0x2ff03a20, 0}, -{W, 1, "", TV_H_CHROMA_0+0x78, 0x31602b60, 0}, -{W, 1, "", TV_H_CHROMA_0+0x7c, 0xb020b0c0, 0}, -{W, 1, "", 0x68280, 0x3ae0b160, 0}, -{W, 1, "", 0x68284, 0x2b001810, 0}, -{W, 1, "", 0x68288, 0xb0c03120, 0}, -{W, 1, "", 0x6828c, 0xb140b020, 0}, -{W, 1, "", 0x68290, 0x18283ba0, 0}, -{W, 1, "", 0x68294, 0x30c02a80, 0}, -{W, 1, "", 0x68298, 0xb020b0a0, 0}, -{W, 1, "", 0x6829c, 0x3c60b140, 0}, -{W, 1, "", 0x682a0, 0x2a201838, 0}, -{W, 1, "", 0x682a4, 0xb0a03080, 0}, -{W, 1, "", 0x682a8, 0xb120b020, 0}, -{W, 1, "", 0x682ac, 0x18383d20, 0}, -{W, 1, "", 0x682b0, 0x304029c0, 0}, -{W, 1, "", 0x682b4, 0xb040b080, 0}, -{W, 1, "", 0x682b8, 0x3de0b100, 0}, -{W, 1, "", 0x682bc, 0x29601848, 0}, -{W, 1, "", 0x682c0, 0xb0803000, 0}, -{W, 1, "", 0x682c4, 0xb100b040, 0}, -{W, 1, "", 0x682c8, 0x18483ec0, 0}, -{W, 1, "", 0x682cc, 0xb0402900, 0}, -{W, 1, "", 0x682d0, 0xb040b060, 0}, -{W, 1, "", 0x682d4, 0x3f80b0c0, 0}, -{W, 1, "", 0x682d8, 0x28801858, 0}, -{W, 1, "", 0x682dc, 0xb060b080, 0}, -{W, 1, "", 0x682e0, 0xb0a0b060, 0}, -{W, 1, "", 0x682e4, 0x18602820, 0}, -{W, 1, "", 0x682e8, 0xb0a02820, 0}, -{W, 1, "", TV_H_CHROMA_59, 0x0000b060, 0}, -{W, 1, "", TV_V_LUMA_0, 0x36403000, 0}, -{W, 1, "", TV_V_LUMA_0+0x4, 0x2d002cc0, 0}, -{W, 1, "", TV_V_LUMA_0+0x8, 0x30003640, 0}, -{W, 1, "", TV_V_LUMA_0+0xc, 0x2d0036c0, 0}, -{W, 1, "", TV_V_LUMA_0+0x10, 0x35c02cc0, 0}, -{W, 1, "", TV_V_LUMA_0+0x14, 0x37403000, 0}, -{W, 1, "", TV_V_LUMA_0+0x18, 0x2c802d40, 0}, -{W, 1, "", TV_V_LUMA_0+0x1c, 0x30003540, 0}, -{W, 1, "", TV_V_LUMA_0+0x20, 0x2d8037c0, 0}, -{W, 1, "", TV_V_LUMA_0+0x24, 0x34c02c40, 0}, -{W, 1, "", TV_V_LUMA_0+0x28, 0x38403000, 0}, -{W, 1, "", TV_V_LUMA_0+0x2c, 0x2bc02e00, 0}, -{W, 1, "", TV_V_LUMA_0+0x30, 0x30003440, 0}, -{W, 1, "", TV_V_LUMA_0+0x34, 0x2e2038c0, 0}, -{W, 1, "", TV_V_LUMA_0+0x38, 0x34002b80, 0}, -{W, 1, "", TV_V_LUMA_0+0x3c, 0x39803000, 0}, -{W, 1, "", TV_V_LUMA_0+0x40, 0x2b402e40, 0}, -{W, 1, "", TV_V_LUMA_0+0x44, 0x30003380, 0}, -{W, 1, "", TV_V_LUMA_0+0x48, 0x2e603a00, 0}, -{W, 1, "", TV_V_LUMA_0+0x4c, 0x33402b00, 0}, -{W, 1, "", TV_V_LUMA_0+0x50, 0x3a803040, 0}, -{W, 1, "", TV_V_LUMA_0+0x54, 0x2a802ea0, 0}, -{W, 1, "", TV_V_LUMA_0+0x58, 0x30403300, 0}, -{W, 1, "", TV_V_LUMA_0+0x5c, 0x2ec03b40, 0}, -{W, 1, "", TV_V_LUMA_0+0x60, 0x32802a40, 0}, -{W, 1, "", TV_V_LUMA_0+0x64, 0x3c003040, 0}, -{W, 1, "", TV_V_LUMA_0+0x68, 0x2a002ec0, 0}, -{W, 1, "", TV_V_LUMA_0+0x6c, 0x30803240, 0}, -{W, 1, "", TV_V_LUMA_0+0x70, 0x2ec03c80, 0}, -{W, 1, "", TV_V_LUMA_0+0x74, 0x320029c0, 0}, -{W, 1, "", TV_V_LUMA_0+0x78, 0x3d403080, 0}, -{W, 1, "", TV_V_LUMA_0+0x7c, 0x29402f00, 0}, -{W, 1, "", 0x68380, 0x308031c0, 0}, -{W, 1, "", 0x68384, 0x2f203dc0, 0}, -{W, 1, "", 0x68388, 0x31802900, 0}, -{W, 1, "", 0x6838c, 0x3e8030c0, 0}, -{W, 1, "", 0x68390, 0x28802f40, 0}, -{W, 1, "", 0x68394, 0x30c03140, 0}, -{W, 1, "", 0x68398, 0x2f203f40, 0}, -{W, 1, "", 0x6839c, 0x31402840, 0}, -{W, 1, "", 0x683a0, 0x28003100, 0}, -{W, 1, "", 0x683a4, 0x28002f00, 0}, -{W, 1, "", TV_V_LUMA_42, 0x00003100, 0}, -{W, 1, "", TV_V_CHROMA_0, 0x36403000, 0}, -{W, 1, "", TV_V_CHROMA_0+0x4, 0x2d002cc0, 0}, -{W, 1, "", TV_V_CHROMA_0+0x8, 0x30003640, 0}, -{W, 1, "", TV_V_CHROMA_0+0xc, 0x2d0036c0, 0}, -{W, 1, "", TV_V_CHROMA_0+0x10, 0x35c02cc0, 0}, -{W, 1, "", TV_V_CHROMA_0+0x14, 0x37403000, 0}, -{W, 1, "", TV_V_CHROMA_0+0x18, 0x2c802d40, 0}, -{W, 1, "", TV_V_CHROMA_0+0x1c, 0x30003540, 0}, -{W, 1, "", TV_V_CHROMA_0+0x20, 0x2d8037c0, 0}, -{W, 1, "", TV_V_CHROMA_0+0x24, 0x34c02c40, 0}, -{W, 1, "", TV_V_CHROMA_0+0x28, 0x38403000, 0}, -{W, 1, "", TV_V_CHROMA_0+0x2c, 0x2bc02e00, 0}, -{W, 1, "", TV_V_CHROMA_0+0x30, 0x30003440, 0}, -{W, 1, "", TV_V_CHROMA_0+0x34, 0x2e2038c0, 0}, -{W, 1, "", TV_V_CHROMA_0+0x38, 0x34002b80, 0}, -{W, 1, "", TV_V_CHROMA_0+0x3c, 0x39803000, 0}, -{W, 1, "", TV_V_CHROMA_0+0x40, 0x2b402e40, 0}, -{W, 1, "", TV_V_CHROMA_0+0x44, 0x30003380, 0}, -{W, 1, "", TV_V_CHROMA_0+0x48, 0x2e603a00, 0}, -{W, 1, "", TV_V_CHROMA_0+0x4c, 0x33402b00, 0}, -{W, 1, "", TV_V_CHROMA_0+0x50, 0x3a803040, 0}, -{W, 1, "", TV_V_CHROMA_0+0x54, 0x2a802ea0, 0}, -{W, 1, "", TV_V_CHROMA_0+0x58, 0x30403300, 0}, -{W, 1, "", TV_V_CHROMA_0+0x5c, 0x2ec03b40, 0}, -{W, 1, "", TV_V_CHROMA_0+0x60, 0x32802a40, 0}, -{W, 1, "", TV_V_CHROMA_0+0x64, 0x3c003040, 0}, -{W, 1, "", TV_V_CHROMA_0+0x68, 0x2a002ec0, 0}, -{W, 1, "", TV_V_CHROMA_0+0x6c, 0x30803240, 0}, -{W, 1, "", TV_V_CHROMA_0+0x70, 0x2ec03c80, 0}, -{W, 1, "", TV_V_CHROMA_0+0x74, 0x320029c0, 0}, -{W, 1, "", TV_V_CHROMA_0+0x78, 0x3d403080, 0}, -{W, 1, "", TV_V_CHROMA_0+0x7c, 0x29402f00, 0}, -{W, 1, "", 0x68480, 0x308031c0, 0}, -{W, 1, "", 0x68484, 0x2f203dc0, 0}, -{W, 1, "", 0x68488, 0x31802900, 0}, -{W, 1, "", 0x6848c, 0x3e8030c0, 0}, -{W, 1, "", 0x68490, 0x28802f40, 0}, -{W, 1, "", 0x68494, 0x30c03140, 0}, -{W, 1, "", 0x68498, 0x2f203f40, 0}, -{W, 1, "", 0x6849c, 0x31402840, 0}, -{W, 1, "", 0x684a0, 0x28003100, 0}, -{W, 1, "", 0x684a4, 0x28002f00, 0}, -{W, 1, "", TV_V_CHROMA_42, 0x00003100, 0}, -{R, 1, "", TV_DAC, 0x70000000, 0}, -{W, 1, "", TV_DAC, 0x00000000, 0}, -{W, 1, "", TV_CTL, 0x000c0000, 0}, -{R, 2, "", DSPARB, (DSPARB_CSTART_SHIFT & 0x4) | 0x00001d9c, 0}, -{W, 1, "", INSTPM+0x20, FW_BLC_SELF_EN_MASK | 0x80000000, 0}, -{W, 1, "", INSTPM+0x20, 0x0001002f, 0}, -{W, 1, "", FW_BLC, 0x0101011a, 0}, -{W, 1, "", FW_BLC2, 0x00000102, 0}, -{W, 1, "", INSTPM+0x20, FW_BLC_SELF_EN_MASK | 0x80008000, 0}, -{R, 1, "", PP_CONTROL, 0xabcd0000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _DPLL_A, 0x94020003, 0}, -{W, 3, "", _DPLL_A, 0x94020003, 0}, -{R, 1, "", _DPLL_A, 0x94020003, 0}, -{R, 2, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _DSPBCNTR, 0x58000000, 0}, -{W, 1, "", _DSPBCNTR, 0xd8000000, 0}, -{R, 1, "", _DSPBADDR, 0x00020000, 0}, -{W, 1, "", _DSPBADDR, 0x00020000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{W, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 2, "", _PIPEASTAT, 0x00000000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{W, 1, "", _PALETTE_A, 0x00000000, 0}, -{W, 1, "", _PALETTE_A+0x4, 0x00010101, 0}, -{W, 1, "", _PALETTE_A+0x8, 0x00020202, 0}, -{W, 1, "", _PALETTE_A+0xc, 0x00030303, 0}, -{W, 1, "", _PALETTE_A+0x10, 0x00040404, 0}, -{W, 1, "", _PALETTE_A+0x14, 0x00050505, 0}, -{W, 1, "", _PALETTE_A+0x18, 0x00060606, 0}, -{W, 1, "", _PALETTE_A+0x1c, 0x00070707, 0}, -{W, 1, "", _PALETTE_A+0x20, 0x00080808, 0}, -{W, 1, "", _PALETTE_A+0x24, 0x00090909, 0}, -{W, 1, "", _PALETTE_A+0x28, 0x000a0a0a, 0}, -{W, 1, "", _PALETTE_A+0x2c, 0x000b0b0b, 0}, -{W, 1, "", _PALETTE_A+0x30, 0x000c0c0c, 0}, -{W, 1, "", _PALETTE_A+0x34, 0x000d0d0d, 0}, -{W, 1, "", _PALETTE_A+0x38, 0x000e0e0e, 0}, -{W, 1, "", _PALETTE_A+0x3c, 0x000f0f0f, 0}, -{W, 1, "", _PALETTE_A+0x40, 0x00101010, 0}, -{W, 1, "", _PALETTE_A+0x44, 0x00111111, 0}, -{W, 1, "", _PALETTE_A+0x48, 0x00121212, 0}, -{W, 1, "", _PALETTE_A+0x4c, 0x00131313, 0}, -{W, 1, "", _PALETTE_A+0x50, 0x00141414, 0}, -{W, 1, "", _PALETTE_A+0x54, 0x00151515, 0}, -{W, 1, "", _PALETTE_A+0x58, 0x00161616, 0}, -{W, 1, "", _PALETTE_A+0x5c, 0x00171717, 0}, -{W, 1, "", _PALETTE_A+0x60, 0x00181818, 0}, -{W, 1, "", _PALETTE_A+0x64, 0x00191919, 0}, -{W, 1, "", _PALETTE_A+0x68, 0x001a1a1a, 0}, -{W, 1, "", _PALETTE_A+0x6c, 0x001b1b1b, 0}, -{W, 1, "", _PALETTE_A+0x70, 0x001c1c1c, 0}, -{W, 1, "", _PALETTE_A+0x74, 0x001d1d1d, 0}, -{W, 1, "", _PALETTE_A+0x78, 0x001e1e1e, 0}, -{W, 1, "", _PALETTE_A+0x7c, 0x001f1f1f, 0}, -{W, 1, "", 0xa080, 0x00202020, 0}, -{W, 1, "", 0xa084, 0x00212121, 0}, -{W, 1, "", 0xa088, 0x00222222, 0}, -{W, 1, "", 0xa08c, 0x00232323, 0}, -{W, 1, "", 0xa090, 0x00242424, 0}, -{W, 1, "", 0xa094, 0x00252525, 0}, -{W, 1, "", 0xa098, 0x00262626, 0}, -{W, 1, "", 0xa09c, 0x00272727, 0}, -{W, 1, "", 0xa0a0, 0x00282828, 0}, -{W, 1, "", 0xa0a4, 0x00292929, 0}, -{W, 1, "", 0xa0a8, 0x002a2a2a, 0}, -{W, 1, "", 0xa0ac, 0x002b2b2b, 0}, -{W, 1, "", 0xa0b0, 0x002c2c2c, 0}, -{W, 1, "", 0xa0b4, 0x002d2d2d, 0}, -{W, 1, "", 0xa0b8, 0x002e2e2e, 0}, -{W, 1, "", 0xa0bc, 0x002f2f2f, 0}, -{W, 1, "", 0xa0c0, 0x00303030, 0}, -{W, 1, "", 0xa0c4, 0x00313131, 0}, -{W, 1, "", 0xa0c8, 0x00323232, 0}, -{W, 1, "", 0xa0cc, 0x00333333, 0}, -{W, 1, "", 0xa0d0, 0x00343434, 0}, -{W, 1, "", 0xa0d4, 0x00353535, 0}, -{W, 1, "", 0xa0d8, 0x00363636, 0}, -{W, 1, "", 0xa0dc, 0x00373737, 0}, -{W, 1, "", 0xa0e0, 0x00383838, 0}, -{W, 1, "", 0xa0e4, 0x00393939, 0}, -{W, 1, "", 0xa0e8, 0x003a3a3a, 0}, -{W, 1, "", 0xa0ec, 0x003b3b3b, 0}, -{W, 1, "", 0xa0f0, 0x003c3c3c, 0}, -{W, 1, "", 0xa0f4, 0x003d3d3d, 0}, -{W, 1, "", 0xa0f8, 0x003e3e3e, 0}, -{W, 1, "", 0xa0fc, 0x003f3f3f, 0}, -{W, 1, "", 0xa100, 0x00404040, 0}, -{W, 1, "", 0xa104, 0x00414141, 0}, -{W, 1, "", 0xa108, 0x00424242, 0}, -{W, 1, "", 0xa10c, 0x00434343, 0}, -{W, 1, "", 0xa110, 0x00444444, 0}, -{W, 1, "", 0xa114, 0x00454545, 0}, -{W, 1, "", 0xa118, 0x00464646, 0}, -{W, 1, "", 0xa11c, 0x00474747, 0}, -{W, 1, "", 0xa120, 0x00484848, 0}, -{W, 1, "", 0xa124, 0x00494949, 0}, -{W, 1, "", 0xa128, 0x004a4a4a, 0}, -{W, 1, "", 0xa12c, 0x004b4b4b, 0}, -{W, 1, "", 0xa130, 0x004c4c4c, 0}, -{W, 1, "", 0xa134, 0x004d4d4d, 0}, -{W, 1, "", 0xa138, 0x004e4e4e, 0}, -{W, 1, "", 0xa13c, 0x004f4f4f, 0}, -{W, 1, "", 0xa140, 0x00505050, 0}, -{W, 1, "", 0xa144, 0x00515151, 0}, -{W, 1, "", 0xa148, 0x00525252, 0}, -{W, 1, "", 0xa14c, 0x00535353, 0}, -{W, 1, "", 0xa150, 0x00545454, 0}, -{W, 1, "", 0xa154, 0x00555555, 0}, -{W, 1, "", 0xa158, 0x00565656, 0}, -{W, 1, "", 0xa15c, 0x00575757, 0}, -{W, 1, "", 0xa160, 0x00585858, 0}, -{W, 1, "", 0xa164, 0x00595959, 0}, -{W, 1, "", 0xa168, 0x005a5a5a, 0}, -{W, 1, "", 0xa16c, 0x005b5b5b, 0}, -{W, 1, "", 0xa170, 0x005c5c5c, 0}, -{W, 1, "", 0xa174, 0x005d5d5d, 0}, -{W, 1, "", 0xa178, 0x005e5e5e, 0}, -{W, 1, "", 0xa17c, 0x005f5f5f, 0}, -{W, 1, "", 0xa180, 0x00606060, 0}, -{W, 1, "", 0xa184, 0x00616161, 0}, -{W, 1, "", FORCEWAKE_MT, 0x00626262, 0}, -{W, 1, "", FORCEWAKE, 0x00636363, 0}, -{W, 1, "", 0xa190, 0x00646464, 0}, -{W, 1, "", 0xa194, 0x00656565, 0}, -{W, 1, "", 0xa198, 0x00666666, 0}, -{W, 1, "", 0xa19c, 0x00676767, 0}, -{W, 1, "", 0xa1a0, 0x00686868, 0}, -{W, 1, "", 0xa1a4, 0x00696969, 0}, -{W, 1, "", 0xa1a8, 0x006a6a6a, 0}, -{W, 1, "", 0xa1ac, 0x006b6b6b, 0}, -{W, 1, "", 0xa1b0, 0x006c6c6c, 0}, -{W, 1, "", 0xa1b4, 0x006d6d6d, 0}, -{W, 1, "", 0xa1b8, 0x006e6e6e, 0}, -{W, 1, "", 0xa1bc, 0x006f6f6f, 0}, -{W, 1, "", 0xa1c0, 0x00707070, 0}, -{W, 1, "", 0xa1c4, 0x00717171, 0}, -{W, 1, "", 0xa1c8, 0x00727272, 0}, -{W, 1, "", 0xa1cc, 0x00737373, 0}, -{W, 1, "", 0xa1d0, 0x00747474, 0}, -{W, 1, "", 0xa1d4, 0x00757575, 0}, -{W, 1, "", 0xa1d8, 0x00767676, 0}, -{W, 1, "", 0xa1dc, 0x00777777, 0}, -{W, 1, "", 0xa1e0, 0x00787878, 0}, -{W, 1, "", 0xa1e4, 0x00797979, 0}, -{W, 1, "", 0xa1e8, 0x007a7a7a, 0}, -{W, 1, "", 0xa1ec, 0x007b7b7b, 0}, -{W, 1, "", 0xa1f0, 0x007c7c7c, 0}, -{W, 1, "", 0xa1f4, 0x007d7d7d, 0}, -{W, 1, "", 0xa1f8, 0x007e7e7e, 0}, -{W, 1, "", 0xa1fc, 0x007f7f7f, 0}, -{W, 1, "", 0xa200, 0x00808080, 0}, -{W, 1, "", 0xa204, 0x00818181, 0}, -{W, 1, "", 0xa208, 0x00828282, 0}, -{W, 1, "", 0xa20c, 0x00838383, 0}, -{W, 1, "", 0xa210, 0x00848484, 0}, -{W, 1, "", 0xa214, 0x00858585, 0}, -{W, 1, "", 0xa218, 0x00868686, 0}, -{W, 1, "", 0xa21c, 0x00878787, 0}, -{W, 1, "", 0xa220, 0x00888888, 0}, -{W, 1, "", 0xa224, 0x00898989, 0}, -{W, 1, "", 0xa228, 0x008a8a8a, 0}, -{W, 1, "", 0xa22c, 0x008b8b8b, 0}, -{W, 1, "", 0xa230, 0x008c8c8c, 0}, -{W, 1, "", 0xa234, 0x008d8d8d, 0}, -{W, 1, "", 0xa238, 0x008e8e8e, 0}, -{W, 1, "", 0xa23c, 0x008f8f8f, 0}, -{W, 1, "", 0xa240, 0x00909090, 0}, -{W, 1, "", 0xa244, 0x00919191, 0}, -{W, 1, "", 0xa248, 0x00929292, 0}, -{W, 1, "", 0xa24c, 0x00939393, 0}, -{W, 1, "", 0xa250, 0x00949494, 0}, -{W, 1, "", 0xa254, 0x00959595, 0}, -{W, 1, "", 0xa258, 0x00969696, 0}, -{W, 1, "", 0xa25c, 0x00979797, 0}, -{W, 1, "", 0xa260, 0x00989898, 0}, -{W, 1, "", 0xa264, 0x00999999, 0}, -{W, 1, "", 0xa268, 0x009a9a9a, 0}, -{W, 1, "", 0xa26c, 0x009b9b9b, 0}, -{W, 1, "", 0xa270, 0x009c9c9c, 0}, -{W, 1, "", 0xa274, 0x009d9d9d, 0}, -{W, 1, "", 0xa278, 0x009e9e9e, 0}, -{W, 1, "", 0xa27c, 0x009f9f9f, 0}, -{W, 1, "", 0xa280, 0x00a0a0a0, 0}, -{W, 1, "", 0xa284, 0x00a1a1a1, 0}, -{W, 1, "", 0xa288, 0x00a2a2a2, 0}, -{W, 1, "", 0xa28c, 0x00a3a3a3, 0}, -{W, 1, "", 0xa290, 0x00a4a4a4, 0}, -{W, 1, "", 0xa294, 0x00a5a5a5, 0}, -{W, 1, "", 0xa298, 0x00a6a6a6, 0}, -{W, 1, "", 0xa29c, 0x00a7a7a7, 0}, -{W, 1, "", 0xa2a0, 0x00a8a8a8, 0}, -{W, 1, "", 0xa2a4, 0x00a9a9a9, 0}, -{W, 1, "", 0xa2a8, 0x00aaaaaa, 0}, -{W, 1, "", 0xa2ac, 0x00ababab, 0}, -{W, 1, "", 0xa2b0, 0x00acacac, 0}, -{W, 1, "", 0xa2b4, 0x00adadad, 0}, -{W, 1, "", 0xa2b8, 0x00aeaeae, 0}, -{W, 1, "", 0xa2bc, 0x00afafaf, 0}, -{W, 1, "", 0xa2c0, 0x00b0b0b0, 0}, -{W, 1, "", 0xa2c4, 0x00b1b1b1, 0}, -{W, 1, "", 0xa2c8, 0x00b2b2b2, 0}, -{W, 1, "", 0xa2cc, 0x00b3b3b3, 0}, -{W, 1, "", 0xa2d0, 0x00b4b4b4, 0}, -{W, 1, "", 0xa2d4, 0x00b5b5b5, 0}, -{W, 1, "", 0xa2d8, 0x00b6b6b6, 0}, -{W, 1, "", 0xa2dc, 0x00b7b7b7, 0}, -{W, 1, "", 0xa2e0, 0x00b8b8b8, 0}, -{W, 1, "", 0xa2e4, 0x00b9b9b9, 0}, -{W, 1, "", 0xa2e8, 0x00bababa, 0}, -{W, 1, "", 0xa2ec, 0x00bbbbbb, 0}, -{W, 1, "", 0xa2f0, 0x00bcbcbc, 0}, -{W, 1, "", 0xa2f4, 0x00bdbdbd, 0}, -{W, 1, "", 0xa2f8, 0x00bebebe, 0}, -{W, 1, "", 0xa2fc, 0x00bfbfbf, 0}, -{W, 1, "", 0xa300, 0x00c0c0c0, 0}, -{W, 1, "", 0xa304, 0x00c1c1c1, 0}, -{W, 1, "", 0xa308, 0x00c2c2c2, 0}, -{W, 1, "", 0xa30c, 0x00c3c3c3, 0}, -{W, 1, "", 0xa310, 0x00c4c4c4, 0}, -{W, 1, "", 0xa314, 0x00c5c5c5, 0}, -{W, 1, "", 0xa318, 0x00c6c6c6, 0}, -{W, 1, "", 0xa31c, 0x00c7c7c7, 0}, -{W, 1, "", 0xa320, 0x00c8c8c8, 0}, -{W, 1, "", 0xa324, 0x00c9c9c9, 0}, -{W, 1, "", 0xa328, 0x00cacaca, 0}, -{W, 1, "", 0xa32c, 0x00cbcbcb, 0}, -{W, 1, "", 0xa330, 0x00cccccc, 0}, -{W, 1, "", 0xa334, 0x00cdcdcd, 0}, -{W, 1, "", 0xa338, 0x00cecece, 0}, -{W, 1, "", 0xa33c, 0x00cfcfcf, 0}, -{W, 1, "", 0xa340, 0x00d0d0d0, 0}, -{W, 1, "", 0xa344, 0x00d1d1d1, 0}, -{W, 1, "", 0xa348, 0x00d2d2d2, 0}, -{W, 1, "", 0xa34c, 0x00d3d3d3, 0}, -{W, 1, "", 0xa350, 0x00d4d4d4, 0}, -{W, 1, "", 0xa354, 0x00d5d5d5, 0}, -{W, 1, "", 0xa358, 0x00d6d6d6, 0}, -{W, 1, "", 0xa35c, 0x00d7d7d7, 0}, -{W, 1, "", 0xa360, 0x00d8d8d8, 0}, -{W, 1, "", 0xa364, 0x00d9d9d9, 0}, -{W, 1, "", 0xa368, 0x00dadada, 0}, -{W, 1, "", 0xa36c, 0x00dbdbdb, 0}, -{W, 1, "", 0xa370, 0x00dcdcdc, 0}, -{W, 1, "", 0xa374, 0x00dddddd, 0}, -{W, 1, "", 0xa378, 0x00dedede, 0}, -{W, 1, "", 0xa37c, 0x00dfdfdf, 0}, -{W, 1, "", 0xa380, 0x00e0e0e0, 0}, -{W, 1, "", 0xa384, 0x00e1e1e1, 0}, -{W, 1, "", 0xa388, 0x00e2e2e2, 0}, -{W, 1, "", 0xa38c, 0x00e3e3e3, 0}, -{W, 1, "", 0xa390, 0x00e4e4e4, 0}, -{W, 1, "", 0xa394, 0x00e5e5e5, 0}, -{W, 1, "", 0xa398, 0x00e6e6e6, 0}, -{W, 1, "", 0xa39c, 0x00e7e7e7, 0}, -{W, 1, "", 0xa3a0, 0x00e8e8e8, 0}, -{W, 1, "", 0xa3a4, 0x00e9e9e9, 0}, -{W, 1, "", 0xa3a8, 0x00eaeaea, 0}, -{W, 1, "", 0xa3ac, 0x00ebebeb, 0}, -{W, 1, "", 0xa3b0, 0x00ececec, 0}, -{W, 1, "", 0xa3b4, 0x00ededed, 0}, -{W, 1, "", 0xa3b8, 0x00eeeeee, 0}, -{W, 1, "", 0xa3bc, 0x00efefef, 0}, -{W, 1, "", 0xa3c0, 0x00f0f0f0, 0}, -{W, 1, "", 0xa3c4, 0x00f1f1f1, 0}, -{W, 1, "", 0xa3c8, 0x00f2f2f2, 0}, -{W, 1, "", 0xa3cc, 0x00f3f3f3, 0}, -{W, 1, "", 0xa3d0, 0x00f4f4f4, 0}, -{W, 1, "", 0xa3d4, 0x00f5f5f5, 0}, -{W, 1, "", 0xa3d8, 0x00f6f6f6, 0}, -{W, 1, "", 0xa3dc, 0x00f7f7f7, 0}, -{W, 1, "", 0xa3e0, 0x00f8f8f8, 0}, -{W, 1, "", 0xa3e4, 0x00f9f9f9, 0}, -{W, 1, "", 0xa3e8, 0x00fafafa, 0}, -{W, 1, "", 0xa3ec, 0x00fbfbfb, 0}, -{W, 1, "", 0xa3f0, 0x00fcfcfc, 0}, -{W, 1, "", 0xa3f4, 0x00fdfdfd, 0}, -{W, 1, "", 0xa3f8, 0x00fefefe, 0}, -{W, 1, "", 0xa3fc, 0x00ffffff, 0}, -{R, 1, "", TV_CTL, 0x000c0000, 0}, -{W, 1, "", TV_CTL, 0x800c0000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 2, "", TV_CTL, 0x800c0000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x800c0000, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _PIPEBCONF, 0x00000000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{W, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 2, "", _PIPEASTAT, 0x00000000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 1, "", TV_DAC, 0x70000000, 0}, -{R, 1, "", TV_CTL, 0x800c0000, 0}, -{W, 1, "", TV_CTL, 0x000c0007, 0}, -{W, 1, "", TV_DAC, 0x0f0000aa, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{W, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 2, "", _PIPEASTAT, 0x00000000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 1, "", TV_DAC, 0x7f0000aa, 0}, -{W, 1, "", TV_DAC, 0x70000000, 0}, -{W, 1, "", TV_CTL, 0x800c0000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{W, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 4, "", _PIPEASTAT, 0x00000000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 1, "", TV_CTL, 0x800c0000, 0}, -{W, 1, "", TV_CTL, 0x000c0000, 0}, -{W, 1, "", INSTPM, 0x08000800, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x62029b1b, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6217572c, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x63156af7, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x64137fac, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6510b8c6, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6607c3b5, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x661c804f, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x671a949c, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6818a96d, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6915e1d1, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6a0cec77, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6b04d273, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6c02e710, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _VTOTAL_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6d00fb0c, 0}, -{R, 1, "", _HTOTAL_A, 0x06af04ff, 0}, -{R, 1, "", _VBLANK_A, 0x044f03ff, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _PIPEA_FLIPCOUNT_GM45, 0x6d1b0b04, 0}, -{R, 1, "", _PIPEA_FRMCOUNT_GM45, 0x00000000, 0}, -{R, 1, "", _DSPBCNTR, 0xd8000000, 0}, -{W, 1, "", _DSPBCNTR, 0x58000000, 0}, -{R, 1, "", _DSPBADDR, 0x00020000, 0}, -{W, 1, "", _DSPBADDR, 0x00020000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{W, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 2, "", _PIPEASTAT, 0x00000000, 0}, -{R, 1, "", _PIPEASTAT, PIPE_VSYNC_INTERRUPT_STATUS | PIPE_VBLANK_INTERRUPT_STATUS | PIPE_OVERLAY_UPDATED_STATUS | 0x00000203, 0}, -{R, 1, "", _DSPACNTR, 0x00000000, 0}, -{R, 1, "", _DSPBCNTR, 0x58000000, 0}, -{R, 1, "", _PIPEACONF, PIPECONF_ENABLE | 0x80000000, 0}, -{W, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 2, "", _PIPEADSL, 0x000003ff, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", _DPLL_A, 0x94020003, 0}, -{W, 1, "", _DPLL_A, 0x14020003, 0}, -{R, 2, "", DSPARB, (DSPARB_CSTART_SHIFT & 0x4) | 0x00001d9c, 0}, -{W, 1, "", INSTPM+0x20, FW_BLC_SELF_EN_MASK | 0x80000000, 0}, -{W, 1, "", FW_BLC, 0x011d011a, 0}, -{W, 1, "", FW_BLC2, 0x00000102, 0}, -{R, 1, "", _DSPBCNTR, 0x58000000, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x000c0000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x000c0000, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", _PIPEBCONF, 0x00000000, 0}, -{M, 1, "fbcon:inteldrmfb (fb0) is primary device", 0x0, 0x0, 0}, -{R, 1, "", _PIPEBCONF, 0x00000000, 0}, -{R, 2, "", LVDS, 0x40000000, 0}, -{W, 1, "", _FPB0, 0x00020e09, 0}, -{W, 1, "", _FPB1, FP_M1_DIV_SHIFT | DPLLA_INPUT_BUFFER_ENABLE | VF_UNIT_CLOCK_GATE_DISABLE | 0x00020e09, 0}, -{W, 1, "", _DPLL_B, DPLL_VGA_MODE_DIS | DPLLB_MODE_LVDS | 0x18046000, 0}, -{R, 1, "", LVDS, 0x40000000, 0}, -{W, 1, "", LVDS, LVDS_ON | PLL_P1_DIVIDE_BY_TWO | DISPLAY_RATE_SELECT_FPA1 | 0xc0300300, 0}, -{W, 2, "", _DPLL_B, DPLL_VCO_ENABLE | DPLL_VGA_MODE_DIS | DPLLB_MODE_LVDS | 0x98046000, 0}, -{R, 1, "", _PIPEBCONF, 0x00000000, 0}, -{W, 1, "", _HTOTAL_B, 0x053f03ff, 0}, -{W, 1, "", _HBLANK_B, 0x053f03ff, 0}, -{W, 1, "", _HSYNC_B, 0x049f0417, 0}, -{W, 1, "", _VTOTAL_B, 0x032502ff, 0}, -{W, 1, "", _VBLANK_B, 0x032502ff, 0}, -{W, 1, "", _VSYNC_B, 0x03080302, 0}, -{W, 1, "", _PIPEBSRC, 0x03ff02ff, 0}, -{W, 1, "", _DSPASIZE, 0x02ff03ff, 0}, -{W, 1, "", _DSPASTRIDE+0x4, 0x00000000, 0}, -{W, 1, "", _PIPEBCONF, 0x00000000, 0}, -{R, 1, "", _DPLL_B, DPLL_VCO_ENABLE | DPLL_VGA_MODE_DIS | DPLLB_MODE_LVDS | 0x98046000, 0}, -{R, 1, "", _PIPEBCONF, 0x00000000, 0}, -{W, 1, "", _PIPEBCONF, 0x80000000, 0}, -{R, 1, "", _PIPEBSTAT, 0x00000040, 0}, -{W, 1, "", _PIPEBSTAT, 0x00000042, 0}, -{R, 1, "", _PIPEBSTAT, 0x00000000, 0}, -{R, 2, "", _PIPEBSTAT, 0x00000202, 0}, -{W, 1, "", _PIPEBSTAT, 0x00000202, 0}, -{R, 3, "", _PIPEBSTAT, 0x00000000, 0}, -{R, 1, "", _PIPEBSTAT, 0x00000202, 0}, -{W, 1, "", _DSPACNTR, 0x41000000, 0}, -{R, 1, "", _DSPACNTR, 0x41000000, 0}, -{W, 1, "", _DSPACNTR, 0x59000000, 0}, -{W, 1, "", _DSPASTRIDE, 0x00001000, 0}, -{W, 1, "", _DSPAADDR, 0x00020000, 0}, -{R, 2, "", DSPARB, (DSPARB_CSTART_SHIFT & 0x4) | 0x00001d9c, 0}, -{W, 1, "", INSTPM+0x20, FW_BLC_SELF_EN_MASK | 0x80000000, 0}, -{W, 1, "", FW_BLC, 0x011d011a, 0}, -{W, 1, "", FW_BLC2, 0x00000102, 0}, -{R, 2, "", DSPARB, (DSPARB_CSTART_SHIFT & 0x4) | 0x00001d9c, 0}, -{W, 1, "", INSTPM+0x20, FW_BLC_SELF_EN_MASK | 0x80000000, 0}, -{W, 1, "", INSTPM+0x20, 0x0001003f, 0}, -{W, 1, "", FW_BLC, 0x011d0109, 0}, -{W, 1, "", FW_BLC2, 0x00000102, 0}, -{W, 1, "", INSTPM+0x20, FW_BLC_SELF_EN_MASK | 0x80008000, 0}, -{R, 1, "", PP_CONTROL, 0xabcd0000, 0}, -{R, 1, "", LVDS, LVDS_ON | PLL_P1_DIVIDE_BY_TWO | DISPLAY_RATE_SELECT_FPA1 | 0xc0300300, 0}, -{R, 1, "", _DPLL_B, DPLL_VCO_ENABLE | DPLL_VGA_MODE_DIS | DPLLB_MODE_LVDS | 0x98046000, 0}, -{W, 3, "", _DPLL_B, DPLL_VCO_ENABLE | DPLL_VGA_MODE_DIS | DPLLB_MODE_LVDS | 0x98046000, 0}, -{R, 1, "", _DPLL_B, DPLL_VCO_ENABLE | DPLL_VGA_MODE_DIS | DPLLB_MODE_LVDS | 0x98046000, 0}, -{R, 2, "", _PIPEBCONF, 0x80000000, 0}, -{R, 1, "", _DSPACNTR, 0x59000000, 0}, -{W, 1, "", _DSPACNTR, 0xd9000000, 0}, -{R, 1, "", _DSPAADDR, 0x00020000, 0}, -{W, 1, "", _DSPAADDR, 0x00020000, 0}, -{R, 1, "", _PIPEBSTAT, 0x00000202, 0}, -{W, 1, "", _PIPEBSTAT, 0x00000202, 0}, -{R, 3, "", _PIPEBSTAT, 0x00000000, 0}, -{R, 1, "", _PIPEBSTAT, 0x00000202, 0}, -{W, 1, "", _PALETTE_B, 0x00000000, 0}, -{W, 1, "", _PALETTE_B+0x4, 0x00010101, 0}, -{W, 1, "", _PALETTE_B+0x8, 0x00020202, 0}, -{W, 1, "", _PALETTE_B+0xc, 0x00030303, 0}, -{W, 1, "", _PALETTE_B+0x10, 0x00040404, 0}, -{W, 1, "", _PALETTE_B+0x14, 0x00050505, 0}, -{W, 1, "", _PALETTE_B+0x18, 0x00060606, 0}, -{W, 1, "", _PALETTE_B+0x1c, 0x00070707, 0}, -{W, 1, "", _PALETTE_B+0x20, 0x00080808, 0}, -{W, 1, "", _PALETTE_B+0x24, 0x00090909, 0}, -{W, 1, "", _PALETTE_B+0x28, 0x000a0a0a, 0}, -{W, 1, "", _PALETTE_B+0x2c, 0x000b0b0b, 0}, -{W, 1, "", _PALETTE_B+0x30, 0x000c0c0c, 0}, -{W, 1, "", _PALETTE_B+0x34, 0x000d0d0d, 0}, -{W, 1, "", _PALETTE_B+0x38, 0x000e0e0e, 0}, -{W, 1, "", _PALETTE_B+0x3c, 0x000f0f0f, 0}, -{W, 1, "", _PALETTE_B+0x40, 0x00101010, 0}, -{W, 1, "", _PALETTE_B+0x44, 0x00111111, 0}, -{W, 1, "", _PALETTE_B+0x48, 0x00121212, 0}, -{W, 1, "", _PALETTE_B+0x4c, 0x00131313, 0}, -{W, 1, "", _PALETTE_B+0x50, 0x00141414, 0}, -{W, 1, "", _PALETTE_B+0x54, 0x00151515, 0}, -{W, 1, "", _PALETTE_B+0x58, 0x00161616, 0}, -{W, 1, "", _PALETTE_B+0x5c, 0x00171717, 0}, -{W, 1, "", _PALETTE_B+0x60, 0x00181818, 0}, -{W, 1, "", _PALETTE_B+0x64, 0x00191919, 0}, -{W, 1, "", _PALETTE_B+0x68, 0x001a1a1a, 0}, -{W, 1, "", _PALETTE_B+0x6c, 0x001b1b1b, 0}, -{W, 1, "", _PALETTE_B+0x70, 0x001c1c1c, 0}, -{W, 1, "", _PALETTE_B+0x74, 0x001d1d1d, 0}, -{W, 1, "", _PALETTE_B+0x78, 0x001e1e1e, 0}, -{W, 1, "", _PALETTE_B+0x7c, 0x001f1f1f, 0}, -{W, 1, "", 0xa880, 0x00202020, 0}, -{W, 1, "", 0xa884, 0x00212121, 0}, -{W, 1, "", 0xa888, 0x00222222, 0}, -{W, 1, "", 0xa88c, 0x00232323, 0}, -{W, 1, "", 0xa890, 0x00242424, 0}, -{W, 1, "", 0xa894, 0x00252525, 0}, -{W, 1, "", 0xa898, 0x00262626, 0}, -{W, 1, "", 0xa89c, 0x00272727, 0}, -{W, 1, "", 0xa8a0, 0x00282828, 0}, -{W, 1, "", 0xa8a4, 0x00292929, 0}, -{W, 1, "", 0xa8a8, 0x002a2a2a, 0}, -{W, 1, "", 0xa8ac, 0x002b2b2b, 0}, -{W, 1, "", 0xa8b0, 0x002c2c2c, 0}, -{W, 1, "", 0xa8b4, 0x002d2d2d, 0}, -{W, 1, "", 0xa8b8, 0x002e2e2e, 0}, -{W, 1, "", 0xa8bc, 0x002f2f2f, 0}, -{W, 1, "", 0xa8c0, 0x00303030, 0}, -{W, 1, "", 0xa8c4, 0x00313131, 0}, -{W, 1, "", 0xa8c8, 0x00323232, 0}, -{W, 1, "", 0xa8cc, 0x00333333, 0}, -{W, 1, "", 0xa8d0, 0x00343434, 0}, -{W, 1, "", 0xa8d4, 0x00353535, 0}, -{W, 1, "", 0xa8d8, 0x00363636, 0}, -{W, 1, "", 0xa8dc, 0x00373737, 0}, -{W, 1, "", 0xa8e0, 0x00383838, 0}, -{W, 1, "", 0xa8e4, 0x00393939, 0}, -{W, 1, "", 0xa8e8, 0x003a3a3a, 0}, -{W, 1, "", 0xa8ec, 0x003b3b3b, 0}, -{W, 1, "", 0xa8f0, 0x003c3c3c, 0}, -{W, 1, "", 0xa8f4, 0x003d3d3d, 0}, -{W, 1, "", 0xa8f8, 0x003e3e3e, 0}, -{W, 1, "", 0xa8fc, 0x003f3f3f, 0}, -{W, 1, "", 0xa900, 0x00404040, 0}, -{W, 1, "", 0xa904, 0x00414141, 0}, -{W, 1, "", 0xa908, 0x00424242, 0}, -{W, 1, "", 0xa90c, 0x00434343, 0}, -{W, 1, "", 0xa910, 0x00444444, 0}, -{W, 1, "", 0xa914, 0x00454545, 0}, -{W, 1, "", 0xa918, 0x00464646, 0}, -{W, 1, "", 0xa91c, 0x00474747, 0}, -{W, 1, "", 0xa920, 0x00484848, 0}, -{W, 1, "", 0xa924, 0x00494949, 0}, -{W, 1, "", 0xa928, 0x004a4a4a, 0}, -{W, 1, "", 0xa92c, 0x004b4b4b, 0}, -{W, 1, "", 0xa930, 0x004c4c4c, 0}, -{W, 1, "", 0xa934, 0x004d4d4d, 0}, -{W, 1, "", 0xa938, 0x004e4e4e, 0}, -{W, 1, "", 0xa93c, 0x004f4f4f, 0}, -{W, 1, "", 0xa940, 0x00505050, 0}, -{W, 1, "", 0xa944, 0x00515151, 0}, -{W, 1, "", 0xa948, 0x00525252, 0}, -{W, 1, "", 0xa94c, 0x00535353, 0}, -{W, 1, "", 0xa950, 0x00545454, 0}, -{W, 1, "", 0xa954, 0x00555555, 0}, -{W, 1, "", 0xa958, 0x00565656, 0}, -{W, 1, "", 0xa95c, 0x00575757, 0}, -{W, 1, "", 0xa960, 0x00585858, 0}, -{W, 1, "", 0xa964, 0x00595959, 0}, -{W, 1, "", 0xa968, 0x005a5a5a, 0}, -{W, 1, "", 0xa96c, 0x005b5b5b, 0}, -{W, 1, "", 0xa970, 0x005c5c5c, 0}, -{W, 1, "", 0xa974, 0x005d5d5d, 0}, -{W, 1, "", 0xa978, 0x005e5e5e, 0}, -{W, 1, "", 0xa97c, 0x005f5f5f, 0}, -{W, 1, "", 0xa980, 0x00606060, 0}, -{W, 1, "", 0xa984, 0x00616161, 0}, -{W, 1, "", 0xa988, 0x00626262, 0}, -{W, 1, "", 0xa98c, 0x00636363, 0}, -{W, 1, "", 0xa990, 0x00646464, 0}, -{W, 1, "", 0xa994, 0x00656565, 0}, -{W, 1, "", 0xa998, 0x00666666, 0}, -{W, 1, "", 0xa99c, 0x00676767, 0}, -{W, 1, "", 0xa9a0, 0x00686868, 0}, -{W, 1, "", 0xa9a4, 0x00696969, 0}, -{W, 1, "", 0xa9a8, 0x006a6a6a, 0}, -{W, 1, "", 0xa9ac, 0x006b6b6b, 0}, -{W, 1, "", 0xa9b0, 0x006c6c6c, 0}, -{W, 1, "", 0xa9b4, 0x006d6d6d, 0}, -{W, 1, "", 0xa9b8, 0x006e6e6e, 0}, -{W, 1, "", 0xa9bc, 0x006f6f6f, 0}, -{W, 1, "", 0xa9c0, 0x00707070, 0}, -{W, 1, "", 0xa9c4, 0x00717171, 0}, -{W, 1, "", 0xa9c8, 0x00727272, 0}, -{W, 1, "", 0xa9cc, 0x00737373, 0}, -{W, 1, "", 0xa9d0, 0x00747474, 0}, -{W, 1, "", 0xa9d4, 0x00757575, 0}, -{W, 1, "", 0xa9d8, 0x00767676, 0}, -{W, 1, "", 0xa9dc, 0x00777777, 0}, -{W, 1, "", 0xa9e0, 0x00787878, 0}, -{W, 1, "", 0xa9e4, 0x00797979, 0}, -{W, 1, "", 0xa9e8, 0x007a7a7a, 0}, -{W, 1, "", 0xa9ec, 0x007b7b7b, 0}, -{W, 1, "", 0xa9f0, 0x007c7c7c, 0}, -{W, 1, "", 0xa9f4, 0x007d7d7d, 0}, -{W, 1, "", 0xa9f8, 0x007e7e7e, 0}, -{W, 1, "", 0xa9fc, 0x007f7f7f, 0}, -{W, 1, "", 0xaa00, 0x00808080, 0}, -{W, 1, "", 0xaa04, 0x00818181, 0}, -{W, 1, "", 0xaa08, 0x00828282, 0}, -{W, 1, "", 0xaa0c, 0x00838383, 0}, -{W, 1, "", 0xaa10, 0x00848484, 0}, -{W, 1, "", 0xaa14, 0x00858585, 0}, -{W, 1, "", 0xaa18, 0x00868686, 0}, -{W, 1, "", 0xaa1c, 0x00878787, 0}, -{W, 1, "", 0xaa20, 0x00888888, 0}, -{W, 1, "", 0xaa24, 0x00898989, 0}, -{W, 1, "", 0xaa28, 0x008a8a8a, 0}, -{W, 1, "", 0xaa2c, 0x008b8b8b, 0}, -{W, 1, "", 0xaa30, 0x008c8c8c, 0}, -{W, 1, "", 0xaa34, 0x008d8d8d, 0}, -{W, 1, "", 0xaa38, 0x008e8e8e, 0}, -{W, 1, "", 0xaa3c, 0x008f8f8f, 0}, -{W, 1, "", 0xaa40, 0x00909090, 0}, -{W, 1, "", 0xaa44, 0x00919191, 0}, -{W, 1, "", 0xaa48, 0x00929292, 0}, -{W, 1, "", 0xaa4c, 0x00939393, 0}, -{W, 1, "", 0xaa50, 0x00949494, 0}, -{W, 1, "", 0xaa54, 0x00959595, 0}, -{W, 1, "", 0xaa58, 0x00969696, 0}, -{W, 1, "", 0xaa5c, 0x00979797, 0}, -{W, 1, "", 0xaa60, 0x00989898, 0}, -{W, 1, "", 0xaa64, 0x00999999, 0}, -{W, 1, "", 0xaa68, 0x009a9a9a, 0}, -{W, 1, "", 0xaa6c, 0x009b9b9b, 0}, -{W, 1, "", 0xaa70, 0x009c9c9c, 0}, -{W, 1, "", 0xaa74, 0x009d9d9d, 0}, -{W, 1, "", 0xaa78, 0x009e9e9e, 0}, -{W, 1, "", 0xaa7c, 0x009f9f9f, 0}, -{W, 1, "", 0xaa80, 0x00a0a0a0, 0}, -{W, 1, "", 0xaa84, 0x00a1a1a1, 0}, -{W, 1, "", 0xaa88, 0x00a2a2a2, 0}, -{W, 1, "", 0xaa8c, 0x00a3a3a3, 0}, -{W, 1, "", 0xaa90, 0x00a4a4a4, 0}, -{W, 1, "", 0xaa94, 0x00a5a5a5, 0}, -{W, 1, "", 0xaa98, 0x00a6a6a6, 0}, -{W, 1, "", 0xaa9c, 0x00a7a7a7, 0}, -{W, 1, "", 0xaaa0, 0x00a8a8a8, 0}, -{W, 1, "", 0xaaa4, 0x00a9a9a9, 0}, -{W, 1, "", 0xaaa8, 0x00aaaaaa, 0}, -{W, 1, "", 0xaaac, 0x00ababab, 0}, -{W, 1, "", 0xaab0, 0x00acacac, 0}, -{W, 1, "", 0xaab4, 0x00adadad, 0}, -{W, 1, "", 0xaab8, 0x00aeaeae, 0}, -{W, 1, "", 0xaabc, 0x00afafaf, 0}, -{W, 1, "", 0xaac0, 0x00b0b0b0, 0}, -{W, 1, "", 0xaac4, 0x00b1b1b1, 0}, -{W, 1, "", 0xaac8, 0x00b2b2b2, 0}, -{W, 1, "", 0xaacc, 0x00b3b3b3, 0}, -{W, 1, "", 0xaad0, 0x00b4b4b4, 0}, -{W, 1, "", 0xaad4, 0x00b5b5b5, 0}, -{W, 1, "", 0xaad8, 0x00b6b6b6, 0}, -{W, 1, "", 0xaadc, 0x00b7b7b7, 0}, -{W, 1, "", 0xaae0, 0x00b8b8b8, 0}, -{W, 1, "", 0xaae4, 0x00b9b9b9, 0}, -{W, 1, "", 0xaae8, 0x00bababa, 0}, -{W, 1, "", 0xaaec, 0x00bbbbbb, 0}, -{W, 1, "", 0xaaf0, 0x00bcbcbc, 0}, -{W, 1, "", 0xaaf4, 0x00bdbdbd, 0}, -{W, 1, "", 0xaaf8, 0x00bebebe, 0}, -{W, 1, "", 0xaafc, 0x00bfbfbf, 0}, -{W, 1, "", 0xab00, 0x00c0c0c0, 0}, -{W, 1, "", 0xab04, 0x00c1c1c1, 0}, -{W, 1, "", 0xab08, 0x00c2c2c2, 0}, -{W, 1, "", 0xab0c, 0x00c3c3c3, 0}, -{W, 1, "", 0xab10, 0x00c4c4c4, 0}, -{W, 1, "", 0xab14, 0x00c5c5c5, 0}, -{W, 1, "", 0xab18, 0x00c6c6c6, 0}, -{W, 1, "", 0xab1c, 0x00c7c7c7, 0}, -{W, 1, "", 0xab20, 0x00c8c8c8, 0}, -{W, 1, "", 0xab24, 0x00c9c9c9, 0}, -{W, 1, "", 0xab28, 0x00cacaca, 0}, -{W, 1, "", 0xab2c, 0x00cbcbcb, 0}, -{W, 1, "", 0xab30, 0x00cccccc, 0}, -{W, 1, "", 0xab34, 0x00cdcdcd, 0}, -{W, 1, "", 0xab38, 0x00cecece, 0}, -{W, 1, "", 0xab3c, 0x00cfcfcf, 0}, -{W, 1, "", 0xab40, 0x00d0d0d0, 0}, -{W, 1, "", 0xab44, 0x00d1d1d1, 0}, -{W, 1, "", 0xab48, 0x00d2d2d2, 0}, -{W, 1, "", 0xab4c, 0x00d3d3d3, 0}, -{W, 1, "", 0xab50, 0x00d4d4d4, 0}, -{W, 1, "", 0xab54, 0x00d5d5d5, 0}, -{W, 1, "", 0xab58, 0x00d6d6d6, 0}, -{W, 1, "", 0xab5c, 0x00d7d7d7, 0}, -{W, 1, "", 0xab60, 0x00d8d8d8, 0}, -{W, 1, "", 0xab64, 0x00d9d9d9, 0}, -{W, 1, "", 0xab68, 0x00dadada, 0}, -{W, 1, "", 0xab6c, 0x00dbdbdb, 0}, -{W, 1, "", 0xab70, 0x00dcdcdc, 0}, -{W, 1, "", 0xab74, 0x00dddddd, 0}, -{W, 1, "", 0xab78, 0x00dedede, 0}, -{W, 1, "", 0xab7c, 0x00dfdfdf, 0}, -{W, 1, "", 0xab80, 0x00e0e0e0, 0}, -{W, 1, "", 0xab84, 0x00e1e1e1, 0}, -{W, 1, "", 0xab88, 0x00e2e2e2, 0}, -{W, 1, "", 0xab8c, 0x00e3e3e3, 0}, -{W, 1, "", 0xab90, 0x00e4e4e4, 0}, -{W, 1, "", 0xab94, 0x00e5e5e5, 0}, -{W, 1, "", 0xab98, 0x00e6e6e6, 0}, -{W, 1, "", 0xab9c, 0x00e7e7e7, 0}, -{W, 1, "", 0xaba0, 0x00e8e8e8, 0}, -{W, 1, "", 0xaba4, 0x00e9e9e9, 0}, -{W, 1, "", 0xaba8, 0x00eaeaea, 0}, -{W, 1, "", 0xabac, 0x00ebebeb, 0}, -{W, 1, "", 0xabb0, 0x00ececec, 0}, -{W, 1, "", 0xabb4, 0x00ededed, 0}, -{W, 1, "", 0xabb8, 0x00eeeeee, 0}, -{W, 1, "", 0xabbc, 0x00efefef, 0}, -{W, 1, "", 0xabc0, 0x00f0f0f0, 0}, -{W, 1, "", 0xabc4, 0x00f1f1f1, 0}, -{W, 1, "", 0xabc8, 0x00f2f2f2, 0}, -{W, 1, "", 0xabcc, 0x00f3f3f3, 0}, -{W, 1, "", 0xabd0, 0x00f4f4f4, 0}, -{W, 1, "", 0xabd4, 0x00f5f5f5, 0}, -{W, 1, "", 0xabd8, 0x00f6f6f6, 0}, -{W, 1, "", 0xabdc, 0x00f7f7f7, 0}, -{W, 1, "", 0xabe0, 0x00f8f8f8, 0}, -{W, 1, "", 0xabe4, 0x00f9f9f9, 0}, -{W, 1, "", 0xabe8, 0x00fafafa, 0}, -{W, 1, "", 0xabec, 0x00fbfbfb, 0}, -{W, 1, "", 0xabf0, 0x00fcfcfc, 0}, -{W, 1, "", 0xabf4, 0x00fdfdfd, 0}, -{W, 1, "", 0xabf8, 0x00fefefe, 0}, -{W, 1, "", 0xabfc, 0x00ffffff, 0}, -{R, 1, "", LVDS, LVDS_ON | PLL_P1_DIVIDE_BY_TWO | DISPLAY_RATE_SELECT_FPA1 | 0xc0300300, 0}, -{W, 1, "", LVDS, LVDS_ON | PLL_P1_DIVIDE_BY_TWO | DISPLAY_RATE_SELECT_FPA1 | 0xc0300300, 0}, -{W, 1, "", PFIT_PGM_RATIOS, 0x00000000, 0}, -{W, 1, "", PFIT_CONTROL, (PFIT_PIPE_SHIFT & 0x8) | 0x00000008, 0}, -{R, 1, "", PP_CONTROL, 0xabcd0000, 0}, -{W, 1, "", PP_CONTROL, POWER_TARGET_ON | 0xabcd0001, 0}, -{R, 1, "", PP_STATUS, PP_READY | (PP_SEQUENCE_SHIFT & 0x8) | 0x4000000a, 0}, -{R, 1, "", PP_STATUS, PP_ON | PP_READY | PP_SEQUENCE_POWER_UP | (PP_SEQUENCE_SHIFT & 0x8) | 0xd000000a, 0}, -{R, 1, "", BLC_PWM_CTL, 0x00000000, 0}, -{M, 1, "i915:fixme:max PWM is zero", 0x0, 0x0, 0}, -{R, 1, "", BLC_PWM_CTL, 0x00000000, 0}, -{W, 1, "", BLC_PWM_CTL, 0x00000002, 0}, -{R, 2, "", LVDS, LVDS_ON | PLL_P1_DIVIDE_BY_TWO | DISPLAY_RATE_SELECT_FPA1 | 0xc0300300, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x000c0000, 0}, -{R, 1, "", LVDS, LVDS_ON | PLL_P1_DIVIDE_BY_TWO | DISPLAY_RATE_SELECT_FPA1 | 0xc0300300, 0}, -{R, 1, "", _FDI_TXB_CTL, 0x00000000, 0}, -{R, 1, "", TV_CTL, 0x000c0000, 0}, -{R, 1, "", _PIPEACONF, 0x00000000, 0}, -{R, 1, "", _PIPEBCONF, 0x80000000, 0}, -{W, 1, "", _PALETTE_B, 0x00000000, 0}, -{W, 1, "", _PALETTE_B+0x4, 0x00010101, 0}, -{W, 1, "", _PALETTE_B+0x8, 0x00020202, 0}, -{W, 1, "", _PALETTE_B+0xc, 0x00030303, 0}, -{W, 1, "", _PALETTE_B+0x10, 0x00040404, 0}, -{W, 1, "", _PALETTE_B+0x14, 0x00050505, 0}, -{W, 1, "", _PALETTE_B+0x18, 0x00060606, 0}, -{W, 1, "", _PALETTE_B+0x1c, 0x00070707, 0}, -{W, 1, "", _PALETTE_B+0x20, 0x00080808, 0}, -{W, 1, "", _PALETTE_B+0x24, 0x00090909, 0}, -{W, 1, "", _PALETTE_B+0x28, 0x000a0a0a, 0}, -{W, 1, "", _PALETTE_B+0x2c, 0x000b0b0b, 0}, -{W, 1, "", _PALETTE_B+0x30, 0x000c0c0c, 0}, -{W, 1, "", _PALETTE_B+0x34, 0x000d0d0d, 0}, -{W, 1, "", _PALETTE_B+0x38, 0x000e0e0e, 0}, -{W, 1, "", _PALETTE_B+0x3c, 0x000f0f0f, 0}, -{W, 1, "", _PALETTE_B+0x40, 0x00101010, 0}, -{W, 1, "", _PALETTE_B+0x44, 0x00111111, 0}, -{W, 1, "", _PALETTE_B+0x48, 0x00121212, 0}, -{W, 1, "", _PALETTE_B+0x4c, 0x00131313, 0}, -{W, 1, "", _PALETTE_B+0x50, 0x00141414, 0}, -{W, 1, "", _PALETTE_B+0x54, 0x00151515, 0}, -{W, 1, "", _PALETTE_B+0x58, 0x00161616, 0}, -{W, 1, "", _PALETTE_B+0x5c, 0x00171717, 0}, -{W, 1, "", _PALETTE_B+0x60, 0x00181818, 0}, -{W, 1, "", _PALETTE_B+0x64, 0x00191919, 0}, -{W, 1, "", _PALETTE_B+0x68, 0x001a1a1a, 0}, -{W, 1, "", _PALETTE_B+0x6c, 0x001b1b1b, 0}, -{W, 1, "", _PALETTE_B+0x70, 0x001c1c1c, 0}, -{W, 1, "", _PALETTE_B+0x74, 0x001d1d1d, 0}, -{W, 1, "", _PALETTE_B+0x78, 0x001e1e1e, 0}, -{W, 1, "", _PALETTE_B+0x7c, 0x001f1f1f, 0}, -{W, 1, "", 0xa880, 0x00202020, 0}, -{W, 1, "", 0xa884, 0x00212121, 0}, -{W, 1, "", 0xa888, 0x00222222, 0}, -{W, 1, "", 0xa88c, 0x00232323, 0}, -{W, 1, "", 0xa890, 0x00242424, 0}, -{W, 1, "", 0xa894, 0x00252525, 0}, -{W, 1, "", 0xa898, 0x00262626, 0}, -{W, 1, "", 0xa89c, 0x00272727, 0}, -{W, 1, "", 0xa8a0, 0x00282828, 0}, -{W, 1, "", 0xa8a4, 0x00292929, 0}, -{W, 1, "", 0xa8a8, 0x002a2a2a, 0}, -{W, 1, "", 0xa8ac, 0x002b2b2b, 0}, -{W, 1, "", 0xa8b0, 0x002c2c2c, 0}, -{W, 1, "", 0xa8b4, 0x002d2d2d, 0}, -{W, 1, "", 0xa8b8, 0x002e2e2e, 0}, -{W, 1, "", 0xa8bc, 0x002f2f2f, 0}, -{W, 1, "", 0xa8c0, 0x00303030, 0}, -{W, 1, "", 0xa8c4, 0x00313131, 0}, -{W, 1, "", 0xa8c8, 0x00323232, 0}, -{W, 1, "", 0xa8cc, 0x00333333, 0}, -{W, 1, "", 0xa8d0, 0x00343434, 0}, -{W, 1, "", 0xa8d4, 0x00353535, 0}, -{W, 1, "", 0xa8d8, 0x00363636, 0}, -{W, 1, "", 0xa8dc, 0x00373737, 0}, -{W, 1, "", 0xa8e0, 0x00383838, 0}, -{W, 1, "", 0xa8e4, 0x00393939, 0}, -{W, 1, "", 0xa8e8, 0x003a3a3a, 0}, -{W, 1, "", 0xa8ec, 0x003b3b3b, 0}, -{W, 1, "", 0xa8f0, 0x003c3c3c, 0}, -{W, 1, "", 0xa8f4, 0x003d3d3d, 0}, -{W, 1, "", 0xa8f8, 0x003e3e3e, 0}, -{W, 1, "", 0xa8fc, 0x003f3f3f, 0}, -{W, 1, "", 0xa900, 0x00404040, 0}, -{W, 1, "", 0xa904, 0x00414141, 0}, -{W, 1, "", 0xa908, 0x00424242, 0}, -{W, 1, "", 0xa90c, 0x00434343, 0}, -{W, 1, "", 0xa910, 0x00444444, 0}, -{W, 1, "", 0xa914, 0x00454545, 0}, -{W, 1, "", 0xa918, 0x00464646, 0}, -{W, 1, "", 0xa91c, 0x00474747, 0}, -{W, 1, "", 0xa920, 0x00484848, 0}, -{W, 1, "", 0xa924, 0x00494949, 0}, -{W, 1, "", 0xa928, 0x004a4a4a, 0}, -{W, 1, "", 0xa92c, 0x004b4b4b, 0}, -{W, 1, "", 0xa930, 0x004c4c4c, 0}, -{W, 1, "", 0xa934, 0x004d4d4d, 0}, -{W, 1, "", 0xa938, 0x004e4e4e, 0}, -{W, 1, "", 0xa93c, 0x004f4f4f, 0}, -{W, 1, "", 0xa940, 0x00505050, 0}, -{W, 1, "", 0xa944, 0x00515151, 0}, -{W, 1, "", 0xa948, 0x00525252, 0}, -{W, 1, "", 0xa94c, 0x00535353, 0}, -{W, 1, "", 0xa950, 0x00545454, 0}, -{W, 1, "", 0xa954, 0x00555555, 0}, -{W, 1, "", 0xa958, 0x00565656, 0}, -{W, 1, "", 0xa95c, 0x00575757, 0}, -{W, 1, "", 0xa960, 0x00585858, 0}, -{W, 1, "", 0xa964, 0x00595959, 0}, -{W, 1, "", 0xa968, 0x005a5a5a, 0}, -{W, 1, "", 0xa96c, 0x005b5b5b, 0}, -{W, 1, "", 0xa970, 0x005c5c5c, 0}, -{W, 1, "", 0xa974, 0x005d5d5d, 0}, -{W, 1, "", 0xa978, 0x005e5e5e, 0}, -{W, 1, "", 0xa97c, 0x005f5f5f, 0}, -{W, 1, "", 0xa980, 0x00606060, 0}, -{W, 1, "", 0xa984, 0x00616161, 0}, -{W, 1, "", 0xa988, 0x00626262, 0}, -{W, 1, "", 0xa98c, 0x00636363, 0}, -{W, 1, "", 0xa990, 0x00646464, 0}, -{W, 1, "", 0xa994, 0x00656565, 0}, -{W, 1, "", 0xa998, 0x00666666, 0}, -{W, 1, "", 0xa99c, 0x00676767, 0}, -{W, 1, "", 0xa9a0, 0x00686868, 0}, -{W, 1, "", 0xa9a4, 0x00696969, 0}, -{W, 1, "", 0xa9a8, 0x006a6a6a, 0}, -{W, 1, "", 0xa9ac, 0x006b6b6b, 0}, -{W, 1, "", 0xa9b0, 0x006c6c6c, 0}, -{W, 1, "", 0xa9b4, 0x006d6d6d, 0}, -{W, 1, "", 0xa9b8, 0x006e6e6e, 0}, -{W, 1, "", 0xa9bc, 0x006f6f6f, 0}, -{W, 1, "", 0xa9c0, 0x00707070, 0}, -{W, 1, "", 0xa9c4, 0x00717171, 0}, -{W, 1, "", 0xa9c8, 0x00727272, 0}, -{W, 1, "", 0xa9cc, 0x00737373, 0}, -{W, 1, "", 0xa9d0, 0x00747474, 0}, -{W, 1, "", 0xa9d4, 0x00757575, 0}, -{W, 1, "", 0xa9d8, 0x00767676, 0}, -{W, 1, "", 0xa9dc, 0x00777777, 0}, -{W, 1, "", 0xa9e0, 0x00787878, 0}, -{W, 1, "", 0xa9e4, 0x00797979, 0}, -{W, 1, "", 0xa9e8, 0x007a7a7a, 0}, -{W, 1, "", 0xa9ec, 0x007b7b7b, 0}, -{W, 1, "", 0xa9f0, 0x007c7c7c, 0}, -{W, 1, "", 0xa9f4, 0x007d7d7d, 0}, -{W, 1, "", 0xa9f8, 0x007e7e7e, 0}, -{W, 1, "", 0xa9fc, 0x007f7f7f, 0}, -{W, 1, "", 0xaa00, 0x00808080, 0}, -{W, 1, "", 0xaa04, 0x00818181, 0}, -{W, 1, "", 0xaa08, 0x00828282, 0}, -{W, 1, "", 0xaa0c, 0x00838383, 0}, -{W, 1, "", 0xaa10, 0x00848484, 0}, -{W, 1, "", 0xaa14, 0x00858585, 0}, -{W, 1, "", 0xaa18, 0x00868686, 0}, -{W, 1, "", 0xaa1c, 0x00878787, 0}, -{W, 1, "", 0xaa20, 0x00888888, 0}, -{W, 1, "", 0xaa24, 0x00898989, 0}, -{W, 1, "", 0xaa28, 0x008a8a8a, 0}, -{W, 1, "", 0xaa2c, 0x008b8b8b, 0}, -{W, 1, "", 0xaa30, 0x008c8c8c, 0}, -{W, 1, "", 0xaa34, 0x008d8d8d, 0}, -{W, 1, "", 0xaa38, 0x008e8e8e, 0}, -{W, 1, "", 0xaa3c, 0x008f8f8f, 0}, -{W, 1, "", 0xaa40, 0x00909090, 0}, -{W, 1, "", 0xaa44, 0x00919191, 0}, -{W, 1, "", 0xaa48, 0x00929292, 0}, -{W, 1, "", 0xaa4c, 0x00939393, 0}, -{W, 1, "", 0xaa50, 0x00949494, 0}, -{W, 1, "", 0xaa54, 0x00959595, 0}, -{W, 1, "", 0xaa58, 0x00969696, 0}, -{W, 1, "", 0xaa5c, 0x00979797, 0}, -{W, 1, "", 0xaa60, 0x00989898, 0}, -{W, 1, "", 0xaa64, 0x00999999, 0}, -{W, 1, "", 0xaa68, 0x009a9a9a, 0}, -{W, 1, "", 0xaa6c, 0x009b9b9b, 0}, -{W, 1, "", 0xaa70, 0x009c9c9c, 0}, -{W, 1, "", 0xaa74, 0x009d9d9d, 0}, -{W, 1, "", 0xaa78, 0x009e9e9e, 0}, -{W, 1, "", 0xaa7c, 0x009f9f9f, 0}, -{W, 1, "", 0xaa80, 0x00a0a0a0, 0}, -{W, 1, "", 0xaa84, 0x00a1a1a1, 0}, -{W, 1, "", 0xaa88, 0x00a2a2a2, 0}, -{W, 1, "", 0xaa8c, 0x00a3a3a3, 0}, -{W, 1, "", 0xaa90, 0x00a4a4a4, 0}, -{W, 1, "", 0xaa94, 0x00a5a5a5, 0}, -{W, 1, "", 0xaa98, 0x00a6a6a6, 0}, -{W, 1, "", 0xaa9c, 0x00a7a7a7, 0}, -{W, 1, "", 0xaaa0, 0x00a8a8a8, 0}, -{W, 1, "", 0xaaa4, 0x00a9a9a9, 0}, -{W, 1, "", 0xaaa8, 0x00aaaaaa, 0}, -{W, 1, "", 0xaaac, 0x00ababab, 0}, -{W, 1, "", 0xaab0, 0x00acacac, 0}, -{W, 1, "", 0xaab4, 0x00adadad, 0}, -{W, 1, "", 0xaab8, 0x00aeaeae, 0}, -{W, 1, "", 0xaabc, 0x00afafaf, 0}, -{W, 1, "", 0xaac0, 0x00b0b0b0, 0}, -{W, 1, "", 0xaac4, 0x00b1b1b1, 0}, -{W, 1, "", 0xaac8, 0x00b2b2b2, 0}, -{W, 1, "", 0xaacc, 0x00b3b3b3, 0}, -{W, 1, "", 0xaad0, 0x00b4b4b4, 0}, -{W, 1, "", 0xaad4, 0x00b5b5b5, 0}, -{W, 1, "", 0xaad8, 0x00b6b6b6, 0}, -{W, 1, "", 0xaadc, 0x00b7b7b7, 0}, -{W, 1, "", 0xaae0, 0x00b8b8b8, 0}, -{W, 1, "", 0xaae4, 0x00b9b9b9, 0}, -{W, 1, "", 0xaae8, 0x00bababa, 0}, -{W, 1, "", 0xaaec, 0x00bbbbbb, 0}, -{W, 1, "", 0xaaf0, 0x00bcbcbc, 0}, -{W, 1, "", 0xaaf4, 0x00bdbdbd, 0}, -{W, 1, "", 0xaaf8, 0x00bebebe, 0}, -{W, 1, "", 0xaafc, 0x00bfbfbf, 0}, -{W, 1, "", 0xab00, 0x00c0c0c0, 0}, -{W, 1, "", 0xab04, 0x00c1c1c1, 0}, -{W, 1, "", 0xab08, 0x00c2c2c2, 0}, -{W, 1, "", 0xab0c, 0x00c3c3c3, 0}, -{W, 1, "", 0xab10, 0x00c4c4c4, 0}, -{W, 1, "", 0xab14, 0x00c5c5c5, 0}, -{W, 1, "", 0xab18, 0x00c6c6c6, 0}, -{W, 1, "", 0xab1c, 0x00c7c7c7, 0}, -{W, 1, "", 0xab20, 0x00c8c8c8, 0}, -{W, 1, "", 0xab24, 0x00c9c9c9, 0}, -{W, 1, "", 0xab28, 0x00cacaca, 0}, -{W, 1, "", 0xab2c, 0x00cbcbcb, 0}, -{W, 1, "", 0xab30, 0x00cccccc, 0}, -{W, 1, "", 0xab34, 0x00cdcdcd, 0}, -{W, 1, "", 0xab38, 0x00cecece, 0}, -{W, 1, "", 0xab3c, 0x00cfcfcf, 0}, -{W, 1, "", 0xab40, 0x00d0d0d0, 0}, -{W, 1, "", 0xab44, 0x00d1d1d1, 0}, -{W, 1, "", 0xab48, 0x00d2d2d2, 0}, -{W, 1, "", 0xab4c, 0x00d3d3d3, 0}, -{W, 1, "", 0xab50, 0x00d4d4d4, 0}, -{W, 1, "", 0xab54, 0x00d5d5d5, 0}, -{W, 1, "", 0xab58, 0x00d6d6d6, 0}, -{W, 1, "", 0xab5c, 0x00d7d7d7, 0}, -{W, 1, "", 0xab60, 0x00d8d8d8, 0}, -{W, 1, "", 0xab64, 0x00d9d9d9, 0}, -{W, 1, "", 0xab68, 0x00dadada, 0}, -{W, 1, "", 0xab6c, 0x00dbdbdb, 0}, -{W, 1, "", 0xab70, 0x00dcdcdc, 0}, -{W, 1, "", 0xab74, 0x00dddddd, 0}, -{W, 1, "", 0xab78, 0x00dedede, 0}, -{W, 1, "", 0xab7c, 0x00dfdfdf, 0}, -{W, 1, "", 0xab80, 0x00e0e0e0, 0}, -{W, 1, "", 0xab84, 0x00e1e1e1, 0}, -{W, 1, "", 0xab88, 0x00e2e2e2, 0}, -{W, 1, "", 0xab8c, 0x00e3e3e3, 0}, -{W, 1, "", 0xab90, 0x00e4e4e4, 0}, -{W, 1, "", 0xab94, 0x00e5e5e5, 0}, -{W, 1, "", 0xab98, 0x00e6e6e6, 0}, -{W, 1, "", 0xab9c, 0x00e7e7e7, 0}, -{W, 1, "", 0xaba0, 0x00e8e8e8, 0}, -{W, 1, "", 0xaba4, 0x00e9e9e9, 0}, -{W, 1, "", 0xaba8, 0x00eaeaea, 0}, -{W, 1, "", 0xabac, 0x00ebebeb, 0}, -{W, 1, "", 0xabb0, 0x00ececec, 0}, -{W, 1, "", 0xabb4, 0x00ededed, 0}, -{W, 1, "", 0xabb8, 0x00eeeeee, 0}, -{W, 1, "", 0xabbc, 0x00efefef, 0}, -{W, 1, "", 0xabc0, 0x00f0f0f0, 0}, -{W, 1, "", 0xabc4, 0x00f1f1f1, 0}, -{W, 1, "", 0xabc8, 0x00f2f2f2, 0}, -{W, 1, "", 0xabcc, 0x00f3f3f3, 0}, -{W, 1, "", 0xabd0, 0x00f4f4f4, 0}, -{W, 1, "", 0xabd4, 0x00f5f5f5, 0}, -{W, 1, "", 0xabd8, 0x00f6f6f6, 0}, -{W, 1, "", 0xabdc, 0x00f7f7f7, 0}, -{W, 1, "", 0xabe0, 0x00f8f8f8, 0}, -{W, 1, "", 0xabe4, 0x00f9f9f9, 0}, -{W, 1, "", 0xabe8, 0x00fafafa, 0}, -{W, 1, "", 0xabec, 0x00fbfbfb, 0}, -{W, 1, "", 0xabf0, 0x00fcfcfc, 0}, -{W, 1, "", 0xabf4, 0x00fdfdfd, 0}, -{W, 1, "", 0xabf8, 0x00fefefe, 0}, -{W, 1, "", 0xabfc, 0x00ffffff, 0}, -{W, 1, "", _PALETTE_B, 0x00000000, 0}, -{W, 1, "", _PALETTE_B+0x4, 0x00010101, 0}, -{W, 1, "", _PALETTE_B+0x8, 0x00020202, 0}, -{W, 1, "", _PALETTE_B+0xc, 0x00030303, 0}, -{W, 1, "", _PALETTE_B+0x10, 0x00040404, 0}, -{W, 1, "", _PALETTE_B+0x14, 0x00050505, 0}, -{W, 1, "", _PALETTE_B+0x18, 0x00060606, 0}, -{W, 1, "", _PALETTE_B+0x1c, 0x00070707, 0}, -{W, 1, "", _PALETTE_B+0x20, 0x00080808, 0}, -{W, 1, "", _PALETTE_B+0x24, 0x00090909, 0}, -{W, 1, "", _PALETTE_B+0x28, 0x000a0a0a, 0}, -{W, 1, "", _PALETTE_B+0x2c, 0x000b0b0b, 0}, -{W, 1, "", _PALETTE_B+0x30, 0x000c0c0c, 0}, -{W, 1, "", _PALETTE_B+0x34, 0x000d0d0d, 0}, -{W, 1, "", _PALETTE_B+0x38, 0x000e0e0e, 0}, -{W, 1, "", _PALETTE_B+0x3c, 0x000f0f0f, 0}, -{W, 1, "", _PALETTE_B+0x40, 0x00101010, 0}, -{W, 1, "", _PALETTE_B+0x44, 0x00111111, 0}, -{W, 1, "", _PALETTE_B+0x48, 0x00121212, 0}, -{W, 1, "", _PALETTE_B+0x4c, 0x00131313, 0}, -{W, 1, "", _PALETTE_B+0x50, 0x00141414, 0}, -{W, 1, "", _PALETTE_B+0x54, 0x00151515, 0}, -{W, 1, "", _PALETTE_B+0x58, 0x00161616, 0}, -{W, 1, "", _PALETTE_B+0x5c, 0x00171717, 0}, -{W, 1, "", _PALETTE_B+0x60, 0x00181818, 0}, -{W, 1, "", _PALETTE_B+0x64, 0x00191919, 0}, -{W, 1, "", _PALETTE_B+0x68, 0x001a1a1a, 0}, -{W, 1, "", _PALETTE_B+0x6c, 0x001b1b1b, 0}, -{W, 1, "", _PALETTE_B+0x70, 0x001c1c1c, 0}, -{W, 1, "", _PALETTE_B+0x74, 0x001d1d1d, 0}, -{W, 1, "", _PALETTE_B+0x78, 0x001e1e1e, 0}, -{W, 1, "", _PALETTE_B+0x7c, 0x001f1f1f, 0}, -{W, 1, "", 0xa880, 0x00202020, 0}, -{W, 1, "", 0xa884, 0x00212121, 0}, -{W, 1, "", 0xa888, 0x00222222, 0}, -{W, 1, "", 0xa88c, 0x00232323, 0}, -{W, 1, "", 0xa890, 0x00242424, 0}, -{W, 1, "", 0xa894, 0x00252525, 0}, -{W, 1, "", 0xa898, 0x00262626, 0}, -{W, 1, "", 0xa89c, 0x00272727, 0}, -{W, 1, "", 0xa8a0, 0x00282828, 0}, -{W, 1, "", 0xa8a4, 0x00292929, 0}, -{W, 1, "", 0xa8a8, 0x002a2a2a, 0}, -{W, 1, "", 0xa8ac, 0x002b2b2b, 0}, -{W, 1, "", 0xa8b0, 0x002c2c2c, 0}, -{W, 1, "", 0xa8b4, 0x002d2d2d, 0}, -{W, 1, "", 0xa8b8, 0x002e2e2e, 0}, -{W, 1, "", 0xa8bc, 0x002f2f2f, 0}, -{W, 1, "", 0xa8c0, 0x00303030, 0}, -{W, 1, "", 0xa8c4, 0x00313131, 0}, -{W, 1, "", 0xa8c8, 0x00323232, 0}, -{W, 1, "", 0xa8cc, 0x00333333, 0}, -{W, 1, "", 0xa8d0, 0x00343434, 0}, -{W, 1, "", 0xa8d4, 0x00353535, 0}, -{W, 1, "", 0xa8d8, 0x00363636, 0}, -{W, 1, "", 0xa8dc, 0x00373737, 0}, -{W, 1, "", 0xa8e0, 0x00383838, 0}, -{W, 1, "", 0xa8e4, 0x00393939, 0}, -{W, 1, "", 0xa8e8, 0x003a3a3a, 0}, -{W, 1, "", 0xa8ec, 0x003b3b3b, 0}, -{W, 1, "", 0xa8f0, 0x003c3c3c, 0}, -{W, 1, "", 0xa8f4, 0x003d3d3d, 0}, -{W, 1, "", 0xa8f8, 0x003e3e3e, 0}, -{W, 1, "", 0xa8fc, 0x003f3f3f, 0}, -{W, 1, "", 0xa900, 0x00404040, 0}, -{W, 1, "", 0xa904, 0x00414141, 0}, -{W, 1, "", 0xa908, 0x00424242, 0}, -{W, 1, "", 0xa90c, 0x00434343, 0}, -{W, 1, "", 0xa910, 0x00444444, 0}, -{W, 1, "", 0xa914, 0x00454545, 0}, -{W, 1, "", 0xa918, 0x00464646, 0}, -{W, 1, "", 0xa91c, 0x00474747, 0}, -{W, 1, "", 0xa920, 0x00484848, 0}, -{W, 1, "", 0xa924, 0x00494949, 0}, -{W, 1, "", 0xa928, 0x004a4a4a, 0}, -{W, 1, "", 0xa92c, 0x004b4b4b, 0}, -{W, 1, "", 0xa930, 0x004c4c4c, 0}, -{W, 1, "", 0xa934, 0x004d4d4d, 0}, -{W, 1, "", 0xa938, 0x004e4e4e, 0}, -{W, 1, "", 0xa93c, 0x004f4f4f, 0}, -{W, 1, "", 0xa940, 0x00505050, 0}, -{W, 1, "", 0xa944, 0x00515151, 0}, -{W, 1, "", 0xa948, 0x00525252, 0}, -{W, 1, "", 0xa94c, 0x00535353, 0}, -{W, 1, "", 0xa950, 0x00545454, 0}, -{W, 1, "", 0xa954, 0x00555555, 0}, -{W, 1, "", 0xa958, 0x00565656, 0}, -{W, 1, "", 0xa95c, 0x00575757, 0}, -{W, 1, "", 0xa960, 0x00585858, 0}, -{W, 1, "", 0xa964, 0x00595959, 0}, -{W, 1, "", 0xa968, 0x005a5a5a, 0}, -{W, 1, "", 0xa96c, 0x005b5b5b, 0}, -{W, 1, "", 0xa970, 0x005c5c5c, 0}, -{W, 1, "", 0xa974, 0x005d5d5d, 0}, -{W, 1, "", 0xa978, 0x005e5e5e, 0}, -{W, 1, "", 0xa97c, 0x005f5f5f, 0}, -{W, 1, "", 0xa980, 0x00606060, 0}, -{W, 1, "", 0xa984, 0x00616161, 0}, -{W, 1, "", 0xa988, 0x00626262, 0}, -{W, 1, "", 0xa98c, 0x00636363, 0}, -{W, 1, "", 0xa990, 0x00646464, 0}, -{W, 1, "", 0xa994, 0x00656565, 0}, -{W, 1, "", 0xa998, 0x00666666, 0}, -{W, 1, "", 0xa99c, 0x00676767, 0}, -{W, 1, "", 0xa9a0, 0x00686868, 0}, -{W, 1, "", 0xa9a4, 0x00696969, 0}, -{W, 1, "", 0xa9a8, 0x006a6a6a, 0}, -{W, 1, "", 0xa9ac, 0x006b6b6b, 0}, -{W, 1, "", 0xa9b0, 0x006c6c6c, 0}, -{W, 1, "", 0xa9b4, 0x006d6d6d, 0}, -{W, 1, "", 0xa9b8, 0x006e6e6e, 0}, -{W, 1, "", 0xa9bc, 0x006f6f6f, 0}, -{W, 1, "", 0xa9c0, 0x00707070, 0}, -{W, 1, "", 0xa9c4, 0x00717171, 0}, -{W, 1, "", 0xa9c8, 0x00727272, 0}, -{W, 1, "", 0xa9cc, 0x00737373, 0}, -{W, 1, "", 0xa9d0, 0x00747474, 0}, -{W, 1, "", 0xa9d4, 0x00757575, 0}, -{W, 1, "", 0xa9d8, 0x00767676, 0}, -{W, 1, "", 0xa9dc, 0x00777777, 0}, -{W, 1, "", 0xa9e0, 0x00787878, 0}, -{W, 1, "", 0xa9e4, 0x00797979, 0}, -{W, 1, "", 0xa9e8, 0x007a7a7a, 0}, -{W, 1, "", 0xa9ec, 0x007b7b7b, 0}, -{W, 1, "", 0xa9f0, 0x007c7c7c, 0}, -{W, 1, "", 0xa9f4, 0x007d7d7d, 0}, -{W, 1, "", 0xa9f8, 0x007e7e7e, 0}, -{W, 1, "", 0xa9fc, 0x007f7f7f, 0}, -{W, 1, "", 0xaa00, 0x00808080, 0}, -{W, 1, "", 0xaa04, 0x00818181, 0}, -{W, 1, "", 0xaa08, 0x00828282, 0}, -{W, 1, "", 0xaa0c, 0x00838383, 0}, -{W, 1, "", 0xaa10, 0x00848484, 0}, -{W, 1, "", 0xaa14, 0x00858585, 0}, -{W, 1, "", 0xaa18, 0x00868686, 0}, -{W, 1, "", 0xaa1c, 0x00878787, 0}, -{W, 1, "", 0xaa20, 0x00888888, 0}, -{W, 1, "", 0xaa24, 0x00898989, 0}, -{W, 1, "", 0xaa28, 0x008a8a8a, 0}, -{W, 1, "", 0xaa2c, 0x008b8b8b, 0}, -{W, 1, "", 0xaa30, 0x008c8c8c, 0}, -{W, 1, "", 0xaa34, 0x008d8d8d, 0}, -{W, 1, "", 0xaa38, 0x008e8e8e, 0}, -{W, 1, "", 0xaa3c, 0x008f8f8f, 0}, -{W, 1, "", 0xaa40, 0x00909090, 0}, -{W, 1, "", 0xaa44, 0x00919191, 0}, -{W, 1, "", 0xaa48, 0x00929292, 0}, -{W, 1, "", 0xaa4c, 0x00939393, 0}, -{W, 1, "", 0xaa50, 0x00949494, 0}, -{W, 1, "", 0xaa54, 0x00959595, 0}, -{W, 1, "", 0xaa58, 0x00969696, 0}, -{W, 1, "", 0xaa5c, 0x00979797, 0}, -{W, 1, "", 0xaa60, 0x00989898, 0}, -{W, 1, "", 0xaa64, 0x00999999, 0}, -{W, 1, "", 0xaa68, 0x009a9a9a, 0}, -{W, 1, "", 0xaa6c, 0x009b9b9b, 0}, -{W, 1, "", 0xaa70, 0x009c9c9c, 0}, -{W, 1, "", 0xaa74, 0x009d9d9d, 0}, -{W, 1, "", 0xaa78, 0x009e9e9e, 0}, -{W, 1, "", 0xaa7c, 0x009f9f9f, 0}, -{W, 1, "", 0xaa80, 0x00a0a0a0, 0}, -{W, 1, "", 0xaa84, 0x00a1a1a1, 0}, -{W, 1, "", 0xaa88, 0x00a2a2a2, 0}, -{W, 1, "", 0xaa8c, 0x00a3a3a3, 0}, -{W, 1, "", 0xaa90, 0x00a4a4a4, 0}, -{W, 1, "", 0xaa94, 0x00a5a5a5, 0}, -{W, 1, "", 0xaa98, 0x00a6a6a6, 0}, -{W, 1, "", 0xaa9c, 0x00a7a7a7, 0}, -{W, 1, "", 0xaaa0, 0x00a8a8a8, 0}, -{W, 1, "", 0xaaa4, 0x00a9a9a9, 0}, -{W, 1, "", 0xaaa8, 0x00aaaaaa, 0}, -{W, 1, "", 0xaaac, 0x00ababab, 0}, -{W, 1, "", 0xaab0, 0x00acacac, 0}, -{W, 1, "", 0xaab4, 0x00adadad, 0}, -{W, 1, "", 0xaab8, 0x00aeaeae, 0}, -{W, 1, "", 0xaabc, 0x00afafaf, 0}, -{W, 1, "", 0xaac0, 0x00b0b0b0, 0}, -{W, 1, "", 0xaac4, 0x00b1b1b1, 0}, -{W, 1, "", 0xaac8, 0x00b2b2b2, 0}, -{W, 1, "", 0xaacc, 0x00b3b3b3, 0}, -{W, 1, "", 0xaad0, 0x00b4b4b4, 0}, -{W, 1, "", 0xaad4, 0x00b5b5b5, 0}, -{W, 1, "", 0xaad8, 0x00b6b6b6, 0}, -{W, 1, "", 0xaadc, 0x00b7b7b7, 0}, -{W, 1, "", 0xaae0, 0x00b8b8b8, 0}, -{W, 1, "", 0xaae4, 0x00b9b9b9, 0}, -{W, 1, "", 0xaae8, 0x00bababa, 0}, -{W, 1, "", 0xaaec, 0x00bbbbbb, 0}, -{W, 1, "", 0xaaf0, 0x00bcbcbc, 0}, -{W, 1, "", 0xaaf4, 0x00bdbdbd, 0}, -{W, 1, "", 0xaaf8, 0x00bebebe, 0}, -{W, 1, "", 0xaafc, 0x00bfbfbf, 0}, -{W, 1, "", 0xab00, 0x00c0c0c0, 0}, -{W, 1, "", 0xab04, 0x00c1c1c1, 0}, -{W, 1, "", 0xab08, 0x00c2c2c2, 0}, -{W, 1, "", 0xab0c, 0x00c3c3c3, 0}, -{W, 1, "", 0xab10, 0x00c4c4c4, 0}, -{W, 1, "", 0xab14, 0x00c5c5c5, 0}, -{W, 1, "", 0xab18, 0x00c6c6c6, 0}, -{W, 1, "", 0xab1c, 0x00c7c7c7, 0}, -{W, 1, "", 0xab20, 0x00c8c8c8, 0}, -{W, 1, "", 0xab24, 0x00c9c9c9, 0}, -{W, 1, "", 0xab28, 0x00cacaca, 0}, -{W, 1, "", 0xab2c, 0x00cbcbcb, 0}, -{W, 1, "", 0xab30, 0x00cccccc, 0}, -{W, 1, "", 0xab34, 0x00cdcdcd, 0}, -{W, 1, "", 0xab38, 0x00cecece, 0}, -{W, 1, "", 0xab3c, 0x00cfcfcf, 0}, -{W, 1, "", 0xab40, 0x00d0d0d0, 0}, -{W, 1, "", 0xab44, 0x00d1d1d1, 0}, -{W, 1, "", 0xab48, 0x00d2d2d2, 0}, -{W, 1, "", 0xab4c, 0x00d3d3d3, 0}, -{W, 1, "", 0xab50, 0x00d4d4d4, 0}, -{W, 1, "", 0xab54, 0x00d5d5d5, 0}, -{W, 1, "", 0xab58, 0x00d6d6d6, 0}, -{W, 1, "", 0xab5c, 0x00d7d7d7, 0}, -{W, 1, "", 0xab60, 0x00d8d8d8, 0}, -{W, 1, "", 0xab64, 0x00d9d9d9, 0}, -{W, 1, "", 0xab68, 0x00dadada, 0}, -{W, 1, "", 0xab6c, 0x00dbdbdb, 0}, -{W, 1, "", 0xab70, 0x00dcdcdc, 0}, -{W, 1, "", 0xab74, 0x00dddddd, 0}, -{W, 1, "", 0xab78, 0x00dedede, 0}, -{W, 1, "", 0xab7c, 0x00dfdfdf, 0}, -{W, 1, "", 0xab80, 0x00e0e0e0, 0}, -{W, 1, "", 0xab84, 0x00e1e1e1, 0}, -{W, 1, "", 0xab88, 0x00e2e2e2, 0}, -{W, 1, "", 0xab8c, 0x00e3e3e3, 0}, -{W, 1, "", 0xab90, 0x00e4e4e4, 0}, -{W, 1, "", 0xab94, 0x00e5e5e5, 0}, -{W, 1, "", 0xab98, 0x00e6e6e6, 0}, -{W, 1, "", 0xab9c, 0x00e7e7e7, 0}, -{W, 1, "", 0xaba0, 0x00e8e8e8, 0}, -{W, 1, "", 0xaba4, 0x00e9e9e9, 0}, -{W, 1, "", 0xaba8, 0x00eaeaea, 0}, -{W, 1, "", 0xabac, 0x00ebebeb, 0}, -{W, 1, "", 0xabb0, 0x00ececec, 0}, -{W, 1, "", 0xabb4, 0x00ededed, 0}, -{W, 1, "", 0xabb8, 0x00eeeeee, 0}, -{W, 1, "", 0xabbc, 0x00efefef, 0}, -{W, 1, "", 0xabc0, 0x00f0f0f0, 0}, -{W, 1, "", 0xabc4, 0x00f1f1f1, 0}, -{W, 1, "", 0xabc8, 0x00f2f2f2, 0}, -{W, 1, "", 0xabcc, 0x00f3f3f3, 0}, -{W, 1, "", 0xabd0, 0x00f4f4f4, 0}, -{W, 1, "", 0xabd4, 0x00f5f5f5, 0}, -{W, 1, "", 0xabd8, 0x00f6f6f6, 0}, -{W, 1, "", 0xabdc, 0x00f7f7f7, 0}, -{W, 1, "", 0xabe0, 0x00f8f8f8, 0}, -{W, 1, "", 0xabe4, 0x00f9f9f9, 0}, -{W, 1, "", 0xabe8, 0x00fafafa, 0}, -{W, 1, "", 0xabec, 0x00fbfbfb, 0}, -{W, 1, "", 0xabf0, 0x00fcfcfc, 0}, -{W, 1, "", 0xabf4, 0x00fdfdfd, 0}, -{W, 1, "", 0xabf8, 0x00fefefe, 0}, -{W, 1, "", 0xabfc, 0x00ffffff, 0}, -{M, 1, "Console:switching to colour frame buffer device 128x48", 0x0, 0x0, 0}, -{W, 1, "", _PALETTE_B, 0x00000000, 0}, -{W, 1, "", _PALETTE_B+0x4, 0x00010101, 0}, -{W, 1, "", _PALETTE_B+0x8, 0x00020202, 0}, -{W, 1, "", _PALETTE_B+0xc, 0x00030303, 0}, -{W, 1, "", _PALETTE_B+0x10, 0x00040404, 0}, -{W, 1, "", _PALETTE_B+0x14, 0x00050505, 0}, -{W, 1, "", _PALETTE_B+0x18, 0x00060606, 0}, -{W, 1, "", _PALETTE_B+0x1c, 0x00070707, 0}, -{W, 1, "", _PALETTE_B+0x20, 0x00080808, 0}, -{W, 1, "", _PALETTE_B+0x24, 0x00090909, 0}, -{W, 1, "", _PALETTE_B+0x28, 0x000a0a0a, 0}, -{W, 1, "", _PALETTE_B+0x2c, 0x000b0b0b, 0}, -{W, 1, "", _PALETTE_B+0x30, 0x000c0c0c, 0}, -{W, 1, "", _PALETTE_B+0x34, 0x000d0d0d, 0}, -{W, 1, "", _PALETTE_B+0x38, 0x000e0e0e, 0}, -{W, 1, "", _PALETTE_B+0x3c, 0x000f0f0f, 0}, -{W, 1, "", _PALETTE_B+0x40, 0x00101010, 0}, -{W, 1, "", _PALETTE_B+0x44, 0x00111111, 0}, -{W, 1, "", _PALETTE_B+0x48, 0x00121212, 0}, -{W, 1, "", _PALETTE_B+0x4c, 0x00131313, 0}, -{W, 1, "", _PALETTE_B+0x50, 0x00141414, 0}, -{W, 1, "", _PALETTE_B+0x54, 0x00151515, 0}, -{W, 1, "", _PALETTE_B+0x58, 0x00161616, 0}, -{W, 1, "", _PALETTE_B+0x5c, 0x00171717, 0}, -{W, 1, "", _PALETTE_B+0x60, 0x00181818, 0}, -{W, 1, "", _PALETTE_B+0x64, 0x00191919, 0}, -{W, 1, "", _PALETTE_B+0x68, 0x001a1a1a, 0}, -{W, 1, "", _PALETTE_B+0x6c, 0x001b1b1b, 0}, -{W, 1, "", _PALETTE_B+0x70, 0x001c1c1c, 0}, -{W, 1, "", _PALETTE_B+0x74, 0x001d1d1d, 0}, -{W, 1, "", _PALETTE_B+0x78, 0x001e1e1e, 0}, -{W, 1, "", _PALETTE_B+0x7c, 0x001f1f1f, 0}, -{W, 1, "", 0xa880, 0x00202020, 0}, -{W, 1, "", 0xa884, 0x00212121, 0}, -{W, 1, "", 0xa888, 0x00222222, 0}, -{W, 1, "", 0xa88c, 0x00232323, 0}, -{W, 1, "", 0xa890, 0x00242424, 0}, -{W, 1, "", 0xa894, 0x00252525, 0}, -{W, 1, "", 0xa898, 0x00262626, 0}, -{W, 1, "", 0xa89c, 0x00272727, 0}, -{W, 1, "", 0xa8a0, 0x00282828, 0}, -{W, 1, "", 0xa8a4, 0x00292929, 0}, -{W, 1, "", 0xa8a8, 0x002a2a2a, 0}, -{W, 1, "", 0xa8ac, 0x002b2b2b, 0}, -{W, 1, "", 0xa8b0, 0x002c2c2c, 0}, -{W, 1, "", 0xa8b4, 0x002d2d2d, 0}, -{W, 1, "", 0xa8b8, 0x002e2e2e, 0}, -{W, 1, "", 0xa8bc, 0x002f2f2f, 0}, -{W, 1, "", 0xa8c0, 0x00303030, 0}, -{W, 1, "", 0xa8c4, 0x00313131, 0}, -{W, 1, "", 0xa8c8, 0x00323232, 0}, -{W, 1, "", 0xa8cc, 0x00333333, 0}, -{W, 1, "", 0xa8d0, 0x00343434, 0}, -{W, 1, "", 0xa8d4, 0x00353535, 0}, -{W, 1, "", 0xa8d8, 0x00363636, 0}, -{W, 1, "", 0xa8dc, 0x00373737, 0}, -{W, 1, "", 0xa8e0, 0x00383838, 0}, -{W, 1, "", 0xa8e4, 0x00393939, 0}, -{W, 1, "", 0xa8e8, 0x003a3a3a, 0}, -{W, 1, "", 0xa8ec, 0x003b3b3b, 0}, -{W, 1, "", 0xa8f0, 0x003c3c3c, 0}, -{W, 1, "", 0xa8f4, 0x003d3d3d, 0}, -{W, 1, "", 0xa8f8, 0x003e3e3e, 0}, -{W, 1, "", 0xa8fc, 0x003f3f3f, 0}, -{W, 1, "", 0xa900, 0x00404040, 0}, -{W, 1, "", 0xa904, 0x00414141, 0}, -{W, 1, "", 0xa908, 0x00424242, 0}, -{W, 1, "", 0xa90c, 0x00434343, 0}, -{W, 1, "", 0xa910, 0x00444444, 0}, -{W, 1, "", 0xa914, 0x00454545, 0}, -{W, 1, "", 0xa918, 0x00464646, 0}, -{W, 1, "", 0xa91c, 0x00474747, 0}, -{W, 1, "", 0xa920, 0x00484848, 0}, -{W, 1, "", 0xa924, 0x00494949, 0}, -{W, 1, "", 0xa928, 0x004a4a4a, 0}, -{W, 1, "", 0xa92c, 0x004b4b4b, 0}, -{W, 1, "", 0xa930, 0x004c4c4c, 0}, -{W, 1, "", 0xa934, 0x004d4d4d, 0}, -{W, 1, "", 0xa938, 0x004e4e4e, 0}, -{W, 1, "", 0xa93c, 0x004f4f4f, 0}, -{W, 1, "", 0xa940, 0x00505050, 0}, -{W, 1, "", 0xa944, 0x00515151, 0}, -{W, 1, "", 0xa948, 0x00525252, 0}, -{W, 1, "", 0xa94c, 0x00535353, 0}, -{W, 1, "", 0xa950, 0x00545454, 0}, -{W, 1, "", 0xa954, 0x00555555, 0}, -{W, 1, "", 0xa958, 0x00565656, 0}, -{W, 1, "", 0xa95c, 0x00575757, 0}, -{W, 1, "", 0xa960, 0x00585858, 0}, -{W, 1, "", 0xa964, 0x00595959, 0}, -{W, 1, "", 0xa968, 0x005a5a5a, 0}, -{W, 1, "", 0xa96c, 0x005b5b5b, 0}, -{W, 1, "", 0xa970, 0x005c5c5c, 0}, -{W, 1, "", 0xa974, 0x005d5d5d, 0}, -{W, 1, "", 0xa978, 0x005e5e5e, 0}, -{W, 1, "", 0xa97c, 0x005f5f5f, 0}, -{W, 1, "", 0xa980, 0x00606060, 0}, -{W, 1, "", 0xa984, 0x00616161, 0}, -{W, 1, "", 0xa988, 0x00626262, 0}, -{W, 1, "", 0xa98c, 0x00636363, 0}, -{W, 1, "", 0xa990, 0x00646464, 0}, -{W, 1, "", 0xa994, 0x00656565, 0}, -{W, 1, "", 0xa998, 0x00666666, 0}, -{W, 1, "", 0xa99c, 0x00676767, 0}, -{W, 1, "", 0xa9a0, 0x00686868, 0}, -{W, 1, "", 0xa9a4, 0x00696969, 0}, -{W, 1, "", 0xa9a8, 0x006a6a6a, 0}, -{W, 1, "", 0xa9ac, 0x006b6b6b, 0}, -{W, 1, "", 0xa9b0, 0x006c6c6c, 0}, -{W, 1, "", 0xa9b4, 0x006d6d6d, 0}, -{W, 1, "", 0xa9b8, 0x006e6e6e, 0}, -{W, 1, "", 0xa9bc, 0x006f6f6f, 0}, -{W, 1, "", 0xa9c0, 0x00707070, 0}, -{W, 1, "", 0xa9c4, 0x00717171, 0}, -{W, 1, "", 0xa9c8, 0x00727272, 0}, -{W, 1, "", 0xa9cc, 0x00737373, 0}, -{W, 1, "", 0xa9d0, 0x00747474, 0}, -{W, 1, "", 0xa9d4, 0x00757575, 0}, -{W, 1, "", 0xa9d8, 0x00767676, 0}, -{W, 1, "", 0xa9dc, 0x00777777, 0}, -{W, 1, "", 0xa9e0, 0x00787878, 0}, -{W, 1, "", 0xa9e4, 0x00797979, 0}, -{W, 1, "", 0xa9e8, 0x007a7a7a, 0}, -{W, 1, "", 0xa9ec, 0x007b7b7b, 0}, -{W, 1, "", 0xa9f0, 0x007c7c7c, 0}, -{W, 1, "", 0xa9f4, 0x007d7d7d, 0}, -{W, 1, "", 0xa9f8, 0x007e7e7e, 0}, -{W, 1, "", 0xa9fc, 0x007f7f7f, 0}, -{W, 1, "", 0xaa00, 0x00808080, 0}, -{W, 1, "", 0xaa04, 0x00818181, 0}, -{W, 1, "", 0xaa08, 0x00828282, 0}, -{W, 1, "", 0xaa0c, 0x00838383, 0}, -{W, 1, "", 0xaa10, 0x00848484, 0}, -{W, 1, "", 0xaa14, 0x00858585, 0}, -{W, 1, "", 0xaa18, 0x00868686, 0}, -{W, 1, "", 0xaa1c, 0x00878787, 0}, -{W, 1, "", 0xaa20, 0x00888888, 0}, -{W, 1, "", 0xaa24, 0x00898989, 0}, -{W, 1, "", 0xaa28, 0x008a8a8a, 0}, -{W, 1, "", 0xaa2c, 0x008b8b8b, 0}, -{W, 1, "", 0xaa30, 0x008c8c8c, 0}, -{W, 1, "", 0xaa34, 0x008d8d8d, 0}, -{W, 1, "", 0xaa38, 0x008e8e8e, 0}, -{W, 1, "", 0xaa3c, 0x008f8f8f, 0}, -{W, 1, "", 0xaa40, 0x00909090, 0}, -{W, 1, "", 0xaa44, 0x00919191, 0}, -{W, 1, "", 0xaa48, 0x00929292, 0}, -{W, 1, "", 0xaa4c, 0x00939393, 0}, -{W, 1, "", 0xaa50, 0x00949494, 0}, -{W, 1, "", 0xaa54, 0x00959595, 0}, -{W, 1, "", 0xaa58, 0x00969696, 0}, -{W, 1, "", 0xaa5c, 0x00979797, 0}, -{W, 1, "", 0xaa60, 0x00989898, 0}, -{W, 1, "", 0xaa64, 0x00999999, 0}, -{W, 1, "", 0xaa68, 0x009a9a9a, 0}, -{W, 1, "", 0xaa6c, 0x009b9b9b, 0}, -{W, 1, "", 0xaa70, 0x009c9c9c, 0}, -{W, 1, "", 0xaa74, 0x009d9d9d, 0}, -{W, 1, "", 0xaa78, 0x009e9e9e, 0}, -{W, 1, "", 0xaa7c, 0x009f9f9f, 0}, -{W, 1, "", 0xaa80, 0x00a0a0a0, 0}, -{W, 1, "", 0xaa84, 0x00a1a1a1, 0}, -{W, 1, "", 0xaa88, 0x00a2a2a2, 0}, -{W, 1, "", 0xaa8c, 0x00a3a3a3, 0}, -{W, 1, "", 0xaa90, 0x00a4a4a4, 0}, -{W, 1, "", 0xaa94, 0x00a5a5a5, 0}, -{W, 1, "", 0xaa98, 0x00a6a6a6, 0}, -{W, 1, "", 0xaa9c, 0x00a7a7a7, 0}, -{W, 1, "", 0xaaa0, 0x00a8a8a8, 0}, -{W, 1, "", 0xaaa4, 0x00a9a9a9, 0}, -{W, 1, "", 0xaaa8, 0x00aaaaaa, 0}, -{W, 1, "", 0xaaac, 0x00ababab, 0}, -{W, 1, "", 0xaab0, 0x00acacac, 0}, -{W, 1, "", 0xaab4, 0x00adadad, 0}, -{W, 1, "", 0xaab8, 0x00aeaeae, 0}, -{W, 1, "", 0xaabc, 0x00afafaf, 0}, -{W, 1, "", 0xaac0, 0x00b0b0b0, 0}, -{W, 1, "", 0xaac4, 0x00b1b1b1, 0}, -{W, 1, "", 0xaac8, 0x00b2b2b2, 0}, -{W, 1, "", 0xaacc, 0x00b3b3b3, 0}, -{W, 1, "", 0xaad0, 0x00b4b4b4, 0}, -{W, 1, "", 0xaad4, 0x00b5b5b5, 0}, -{W, 1, "", 0xaad8, 0x00b6b6b6, 0}, -{W, 1, "", 0xaadc, 0x00b7b7b7, 0}, -{W, 1, "", 0xaae0, 0x00b8b8b8, 0}, -{W, 1, "", 0xaae4, 0x00b9b9b9, 0}, -{W, 1, "", 0xaae8, 0x00bababa, 0}, -{W, 1, "", 0xaaec, 0x00bbbbbb, 0}, -{W, 1, "", 0xaaf0, 0x00bcbcbc, 0}, -{W, 1, "", 0xaaf4, 0x00bdbdbd, 0}, -{W, 1, "", 0xaaf8, 0x00bebebe, 0}, -{W, 1, "", 0xaafc, 0x00bfbfbf, 0}, -{W, 1, "", 0xab00, 0x00c0c0c0, 0}, -{W, 1, "", 0xab04, 0x00c1c1c1, 0}, -{W, 1, "", 0xab08, 0x00c2c2c2, 0}, -{W, 1, "", 0xab0c, 0x00c3c3c3, 0}, -{W, 1, "", 0xab10, 0x00c4c4c4, 0}, -{W, 1, "", 0xab14, 0x00c5c5c5, 0}, -{W, 1, "", 0xab18, 0x00c6c6c6, 0}, -{W, 1, "", 0xab1c, 0x00c7c7c7, 0}, -{W, 1, "", 0xab20, 0x00c8c8c8, 0}, -{W, 1, "", 0xab24, 0x00c9c9c9, 0}, -{W, 1, "", 0xab28, 0x00cacaca, 0}, -{W, 1, "", 0xab2c, 0x00cbcbcb, 0}, -{W, 1, "", 0xab30, 0x00cccccc, 0}, -{W, 1, "", 0xab34, 0x00cdcdcd, 0}, -{W, 1, "", 0xab38, 0x00cecece, 0}, -{W, 1, "", 0xab3c, 0x00cfcfcf, 0}, -{W, 1, "", 0xab40, 0x00d0d0d0, 0}, -{W, 1, "", 0xab44, 0x00d1d1d1, 0}, -{W, 1, "", 0xab48, 0x00d2d2d2, 0}, -{W, 1, "", 0xab4c, 0x00d3d3d3, 0}, -{W, 1, "", 0xab50, 0x00d4d4d4, 0}, -{W, 1, "", 0xab54, 0x00d5d5d5, 0}, -{W, 1, "", 0xab58, 0x00d6d6d6, 0}, -{W, 1, "", 0xab5c, 0x00d7d7d7, 0}, -{W, 1, "", 0xab60, 0x00d8d8d8, 0}, -{W, 1, "", 0xab64, 0x00d9d9d9, 0}, -{W, 1, "", 0xab68, 0x00dadada, 0}, -{W, 1, "", 0xab6c, 0x00dbdbdb, 0}, -{W, 1, "", 0xab70, 0x00dcdcdc, 0}, -{W, 1, "", 0xab74, 0x00dddddd, 0}, -{W, 1, "", 0xab78, 0x00dedede, 0}, -{W, 1, "", 0xab7c, 0x00dfdfdf, 0}, -{W, 1, "", 0xab80, 0x00e0e0e0, 0}, -{W, 1, "", 0xab84, 0x00e1e1e1, 0}, -{W, 1, "", 0xab88, 0x00e2e2e2, 0}, -{W, 1, "", 0xab8c, 0x00e3e3e3, 0}, -{W, 1, "", 0xab90, 0x00e4e4e4, 0}, -{W, 1, "", 0xab94, 0x00e5e5e5, 0}, -{W, 1, "", 0xab98, 0x00e6e6e6, 0}, -{W, 1, "", 0xab9c, 0x00e7e7e7, 0}, -{W, 1, "", 0xaba0, 0x00e8e8e8, 0}, -{W, 1, "", 0xaba4, 0x00e9e9e9, 0}, -{W, 1, "", 0xaba8, 0x00eaeaea, 0}, -{W, 1, "", 0xabac, 0x00ebebeb, 0}, -{W, 1, "", 0xabb0, 0x00ececec, 0}, -{W, 1, "", 0xabb4, 0x00ededed, 0}, -{W, 1, "", 0xabb8, 0x00eeeeee, 0}, -{W, 1, "", 0xabbc, 0x00efefef, 0}, -{W, 1, "", 0xabc0, 0x00f0f0f0, 0}, -{W, 1, "", 0xabc4, 0x00f1f1f1, 0}, -{W, 1, "", 0xabc8, 0x00f2f2f2, 0}, -{W, 1, "", 0xabcc, 0x00f3f3f3, 0}, -{W, 1, "", 0xabd0, 0x00f4f4f4, 0}, -{W, 1, "", 0xabd4, 0x00f5f5f5, 0}, -{W, 1, "", 0xabd8, 0x00f6f6f6, 0}, -{W, 1, "", 0xabdc, 0x00f7f7f7, 0}, -{W, 1, "", 0xabe0, 0x00f8f8f8, 0}, -{W, 1, "", 0xabe4, 0x00f9f9f9, 0}, -{W, 1, "", 0xabe8, 0x00fafafa, 0}, -{W, 1, "", 0xabec, 0x00fbfbfb, 0}, -{W, 1, "", 0xabf0, 0x00fcfcfc, 0}, -{W, 1, "", 0xabf4, 0x00fdfdfd, 0}, -{W, 1, "", 0xabf8, 0x00fefefe, 0}, -{W, 1, "", 0xabfc, 0x00ffffff, 0}, -{W, 1, "", _PALETTE_B, 0x00000000, 0}, -{W, 1, "", _PALETTE_B+0x4, 0x00010101, 0}, -{W, 1, "", _PALETTE_B+0x8, 0x00020202, 0}, -{W, 1, "", _PALETTE_B+0xc, 0x00030303, 0}, -{W, 1, "", _PALETTE_B+0x10, 0x00040404, 0}, -{W, 1, "", _PALETTE_B+0x14, 0x00050505, 0}, -{W, 1, "", _PALETTE_B+0x18, 0x00060606, 0}, -{W, 1, "", _PALETTE_B+0x1c, 0x00070707, 0}, -{W, 1, "", _PALETTE_B+0x20, 0x00080808, 0}, -{W, 1, "", _PALETTE_B+0x24, 0x00090909, 0}, -{W, 1, "", _PALETTE_B+0x28, 0x000a0a0a, 0}, -{W, 1, "", _PALETTE_B+0x2c, 0x000b0b0b, 0}, -{W, 1, "", _PALETTE_B+0x30, 0x000c0c0c, 0}, -{W, 1, "", _PALETTE_B+0x34, 0x000d0d0d, 0}, -{W, 1, "", _PALETTE_B+0x38, 0x000e0e0e, 0}, -{W, 1, "", _PALETTE_B+0x3c, 0x000f0f0f, 0}, -{W, 1, "", _PALETTE_B+0x40, 0x00101010, 0}, -{W, 1, "", _PALETTE_B+0x44, 0x00111111, 0}, -{W, 1, "", _PALETTE_B+0x48, 0x00121212, 0}, -{W, 1, "", _PALETTE_B+0x4c, 0x00131313, 0}, -{W, 1, "", _PALETTE_B+0x50, 0x00141414, 0}, -{W, 1, "", _PALETTE_B+0x54, 0x00151515, 0}, -{W, 1, "", _PALETTE_B+0x58, 0x00161616, 0}, -{W, 1, "", _PALETTE_B+0x5c, 0x00171717, 0}, -{W, 1, "", _PALETTE_B+0x60, 0x00181818, 0}, -{W, 1, "", _PALETTE_B+0x64, 0x00191919, 0}, -{W, 1, "", _PALETTE_B+0x68, 0x001a1a1a, 0}, -{W, 1, "", _PALETTE_B+0x6c, 0x001b1b1b, 0}, -{W, 1, "", _PALETTE_B+0x70, 0x001c1c1c, 0}, -{W, 1, "", _PALETTE_B+0x74, 0x001d1d1d, 0}, -{W, 1, "", _PALETTE_B+0x78, 0x001e1e1e, 0}, -{W, 1, "", _PALETTE_B+0x7c, 0x001f1f1f, 0}, -{W, 1, "", 0xa880, 0x00202020, 0}, -{W, 1, "", 0xa884, 0x00212121, 0}, -{W, 1, "", 0xa888, 0x00222222, 0}, -{W, 1, "", 0xa88c, 0x00232323, 0}, -{W, 1, "", 0xa890, 0x00242424, 0}, -{W, 1, "", 0xa894, 0x00252525, 0}, -{W, 1, "", 0xa898, 0x00262626, 0}, -{W, 1, "", 0xa89c, 0x00272727, 0}, -{W, 1, "", 0xa8a0, 0x00282828, 0}, -{W, 1, "", 0xa8a4, 0x00292929, 0}, -{W, 1, "", 0xa8a8, 0x002a2a2a, 0}, -{W, 1, "", 0xa8ac, 0x002b2b2b, 0}, -{W, 1, "", 0xa8b0, 0x002c2c2c, 0}, -{W, 1, "", 0xa8b4, 0x002d2d2d, 0}, -{W, 1, "", 0xa8b8, 0x002e2e2e, 0}, -{W, 1, "", 0xa8bc, 0x002f2f2f, 0}, -{W, 1, "", 0xa8c0, 0x00303030, 0}, -{W, 1, "", 0xa8c4, 0x00313131, 0}, -{W, 1, "", 0xa8c8, 0x00323232, 0}, -{W, 1, "", 0xa8cc, 0x00333333, 0}, -{W, 1, "", 0xa8d0, 0x00343434, 0}, -{W, 1, "", 0xa8d4, 0x00353535, 0}, -{W, 1, "", 0xa8d8, 0x00363636, 0}, -{W, 1, "", 0xa8dc, 0x00373737, 0}, -{W, 1, "", 0xa8e0, 0x00383838, 0}, -{W, 1, "", 0xa8e4, 0x00393939, 0}, -{W, 1, "", 0xa8e8, 0x003a3a3a, 0}, -{W, 1, "", 0xa8ec, 0x003b3b3b, 0}, -{W, 1, "", 0xa8f0, 0x003c3c3c, 0}, -{W, 1, "", 0xa8f4, 0x003d3d3d, 0}, -{W, 1, "", 0xa8f8, 0x003e3e3e, 0}, -{W, 1, "", 0xa8fc, 0x003f3f3f, 0}, -{W, 1, "", 0xa900, 0x00404040, 0}, -{W, 1, "", 0xa904, 0x00414141, 0}, -{W, 1, "", 0xa908, 0x00424242, 0}, -{W, 1, "", 0xa90c, 0x00434343, 0}, -{W, 1, "", 0xa910, 0x00444444, 0}, -{W, 1, "", 0xa914, 0x00454545, 0}, -{W, 1, "", 0xa918, 0x00464646, 0}, -{W, 1, "", 0xa91c, 0x00474747, 0}, -{W, 1, "", 0xa920, 0x00484848, 0}, -{W, 1, "", 0xa924, 0x00494949, 0}, -{W, 1, "", 0xa928, 0x004a4a4a, 0}, -{W, 1, "", 0xa92c, 0x004b4b4b, 0}, -{W, 1, "", 0xa930, 0x004c4c4c, 0}, -{W, 1, "", 0xa934, 0x004d4d4d, 0}, -{W, 1, "", 0xa938, 0x004e4e4e, 0}, -{W, 1, "", 0xa93c, 0x004f4f4f, 0}, -{W, 1, "", 0xa940, 0x00505050, 0}, -{W, 1, "", 0xa944, 0x00515151, 0}, -{W, 1, "", 0xa948, 0x00525252, 0}, -{W, 1, "", 0xa94c, 0x00535353, 0}, -{W, 1, "", 0xa950, 0x00545454, 0}, -{W, 1, "", 0xa954, 0x00555555, 0}, -{W, 1, "", 0xa958, 0x00565656, 0}, -{W, 1, "", 0xa95c, 0x00575757, 0}, -{W, 1, "", 0xa960, 0x00585858, 0}, -{W, 1, "", 0xa964, 0x00595959, 0}, -{W, 1, "", 0xa968, 0x005a5a5a, 0}, -{W, 1, "", 0xa96c, 0x005b5b5b, 0}, -{W, 1, "", 0xa970, 0x005c5c5c, 0}, -{W, 1, "", 0xa974, 0x005d5d5d, 0}, -{W, 1, "", 0xa978, 0x005e5e5e, 0}, -{W, 1, "", 0xa97c, 0x005f5f5f, 0}, -{W, 1, "", 0xa980, 0x00606060, 0}, -{W, 1, "", 0xa984, 0x00616161, 0}, -{W, 1, "", 0xa988, 0x00626262, 0}, -{W, 1, "", 0xa98c, 0x00636363, 0}, -{W, 1, "", 0xa990, 0x00646464, 0}, -{W, 1, "", 0xa994, 0x00656565, 0}, -{W, 1, "", 0xa998, 0x00666666, 0}, -{W, 1, "", 0xa99c, 0x00676767, 0}, -{W, 1, "", 0xa9a0, 0x00686868, 0}, -{W, 1, "", 0xa9a4, 0x00696969, 0}, -{W, 1, "", 0xa9a8, 0x006a6a6a, 0}, -{W, 1, "", 0xa9ac, 0x006b6b6b, 0}, -{W, 1, "", 0xa9b0, 0x006c6c6c, 0}, -{W, 1, "", 0xa9b4, 0x006d6d6d, 0}, -{W, 1, "", 0xa9b8, 0x006e6e6e, 0}, -{W, 1, "", 0xa9bc, 0x006f6f6f, 0}, -{W, 1, "", 0xa9c0, 0x00707070, 0}, -{W, 1, "", 0xa9c4, 0x00717171, 0}, -{W, 1, "", 0xa9c8, 0x00727272, 0}, -{W, 1, "", 0xa9cc, 0x00737373, 0}, -{W, 1, "", 0xa9d0, 0x00747474, 0}, -{W, 1, "", 0xa9d4, 0x00757575, 0}, -{W, 1, "", 0xa9d8, 0x00767676, 0}, -{W, 1, "", 0xa9dc, 0x00777777, 0}, -{W, 1, "", 0xa9e0, 0x00787878, 0}, -{W, 1, "", 0xa9e4, 0x00797979, 0}, -{W, 1, "", 0xa9e8, 0x007a7a7a, 0}, -{W, 1, "", 0xa9ec, 0x007b7b7b, 0}, -{W, 1, "", 0xa9f0, 0x007c7c7c, 0}, -{W, 1, "", 0xa9f4, 0x007d7d7d, 0}, -{W, 1, "", 0xa9f8, 0x007e7e7e, 0}, -{W, 1, "", 0xa9fc, 0x007f7f7f, 0}, -{W, 1, "", 0xaa00, 0x00808080, 0}, -{W, 1, "", 0xaa04, 0x00818181, 0}, -{W, 1, "", 0xaa08, 0x00828282, 0}, -{W, 1, "", 0xaa0c, 0x00838383, 0}, -{W, 1, "", 0xaa10, 0x00848484, 0}, -{W, 1, "", 0xaa14, 0x00858585, 0}, -{W, 1, "", 0xaa18, 0x00868686, 0}, -{W, 1, "", 0xaa1c, 0x00878787, 0}, -{W, 1, "", 0xaa20, 0x00888888, 0}, -{W, 1, "", 0xaa24, 0x00898989, 0}, -{W, 1, "", 0xaa28, 0x008a8a8a, 0}, -{W, 1, "", 0xaa2c, 0x008b8b8b, 0}, -{W, 1, "", 0xaa30, 0x008c8c8c, 0}, -{W, 1, "", 0xaa34, 0x008d8d8d, 0}, -{W, 1, "", 0xaa38, 0x008e8e8e, 0}, -{W, 1, "", 0xaa3c, 0x008f8f8f, 0}, -{W, 1, "", 0xaa40, 0x00909090, 0}, -{W, 1, "", 0xaa44, 0x00919191, 0}, -{W, 1, "", 0xaa48, 0x00929292, 0}, -{W, 1, "", 0xaa4c, 0x00939393, 0}, -{W, 1, "", 0xaa50, 0x00949494, 0}, -{W, 1, "", 0xaa54, 0x00959595, 0}, -{W, 1, "", 0xaa58, 0x00969696, 0}, -{W, 1, "", 0xaa5c, 0x00979797, 0}, -{W, 1, "", 0xaa60, 0x00989898, 0}, -{W, 1, "", 0xaa64, 0x00999999, 0}, -{W, 1, "", 0xaa68, 0x009a9a9a, 0}, -{W, 1, "", 0xaa6c, 0x009b9b9b, 0}, -{W, 1, "", 0xaa70, 0x009c9c9c, 0}, -{W, 1, "", 0xaa74, 0x009d9d9d, 0}, -{W, 1, "", 0xaa78, 0x009e9e9e, 0}, -{W, 1, "", 0xaa7c, 0x009f9f9f, 0}, -{W, 1, "", 0xaa80, 0x00a0a0a0, 0}, -{W, 1, "", 0xaa84, 0x00a1a1a1, 0}, -{W, 1, "", 0xaa88, 0x00a2a2a2, 0}, -{W, 1, "", 0xaa8c, 0x00a3a3a3, 0}, -{W, 1, "", 0xaa90, 0x00a4a4a4, 0}, -{W, 1, "", 0xaa94, 0x00a5a5a5, 0}, -{W, 1, "", 0xaa98, 0x00a6a6a6, 0}, -{W, 1, "", 0xaa9c, 0x00a7a7a7, 0}, -{W, 1, "", 0xaaa0, 0x00a8a8a8, 0}, -{W, 1, "", 0xaaa4, 0x00a9a9a9, 0}, -{W, 1, "", 0xaaa8, 0x00aaaaaa, 0}, -{W, 1, "", 0xaaac, 0x00ababab, 0}, -{W, 1, "", 0xaab0, 0x00acacac, 0}, -{W, 1, "", 0xaab4, 0x00adadad, 0}, -{W, 1, "", 0xaab8, 0x00aeaeae, 0}, -{W, 1, "", 0xaabc, 0x00afafaf, 0}, -{W, 1, "", 0xaac0, 0x00b0b0b0, 0}, -{W, 1, "", 0xaac4, 0x00b1b1b1, 0}, -{W, 1, "", 0xaac8, 0x00b2b2b2, 0}, -{W, 1, "", 0xaacc, 0x00b3b3b3, 0}, -{W, 1, "", 0xaad0, 0x00b4b4b4, 0}, -{W, 1, "", 0xaad4, 0x00b5b5b5, 0}, -{W, 1, "", 0xaad8, 0x00b6b6b6, 0}, -{W, 1, "", 0xaadc, 0x00b7b7b7, 0}, -{W, 1, "", 0xaae0, 0x00b8b8b8, 0}, -{W, 1, "", 0xaae4, 0x00b9b9b9, 0}, -{W, 1, "", 0xaae8, 0x00bababa, 0}, -{W, 1, "", 0xaaec, 0x00bbbbbb, 0}, -{W, 1, "", 0xaaf0, 0x00bcbcbc, 0}, -{W, 1, "", 0xaaf4, 0x00bdbdbd, 0}, -{W, 1, "", 0xaaf8, 0x00bebebe, 0}, -{W, 1, "", 0xaafc, 0x00bfbfbf, 0}, -{W, 1, "", 0xab00, 0x00c0c0c0, 0}, -{W, 1, "", 0xab04, 0x00c1c1c1, 0}, -{W, 1, "", 0xab08, 0x00c2c2c2, 0}, -{W, 1, "", 0xab0c, 0x00c3c3c3, 0}, -{W, 1, "", 0xab10, 0x00c4c4c4, 0}, -{W, 1, "", 0xab14, 0x00c5c5c5, 0}, -{W, 1, "", 0xab18, 0x00c6c6c6, 0}, -{W, 1, "", 0xab1c, 0x00c7c7c7, 0}, -{W, 1, "", 0xab20, 0x00c8c8c8, 0}, -{W, 1, "", 0xab24, 0x00c9c9c9, 0}, -{W, 1, "", 0xab28, 0x00cacaca, 0}, -{W, 1, "", 0xab2c, 0x00cbcbcb, 0}, -{W, 1, "", 0xab30, 0x00cccccc, 0}, -{W, 1, "", 0xab34, 0x00cdcdcd, 0}, -{W, 1, "", 0xab38, 0x00cecece, 0}, -{W, 1, "", 0xab3c, 0x00cfcfcf, 0}, -{W, 1, "", 0xab40, 0x00d0d0d0, 0}, -{W, 1, "", 0xab44, 0x00d1d1d1, 0}, -{W, 1, "", 0xab48, 0x00d2d2d2, 0}, -{W, 1, "", 0xab4c, 0x00d3d3d3, 0}, -{W, 1, "", 0xab50, 0x00d4d4d4, 0}, -{W, 1, "", 0xab54, 0x00d5d5d5, 0}, -{W, 1, "", 0xab58, 0x00d6d6d6, 0}, -{W, 1, "", 0xab5c, 0x00d7d7d7, 0}, -{W, 1, "", 0xab60, 0x00d8d8d8, 0}, -{W, 1, "", 0xab64, 0x00d9d9d9, 0}, -{W, 1, "", 0xab68, 0x00dadada, 0}, -{W, 1, "", 0xab6c, 0x00dbdbdb, 0}, -{W, 1, "", 0xab70, 0x00dcdcdc, 0}, -{W, 1, "", 0xab74, 0x00dddddd, 0}, -{W, 1, "", 0xab78, 0x00dedede, 0}, -{W, 1, "", 0xab7c, 0x00dfdfdf, 0}, -{W, 1, "", 0xab80, 0x00e0e0e0, 0}, -{W, 1, "", 0xab84, 0x00e1e1e1, 0}, -{W, 1, "", 0xab88, 0x00e2e2e2, 0}, -{W, 1, "", 0xab8c, 0x00e3e3e3, 0}, -{W, 1, "", 0xab90, 0x00e4e4e4, 0}, -{W, 1, "", 0xab94, 0x00e5e5e5, 0}, -{W, 1, "", 0xab98, 0x00e6e6e6, 0}, -{W, 1, "", 0xab9c, 0x00e7e7e7, 0}, -{W, 1, "", 0xaba0, 0x00e8e8e8, 0}, -{W, 1, "", 0xaba4, 0x00e9e9e9, 0}, -{W, 1, "", 0xaba8, 0x00eaeaea, 0}, -{W, 1, "", 0xabac, 0x00ebebeb, 0}, -{W, 1, "", 0xabb0, 0x00ececec, 0}, -{W, 1, "", 0xabb4, 0x00ededed, 0}, -{W, 1, "", 0xabb8, 0x00eeeeee, 0}, -{W, 1, "", 0xabbc, 0x00efefef, 0}, -{W, 1, "", 0xabc0, 0x00f0f0f0, 0}, -{W, 1, "", 0xabc4, 0x00f1f1f1, 0}, -{W, 1, "", 0xabc8, 0x00f2f2f2, 0}, -{W, 1, "", 0xabcc, 0x00f3f3f3, 0}, -{W, 1, "", 0xabd0, 0x00f4f4f4, 0}, -{W, 1, "", 0xabd4, 0x00f5f5f5, 0}, -{W, 1, "", 0xabd8, 0x00f6f6f6, 0}, -{W, 1, "", 0xabdc, 0x00f7f7f7, 0}, -{W, 1, "", 0xabe0, 0x00f8f8f8, 0}, -{W, 1, "", 0xabe4, 0x00f9f9f9, 0}, -{W, 1, "", 0xabe8, 0x00fafafa, 0}, -{W, 1, "", 0xabec, 0x00fbfbfb, 0}, -{W, 1, "", 0xabf0, 0x00fcfcfc, 0}, -{W, 1, "", 0xabf4, 0x00fdfdfd, 0}, -{W, 1, "", 0xabf8, 0x00fefefe, 0}, -{W, 1, "", 0xabfc, 0x00ffffff, 0}, -{M, 1, "i915 0000:00:02.0:fb0:inteldrmfb frame buffer device", 0x0, 0x0, 0}, -{M, 1, "i915 0000:00:02.0:registered panic notifier", 0x0, 0x0, 0}, -{M, 1, "[drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0", 0x0, 0x0, 0}, -{0,}, -}; - -int niodefs = sizeof(iodefs) / sizeof(iodefs[0]); diff --git a/src/mainboard/lenovo/x60/intel_dp.c b/src/mainboard/lenovo/x60/intel_dp.c deleted file mode 100644 index e48f4f8..0000000 --- a/src/mainboard/lenovo/x60/intel_dp.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright 2013 Google Inc. - * Copyright © 2008 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Authors: - * Keith Packard keithp@keithp.com - * - */ - -#include <console/console.h> -#include <stdint.h> -#include <delay.h> -#include "i915io.h" - -u32 -pack_aux(u32 *src32, int src_bytes) -{ - u8 *src = (u8 *)src32; - int i; - u32 v = 0; - - if (src_bytes > 4) - src_bytes = 4; - for (i = 0; i < src_bytes; i++) - v |= ((u32) src[i]) << ((3-i) * 8); - return v; -} - -void -unpack_aux(u32 src, u32 *dst32, int dst_bytes) -{ - u8 *dst = (u8 *)dst32; - - int i; - if (dst_bytes > 4) - dst_bytes = 4; - for (i = 0; i < dst_bytes; i++) - dst[i] = src >> ((3-i) * 8); -} - -int -intel_dp_aux_ch(u32 ch_ctl, u32 ch_data, u32 *send, int send_bytes, - u32 *recv, int recv_size) -{ - int i; - int recv_bytes; - u32 status; - u32 aux_clock_divider; - int try, precharge = 5; - - /* The clock divider is based off the hrawclk, - * and would like to run at 2MHz. So, take the - * hrawclk value and divide by 2 and use that - * - * Note that PCH attached eDP panels should use a 125MHz input - * clock divider. - */ - /* 200 on link */ - aux_clock_divider = 200; /* SNB & IVB eDP input clock at 400Mhz */ - - /* Try to wait for any previous AUX channel activity */ - for (try = 0; try < 3; try++) { - status = io_i915_READ32(ch_ctl); - if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0) - break; - udelay(1000); - } - - if (try == 3) { - printk(BIOS_SPEW, "[000000.0] [drm:%s], ", __func__); - printk(BIOS_SPEW, "dp_aux_ch not started status 0x%08lx\n", - io_i915_READ32(ch_ctl)); - return -1; - } - - /* Must try at least 3 times according to DP spec */ - for (try = 0; try < 5; try++) { - /* Load the send data into the aux channel data registers */ - for (i = 0; i < send_bytes; i += 4) - io_i915_WRITE32(send[i], ch_data + i); - - /* Send the command and wait for it to complete */ - io_i915_WRITE32( - DP_AUX_CH_CTL_SEND_BUSY | - DP_AUX_CH_CTL_TIME_OUT_400us | - (send_bytes << DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT) | - (precharge << DP_AUX_CH_CTL_PRECHARGE_2US_SHIFT) | - (aux_clock_divider << DP_AUX_CH_CTL_BIT_CLOCK_2X_SHIFT) | - DP_AUX_CH_CTL_DONE | - DP_AUX_CH_CTL_TIME_OUT_ERROR | - DP_AUX_CH_CTL_RECEIVE_ERROR, ch_ctl); - for (;;) { - status = io_i915_READ32(ch_ctl); - if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0) - break; - udelay(100); - } - - /* Clear done status and any errors */ - io_i915_WRITE32( - status | - DP_AUX_CH_CTL_DONE | - DP_AUX_CH_CTL_TIME_OUT_ERROR | - DP_AUX_CH_CTL_RECEIVE_ERROR, ch_ctl); - - if (status & (DP_AUX_CH_CTL_TIME_OUT_ERROR | - DP_AUX_CH_CTL_RECEIVE_ERROR)) - continue; - if (status & DP_AUX_CH_CTL_DONE) - break; - } - - if ((status & DP_AUX_CH_CTL_DONE) == 0) { - printk(BIOS_SPEW, "[000000.0] [drm:%s], ", __func__); - printk(BIOS_SPEW, "dp_aux_ch not done status 0x%08x\n", status); - return -1; - } - - /* Check for timeout or receive error. - * Timeouts occur when the sink is not connected - */ - if (status & DP_AUX_CH_CTL_RECEIVE_ERROR) { - printk(BIOS_SPEW, "[000000.0] [drm:%s], ", __func__); - printk(BIOS_SPEW, - "dp_aux_ch receive error status 0x%08x\n", status); - return -1; - } - - /* Timeouts occur when the device isn't connected, so they're - * "normal" -- don't fill the kernel log with these */ - if (status & DP_AUX_CH_CTL_TIME_OUT_ERROR) { - printk(BIOS_SPEW, "[000000.0] [drm:%s], ", __func__); - printk(BIOS_SPEW, "dp_aux_ch timeout status 0x%08x\n", status); - return -1; - } - - /* Unload any bytes sent back from the other side */ - recv_bytes = ((status & DP_AUX_CH_CTL_MESSAGE_SIZE_MASK) >> - DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT); - if (recv_bytes > recv_size) - recv_bytes = recv_size; - - for (i = 0; i < recv_bytes; i += 4) - unpack_aux(io_i915_READ32(ch_data + i), - recv + i, recv_bytes - i); - - return recv_bytes; -} diff --git a/src/northbridge/intel/i945/chip.h b/src/northbridge/intel/i945/chip.h new file mode 100644 index 0000000..b0b45ca --- /dev/null +++ b/src/northbridge/intel/i945/chip.h @@ -0,0 +1,5 @@ +struct northbridge_intel_i945_config { + u32 gpu_hotplug; + int gpu_lvds_use_spread_spectrum_clock; + int gpu_lvds_is_dual_channel; +}; diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c index 433152c..5b5b0f5 100644 --- a/src/northbridge/intel/i945/gma.c +++ b/src/northbridge/intel/i945/gma.c @@ -24,9 +24,332 @@ #include <device/pci_ids.h> #include <pc80/mc146818rtc.h> #include "i945.h" +#include "chip.h" +#include <edid.h> +#include <drivers/intel/gma/edid.h> +#include <drivers/intel/gma/i915.h> +#include <string.h>
#define GDRST 0xc0
+#define LVDS_CLOCK_A_POWERUP_ALL (3 << 8) +#define LVDS_CLOCK_B_POWERUP_ALL (3 << 4) +#define LVDS_CLOCK_BOTH_POWERUP_ALL (3 << 2) +#define DISPPLANE_BGRX888 (0x6<<26) +#define DPLLB_LVDS_P2_CLOCK_DIV_7 (1 << 24) /* i915 */ + +#define PGETBL_CTL 0x2020 +#define PGETBL_ENABLED 0x00000001 + +static int gtt_setup(unsigned int mmiobase) +{ + unsigned long PGETBL_save; + + PGETBL_save = read32(mmiobase + PGETBL_CTL) & ~PGETBL_ENABLED; + PGETBL_save |= PGETBL_ENABLED; + + PGETBL_save |= pci_read_config32(dev_find_slot(0, PCI_DEVFN(2,0)), 0x5c) & 0xfffff000; + PGETBL_save |= 2; /* set GTT to 256kb */ + + write32(mmiobase + GFX_FLSH_CNTL, 0); + + write32(mmiobase + PGETBL_CTL, PGETBL_save); + + /* verify */ + if (read32(mmiobase + PGETBL_CTL) & PGETBL_ENABLED) { + printk(BIOS_DEBUG, "gtt_setup is enabled.\n"); + } else { + printk(BIOS_DEBUG, "gtt_setup failed!!!\n"); + return 1; + } + write32(mmiobase + GFX_FLSH_CNTL, 0); + + return 0; +} + +static int intel_gma_init(struct northbridge_intel_i945_config *conf, + unsigned int pphysbase, unsigned int piobase, + unsigned int pmmio, unsigned int pgfx) +{ + struct edid edid; + u8 edid_data[256]; + unsigned long temp; + int hpolarity, vpolarity; + u32 candp1, candn; + u32 best_delta = 0xffffffff; + u32 target_frequency; + u32 pixel_p1 = 1; + u32 pixel_n = 1; + u32 pixel_m1 = 1; + u32 pixel_m2 = 1; + u32 hactive, vactive, right_border, bottom_border; + u32 vsync, hsync, vblank, hblank, hfront_porch, vfront_porch; + u32 i, j; + + pphysbase += 0x20000; + + printk(BIOS_SPEW, + "i915lightup: graphics %p mmio %08x addrport %04x physbase %08x\n", + (void *)pgfx, pmmio, piobase, pphysbase); + + intel_gmbus_read_edid(pmmio + GMBUS0, 3, 0x50, edid_data); + decode_edid(edid_data, + sizeof(edid_data), &edid); + + hpolarity = (edid.phsync == '-'); + vpolarity = (edid.pvsync == '-'); + hactive = edid.x_resolution; + vactive = edid.y_resolution; + right_border = edid.hborder; + bottom_border = edid.vborder; + vblank = edid.vbl; + hblank = edid.hbl; + vsync = edid.vspw; + hsync = edid.hspw; + hfront_porch = edid.hso; + vfront_porch = edid.vso; + + for (i = 0; i < 2; i++) + for (j = 0; j < 0x100; j++) + write32(pmmio + PALETTE(i) + 4 * j, 0x10101 * j); + + write32(pmmio + PCH_PP_CONTROL, PANEL_UNLOCK_REGS + | (read32(pmmio + PCH_PP_CONTROL) & ~PANEL_UNLOCK_MASK)); + + write32(pmmio+MI_ARB_STATE, MI_ARB_C3_LP_WRITE_ENABLE | (1 << 27)); + /* Clean registers. */ + for (i = 0; i < 0x20; i += 4) + write32(pmmio + RENDER_RING_BASE + i, 0); + for (i = 0; i < 0x20; i += 4) + write32(pmmio + FENCE_REG_965_0 + i, 0); + write32(pmmio+PP_ON_DELAYS, 0); + write32(pmmio+PP_OFF_DELAYS, 0); + + /* Disable VGA. */ + write32(pmmio+VGACNTRL, VGA_DISP_DISABLE); + + /* Disable pipes. */ + write32(pmmio+PIPECONF(0), 0); + write32(pmmio+PIPECONF(1), 0); + + /* Init PRB0. */ + write32(pmmio+HWS_PGA,0x352d2000); + write32(pmmio+PRB0_CTL, 0); + write32(pmmio+PRB0_HEAD, 0); + write32(pmmio+PRB0_TAIL, 0); + write32(pmmio+PRB0_START, 0); + write32(pmmio+PRB0_CTL, 0x0001f001); + + write32(pmmio+D_STATE, DSTATE_PLL_D3_OFF + | DSTATE_GFX_CLOCK_GATING | DSTATE_DOT_CLOCK_GATING); + write32(pmmio+ECOSKPD,0x00010000); + write32(pmmio+HWSTAM,0x0000effe); + write32(pmmio+PORT_HOTPLUG_EN, conf->gpu_hotplug); + write32(pmmio+INSTPM,0x08000000 | INSTPM_AGPBUSY_DIS); + + target_frequency = conf->gpu_lvds_is_dual_channel ? edid.pixel_clock + : (2 * edid.pixel_clock); + + /* Find suitable divisors. */ + for (candp1 = 1; candp1 <= 8; candp1++) { + for (candn = 5; candn <= 10; candn++) { + u32 cur_frequency; + u32 m; /* 77 - 131. */ + u32 denom; /* 35 - 560. */ + u32 current_delta; + + denom = candn * candp1 * 7; + /* Doesnt overflow for up to + 5000000 kHz = 5 GHz. */ + m = (target_frequency * denom + 60000) / 120000; + + if (m < 77 || m > 131) + continue; + + cur_frequency = (120000 * m) / denom; + if (target_frequency > cur_frequency) + current_delta = target_frequency - cur_frequency; + else + current_delta = cur_frequency - target_frequency; + + + if (best_delta > current_delta) { + best_delta = current_delta; + pixel_n = candn; + pixel_p1 = candp1; + pixel_m2 = ((m + 3) % 5) + 7; + pixel_m1 = (m - pixel_m2) / 5; + } + } + } + + if (best_delta == 0xffffffff) { + printk (BIOS_ERR, "Couldn't find GFX clock divisors\n"); + return -1; + } + + write32(pmmio + DSPCNTR(0), DISPPLANE_BGRX888 + | DISPPLANE_SEL_PIPE_B | DISPPLANE_GAMMA_ENABLE); + + mdelay(1); + write32(pmmio + PP_CONTROL, PANEL_UNLOCK_REGS + | (read32(pmmio + PP_CONTROL) & ~PANEL_UNLOCK_MASK)); + write32(pmmio + FP0(1), + ((pixel_n - 2) << 16) + | ((pixel_m1 - 2) << 8) | pixel_m2); + write32(pmmio + DPLL(1), + DPLL_VCO_ENABLE | DPLLB_MODE_LVDS + | (conf->gpu_lvds_is_dual_channel ? DPLLB_LVDS_P2_CLOCK_DIV_7 + : DPLLB_LVDS_P2_CLOCK_DIV_14) + | (0x10000 << (pixel_p1 - 1)) + | ((conf->gpu_lvds_use_spread_spectrum_clock ? 3 : 0) << 13) + | (0x1 << (pixel_p1 - 1))); + mdelay(1); + write32(pmmio + DPLL(1), + DPLL_VCO_ENABLE | DPLLB_MODE_LVDS + | (conf->gpu_lvds_is_dual_channel ? DPLLB_LVDS_P2_CLOCK_DIV_7 + : DPLLB_LVDS_P2_CLOCK_DIV_14) + | (0x10000 << (pixel_p1 - 1)) + | ((conf->gpu_lvds_use_spread_spectrum_clock ? 3 : 0) << 13) + | (0x1 << (pixel_p1 - 1))); + mdelay(1); + write32(pmmio + HTOTAL(1), + ((hactive + right_border + hblank - 1) << 16) + | (hactive - 1)); + write32(pmmio + HBLANK(1), + ((hactive + right_border + hblank - 1) << 16) + | (hactive + right_border - 1)); + write32(pmmio + HSYNC(1), + ((hactive + right_border + hfront_porch + hsync - 1) << 16) + | (hactive + right_border + hfront_porch - 1)); + + write32(pmmio + VTOTAL(1), ((vactive + bottom_border + vblank - 1) << 16) + | (vactive - 1)); + write32(pmmio + VBLANK(1), ((vactive + bottom_border + vblank - 1) << 16) + | (vactive + bottom_border - 1)); + write32(pmmio + VSYNC(1), + (vactive + bottom_border + vfront_porch + vsync - 1) + | (vactive + bottom_border + vfront_porch - 1)); + + write32(pmmio + PIPESRC(1), ((hactive - 1) << 16) | (vactive - 1)); + + /* Disable panel fitter (we're in native resolution). */ + write32(pmmio + PF_CTL(0),0); + write32(pmmio + PF_WIN_SZ(0), 0); + write32(pmmio + PF_WIN_POS(0), 0); + write32(pmmio+PFIT_PGM_RATIOS, 0); + write32(pmmio+PFIT_CONTROL, 0); + + mdelay(1); + + write32(pmmio+DSPSIZE(0),(hactive - 1) | ((vactive - 1) << 16)); + write32(pmmio+DSPPOS(0),0); + + /* Backlight init. */ + write32(pmmio+FW_BLC_SELF, FW_BLC_SELF_EN_MASK); + write32(pmmio+FW_BLC,0x011d011a); + write32(pmmio+FW_BLC2,0x00000102); + write32(pmmio+FW_BLC_SELF, FW_BLC_SELF_EN_MASK); + write32(pmmio+FW_BLC_SELF,0x0001003f); + write32(pmmio+FW_BLC,0x011d0109); + write32(pmmio+FW_BLC2,0x00000102); + write32(pmmio+FW_BLC_SELF, FW_BLC_SELF_EN_MASK); + write32(pmmio+BLC_PWM_CTL,0x00000002); + + edid.bytes_per_line = (edid.bytes_per_line + 63) & ~63; + write32(pmmio + DSPADDR(0), 0); + write32(pmmio + DSPSURF(0), 0); + write32(pmmio + DSPSTRIDE(0), edid.bytes_per_line); + write32(pmmio + DSPCNTR(0), DISPLAY_PLANE_ENABLE | DISPPLANE_BGRX888 + | DISPPLANE_SEL_PIPE_B | DISPPLANE_GAMMA_ENABLE); + mdelay(1); + + write32(pmmio + PIPECONF(1), (1 << 31)); + write32(pmmio + LVDS, + LVDS_PORT_ENABLE + | (hpolarity << 20) | (vpolarity << 21) + | (conf->gpu_lvds_is_dual_channel ? LVDS_CLOCK_B_POWERUP_ALL + | LVDS_CLOCK_BOTH_POWERUP_ALL : 0) + | LVDS_CLOCK_A_POWERUP_ALL | (1 << 30)); + + write32(pmmio + PP_CONTROL, PANEL_UNLOCK_REGS | PANEL_POWER_OFF); + write32(pmmio + PP_CONTROL, PANEL_UNLOCK_REGS | PANEL_POWER_RESET); + mdelay(1); + write32(pmmio + PP_CONTROL, PANEL_UNLOCK_REGS + | PANEL_POWER_ON | PANEL_POWER_RESET); + + printk (BIOS_DEBUG, "waiting for panel powerup\n"); + while (1) { + u32 reg32; + reg32 = read32(pmmio + PP_STATUS); + if (((reg32 >> 28) & 3) == 0) + break; + } + printk (BIOS_DEBUG, "panel powered up\n"); + + write32(pmmio + PP_CONTROL, PANEL_POWER_ON | PANEL_POWER_RESET); + + /* Clear interrupts. */ + write32(pmmio + DEIIR, 0xffffffff); + write32(pmmio + SDEIIR, 0xffffffff); + write32(pmmio + IIR, 0xffffffff); + write32(pmmio + IMR, 0xffffffff); + write32(pmmio + EIR, 0xffffffff); + + /* GTT is the Global Translation Table for the graphics pipeline. + * It is used to translate graphics addresses to physical + * memory addresses. As in the CPU, GTTs map 4K pages. + * There are 32 bits per pixel, or 4 bytes, + * which means 1024 pixels per page. + * There are 4250 GTTs on Link: + * 2650 (X) * 1700 (Y) pixels / 1024 pixels per page. + * The setgtt function adds a further bit of flexibility: + * it allows you to set a range (the first two parameters) to point + * to a physical address (third parameter);the physical address is + * incremented by a count (fourth parameter) for each GTT in the + * range. + * Why do it this way? For ultrafast startup, + * we can point all the GTT entries to point to one page, + * and set that page to 0s: + * memset(physbase, 0, 4096); + * setgtt(0, 4250, physbase, 0); + * this takes about 2 ms, and is a win because zeroing + * the page takes a up to 200 ms. We will be exploiting this + * trick in a later rev of this code. + * This call sets the GTT to point to a linear range of pages + * starting at physbase. + */ + + if (gtt_setup(pmmio)) { + printk(BIOS_ERR, "ERROR: GTT Setup Failed!!!\n"); + return 0; + } + + /* Setup GTT. */ + for (i = 0; i < 0x2000; i++) + { + outl((i << 2) | 1, piobase); + outl(pphysbase + (i << 12) + 1, piobase + 4); + } + + temp = read32(pmmio + PGETBL_CTL); + printk(BIOS_INFO, "GTT PGETBL_CTL register: 0x%lx\n", temp); + + if (temp & 1) + printk(BIOS_INFO, "GTT Enabled\n"); + else + printk(BIOS_ERR, "ERROR: GTT is still Disabled!!!\n"); + + printk(BIOS_SPEW, "memset %p to 0x00 for %d bytes\n", + (void *)pgfx, hactive * vactive * 4); + memset((void *)pgfx, 0x00, hactive * vactive * 4); + + set_vbe_mode_info_valid(&edid, pgfx); + + return 0; +} + + static void gma_func0_init(struct device *dev) { u32 reg32; @@ -40,8 +363,8 @@ static void gma_func0_init(struct device *dev)
/* IGD needs to be Bus Master */ reg32 = pci_read_config32(dev, PCI_COMMAND); - pci_write_config32(dev, PCI_COMMAND, reg32 | PCI_COMMAND_MASTER); - + pci_write_config32(dev, PCI_COMMAND, reg32 | PCI_COMMAND_MASTER + | PCI_COMMAND_IO | PCI_COMMAND_MEMORY);
#if !CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT /* PCI Init, will run VBIOS */ @@ -53,17 +376,19 @@ static void gma_func0_init(struct device *dev) /* This should probably run before post VBIOS init. */ printk(BIOS_SPEW, "Initializing VGA without OPROM.\n"); u32 iobase, mmiobase, graphics_base; + struct northbridge_intel_i945_config *conf = dev->chip_info; + iobase = dev->resource_list[1].base; mmiobase = dev->resource_list[0].base; - graphics_base = dev->resource_list[2].base + 0x20000; + graphics_base = dev->resource_list[2].base;
printk(BIOS_SPEW, "GMADR=0x%08x GTTADR=0x%08x\n", pci_read_config32(dev, 0x18), pci_read_config32(dev, 0x1c) );
- int i915lightup(u32 physbase, u32 iobase, u32 mmiobase, u32 gfx); - i915lightup(uma_memory_base, iobase, mmiobase, graphics_base); + intel_gma_init(conf, pci_read_config32(dev, 0x5c) & ~0xf, + iobase, mmiobase, graphics_base); #endif
} @@ -92,7 +417,7 @@ static void gma_func1_init(struct device *dev) /* IGD needs to be Bus Master, also enable IO accesss */ reg32 = pci_read_config32(dev, PCI_COMMAND); pci_write_config32(dev, PCI_COMMAND, reg32 | - PCI_COMMAND_MASTER | PCI_COMMAND_IO); + PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY | PCI_COMMAND_IO);
if (get_option(&val, "tft_brightness") == CB_SUCCESS) pci_write_config8(dev, 0xf4, val);