summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2009-10-06 17:58:32 -0700
committerEric Anholt <eric@anholt.net>2009-10-06 17:58:32 -0700
commit6a716a25abc84f1c7f766fd3bfa1c2aac91e6ae7 (patch)
tree08faee35a22428d6d9a2a166badf5c5fb881e152 /src
parente9aff787a55d684e3b9c6d5ea8ac2926be952280 (diff)
Remove the reg_dumper code, now that it's been moved to intel_gpu_tools.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/i830_accel.c1
-rw-r--r--src/i830_debug.c1809
-rw-r--r--src/i830_debug.h30
-rw-r--r--src/i830_driver.c1
-rw-r--r--src/reg_dumper/Makefile.am9
6 files changed, 1 insertions, 1851 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index f7fd053f..3b6e64d0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -73,8 +73,6 @@ intel_drv_la_SOURCES = \
i830_batchbuffer.c \
i830_batchbuffer.h \
i830_common.h \
- i830_debug.c \
- i830_debug.h \
i830_driver.c \
i830.h \
i830_memory.c \
diff --git a/src/i830_accel.c b/src/i830_accel.c
index bc71611b..51aa6a4a 100644
--- a/src/i830_accel.c
+++ b/src/i830_accel.c
@@ -45,7 +45,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xf86.h"
#include "i830.h"
#include "i810_reg.h"
-#include "i830_debug.h"
#include "i830_ring.h"
#include "i915_drm.h"
diff --git a/src/i830_debug.c b/src/i830_debug.c
deleted file mode 100644
index bca07c68..00000000
--- a/src/i830_debug.c
+++ /dev/null
@@ -1,1809 +0,0 @@
-/*
- * Copyright © 2006 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:
- * Eric Anholt <eric@anholt.net>
- *
- */
-
-#include <inttypes.h>
-
-#ifdef REG_DUMPER
-#include "reg_dumper/reg_dumper.h"
-
-#else
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "xf86.h"
-#include "i830.h"
-#include "i830_debug.h"
-#include <strings.h>
-
-#endif
-
-#include "i810_reg.h"
-
-#define DEBUGSTRING(func) static char *func(I830Ptr pI830, int reg, \
- uint32_t val)
-
-DEBUGSTRING(i830_16bit_func)
-{
- return XNFprintf("0x%04x", (uint16_t) val);
-}
-
-DEBUGSTRING(i830_debug_dcc)
-{
- char *addressing = NULL;
-
- if (!IS_MOBILE(pI830))
- return NULL;
-
- if (IS_I965G(pI830)) {
- if (val & (1 << 1))
- addressing = "dual channel interleaved";
- else
- addressing = "single or dual channel asymmetric";
- } else {
- switch (val & 3) {
- case 0:
- addressing = "single channel";
- break;
- case 1:
- addressing = "dual channel asymmetric";
- break;
- case 2:
- addressing = "dual channel interleaved";
- break;
- case 3:
- addressing = "unknown channel layout";
- break;
- }
- }
-
- return XNFprintf("%s, XOR randomization: %sabled, XOR bit: %d",
- addressing,
- (val & (1 << 10)) ? "dis" : "en",
- (val & (1 << 9)) ? 17 : 11);
-}
-
-DEBUGSTRING(i830_debug_chdecmisc)
-{
- char *enhmodesel = NULL;
-
- switch ((val >> 5) & 3) {
- case 1:
- enhmodesel = "XOR bank/rank";
- break;
- case 2:
- enhmodesel = "swap bank";
- break;
- case 3:
- enhmodesel = "XOR bank";
- break;
- case 0:
- enhmodesel = "none";
- break;
- }
-
- return
- XNFprintf("%s, ch2 enh %sabled, ch1 enh %sabled, ch0 enh %sabled, "
- "flex %sabled, ep %spresent", enhmodesel,
- (val & (1 << 4)) ? "en" : "dis",
- (val & (1 << 3)) ? "en" : "dis",
- (val & (1 << 2)) ? "en" : "dis",
- (val & (1 << 1)) ? "en" : "dis",
- (val & (1 << 0)) ? "" : "not ");
-}
-
-DEBUGSTRING(i830_debug_xyminus1)
-{
- return XNFprintf("%d, %d", (val & 0xffff) + 1,
- ((val & 0xffff0000) >> 16) + 1);
-}
-
-DEBUGSTRING(i830_debug_yxminus1)
-{
- return XNFprintf("%d, %d", ((val & 0xffff0000) >> 16) + 1,
- (val & 0xffff) + 1);
-}
-
-DEBUGSTRING(i830_debug_xy)
-{
- return XNFprintf("%d, %d", (val & 0xffff), ((val & 0xffff0000) >> 16));
-}
-
-DEBUGSTRING(i830_debug_dspstride)
-{
- return XNFprintf("%d bytes", val);
-}
-
-DEBUGSTRING(i830_debug_dspcntr)
-{
- char *enabled = val & DISPLAY_PLANE_ENABLE ? "enabled" : "disabled";
- char plane = val & DISPPLANE_SEL_PIPE_B ? 'B' : 'A';
- if (IS_IGDNG(pI830))
- return XNFprintf("%s", enabled);
- else
- return XNFprintf("%s, pipe %c", enabled, plane);
-}
-
-DEBUGSTRING(i830_debug_pipeconf)
-{
- char *enabled = val & PIPEACONF_ENABLE ? "enabled" : "disabled";
- char *bit30;
- char *bpc = NULL;
- if (IS_I965G(pI830))
- bit30 = val & I965_PIPECONF_ACTIVE ? "active" : "inactive";
- else
- bit30 =
- val & PIPEACONF_DOUBLE_WIDE ? "double-wide" : "single-wide";
-
- if (IS_IGDNG(pI830)) {
- switch (val & (7 << 5)) {
- case PIPECONF_8BPP:
- bpc = "8bpc";
- break;
- case PIPECONF_10BPP:
- bpc = "10bpc";
- break;
- case PIPECONF_6BPP:
- bpc = "6bpc";
- break;
- case PIPECONF_12BPP:
- bpc = "12bpc";
- break;
- }
- }
- if (IS_IGDNG(pI830))
- return XNFprintf("%s, %s, %s", enabled, bit30, bpc);
- else
- return XNFprintf("%s, %s", enabled, bit30);
-}
-
-DEBUGSTRING(i830_debug_pipestat)
-{
- char *_FIFO_UNDERRUN = val & FIFO_UNDERRUN ? " FIFO_UNDERRUN" : "";
- char *_CRC_ERROR_ENABLE =
- val & CRC_ERROR_ENABLE ? " CRC_ERROR_ENABLE" : "";
- char *_CRC_DONE_ENABLE =
- val & CRC_DONE_ENABLE ? " CRC_DONE_ENABLE" : "";
- char *_GMBUS_EVENT_ENABLE =
- val & GMBUS_EVENT_ENABLE ? " GMBUS_EVENT_ENABLE" : "";
- char *_VSYNC_INT_ENABLE =
- val & VSYNC_INT_ENABLE ? " VSYNC_INT_ENABLE" : "";
- char *_DLINE_COMPARE_ENABLE =
- val & DLINE_COMPARE_ENABLE ? " DLINE_COMPARE_ENABLE" : "";
- char *_DPST_EVENT_ENABLE =
- val & DPST_EVENT_ENABLE ? " DPST_EVENT_ENABLE" : "";
- char *_LBLC_EVENT_ENABLE =
- val & LBLC_EVENT_ENABLE ? " LBLC_EVENT_ENABLE" : "";
- char *_OFIELD_INT_ENABLE =
- val & OFIELD_INT_ENABLE ? " OFIELD_INT_ENABLE" : "";
- char *_EFIELD_INT_ENABLE =
- val & EFIELD_INT_ENABLE ? " EFIELD_INT_ENABLE" : "";
- char *_SVBLANK_INT_ENABLE =
- val & SVBLANK_INT_ENABLE ? " SVBLANK_INT_ENABLE" : "";
- char *_VBLANK_INT_ENABLE =
- val & VBLANK_INT_ENABLE ? " VBLANK_INT_ENABLE" : "";
- char *_OREG_UPDATE_ENABLE =
- val & OREG_UPDATE_ENABLE ? " OREG_UPDATE_ENABLE" : "";
- char *_CRC_ERROR_INT_STATUS =
- val & CRC_ERROR_INT_STATUS ? " CRC_ERROR_INT_STATUS" : "";
- char *_CRC_DONE_INT_STATUS =
- val & CRC_DONE_INT_STATUS ? " CRC_DONE_INT_STATUS" : "";
- char *_GMBUS_INT_STATUS =
- val & GMBUS_INT_STATUS ? " GMBUS_INT_STATUS" : "";
- char *_VSYNC_INT_STATUS =
- val & VSYNC_INT_STATUS ? " VSYNC_INT_STATUS" : "";
- char *_DLINE_COMPARE_STATUS =
- val & DLINE_COMPARE_STATUS ? " DLINE_COMPARE_STATUS" : "";
- char *_DPST_EVENT_STATUS =
- val & DPST_EVENT_STATUS ? " DPST_EVENT_STATUS" : "";
- char *_LBLC_EVENT_STATUS =
- val & LBLC_EVENT_STATUS ? " LBLC_EVENT_STATUS" : "";
- char *_OFIELD_INT_STATUS =
- val & OFIELD_INT_STATUS ? " OFIELD_INT_STATUS" : "";
- char *_EFIELD_INT_STATUS =
- val & EFIELD_INT_STATUS ? " EFIELD_INT_STATUS" : "";
- char *_SVBLANK_INT_STATUS =
- val & SVBLANK_INT_STATUS ? " SVBLANK_INT_STATUS" : "";
- char *_VBLANK_INT_STATUS =
- val & VBLANK_INT_STATUS ? " VBLANK_INT_STATUS" : "";
- char *_OREG_UPDATE_STATUS =
- val & OREG_UPDATE_STATUS ? " OREG_UPDATE_STATUS" : "";
- return
- XNFprintf
- ("status:%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
- _FIFO_UNDERRUN, _CRC_ERROR_ENABLE, _CRC_DONE_ENABLE,
- _GMBUS_EVENT_ENABLE, _VSYNC_INT_ENABLE, _DLINE_COMPARE_ENABLE,
- _DPST_EVENT_ENABLE, _LBLC_EVENT_ENABLE, _OFIELD_INT_ENABLE,
- _EFIELD_INT_ENABLE, _SVBLANK_INT_ENABLE, _VBLANK_INT_ENABLE,
- _OREG_UPDATE_ENABLE, _CRC_ERROR_INT_STATUS, _CRC_DONE_INT_STATUS,
- _GMBUS_INT_STATUS, _VSYNC_INT_STATUS, _DLINE_COMPARE_STATUS,
- _DPST_EVENT_STATUS, _LBLC_EVENT_STATUS, _OFIELD_INT_STATUS,
- _EFIELD_INT_STATUS, _SVBLANK_INT_STATUS, _VBLANK_INT_STATUS,
- _OREG_UPDATE_STATUS);
-}
-
-DEBUGSTRING(i830_debug_hvtotal)
-{
- return XNFprintf("%d active, %d total", (val & 0xffff) + 1,
- ((val & 0xffff0000) >> 16) + 1);
-}
-
-DEBUGSTRING(i830_debug_hvsyncblank)
-{
- return XNFprintf("%d start, %d end", (val & 0xffff) + 1,
- ((val & 0xffff0000) >> 16) + 1);
-}
-
-DEBUGSTRING(i830_debug_vgacntrl)
-{
- return XNFprintf("%s", val & VGA_DISP_DISABLE ? "disabled" : "enabled");
-}
-
-DEBUGSTRING(i830_debug_fp)
-{
- if (IS_IGD(pI830)) {
- return XNFprintf("n = %d, m1 = %d, m2 = %d",
- ffs((val & FP_N_IGD_DIV_MASK) >>
- FP_N_DIV_SHIFT) - 1,
- ((val & FP_M1_DIV_MASK) >> FP_M1_DIV_SHIFT),
- ((val & FP_M2_IGD_DIV_MASK) >>
- FP_M2_DIV_SHIFT));
- }
- return XNFprintf("n = %d, m1 = %d, m2 = %d",
- ((val & FP_N_DIV_MASK) >> FP_N_DIV_SHIFT),
- ((val & FP_M1_DIV_MASK) >> FP_M1_DIV_SHIFT),
- ((val & FP_M2_DIV_MASK) >> FP_M2_DIV_SHIFT));
-}
-
-DEBUGSTRING(i830_debug_vga_pd)
-{
- int vga0_p1, vga0_p2, vga1_p1, vga1_p2;
-
- /* XXX: i9xx version */
-
- if (val & VGA0_PD_P1_DIV_2)
- vga0_p1 = 2;
- else
- vga0_p1 = ((val & VGA0_PD_P1_MASK) >> VGA0_PD_P1_SHIFT) + 2;
- vga0_p2 = (val & VGA0_PD_P2_DIV_4) ? 4 : 2;
-
- if (val & VGA1_PD_P1_DIV_2)
- vga1_p1 = 2;
- else
- vga1_p1 = ((val & VGA1_PD_P1_MASK) >> VGA1_PD_P1_SHIFT) + 2;
- vga1_p2 = (val & VGA1_PD_P2_DIV_4) ? 4 : 2;
-
- return XNFprintf("vga0 p1 = %d, p2 = %d, vga1 p1 = %d, p2 = %d",
- vga0_p1, vga0_p2, vga1_p1, vga1_p2);
-}
-
-DEBUGSTRING(i830_debug_pp_status)
-{
- char *status = val & PP_ON ? "on" : "off";
- char *ready = val & PP_READY ? "ready" : "not ready";
- char *seq = "unknown";
-
- switch (val & PP_SEQUENCE_MASK) {
- case PP_SEQUENCE_NONE:
- seq = "idle";
- break;
- case PP_SEQUENCE_ON:
- seq = "on";
- break;
- case PP_SEQUENCE_OFF:
- seq = "off";
- break;
- }
-
- return XNFprintf("%s, %s, sequencing %s", status, ready, seq);
-}
-
-DEBUGSTRING(i830_debug_pp_control)
-{
- return XNFprintf("power target: %s",
- val & POWER_TARGET_ON ? "on" : "off");
-}
-
-DEBUGSTRING(i830_debug_dpll)
-{
- char *enabled = val & DPLL_VCO_ENABLE ? "enabled" : "disabled";
- char *dvomode = val & DPLL_DVO_HIGH_SPEED ? "dvo" : "non-dvo";
- char *vgamode = val & DPLL_VGA_MODE_DIS ? "" : ", VGA";
- char *mode = "unknown";
- char *clock = "unknown";
- char *fpextra = val & DISPLAY_RATE_SELECT_FPA1 ? ", using FPx1!" : "";
- char sdvoextra[20];
- int p1, p2 = 0;
-
- if (IS_I9XX(pI830)) {
- if (IS_IGD(pI830)) {
- p1 = ffs((val & DPLL_FPA01_P1_POST_DIV_MASK_IGD) >>
- DPLL_FPA01_P1_POST_DIV_SHIFT_IGD);
- } else {
- p1 = ffs((val & DPLL_FPA01_P1_POST_DIV_MASK) >>
- DPLL_FPA01_P1_POST_DIV_SHIFT);
- }
- switch (val & DPLL_MODE_MASK) {
- case DPLLB_MODE_DAC_SERIAL:
- mode = "DAC/serial";
- p2 = val & DPLL_DAC_SERIAL_P2_CLOCK_DIV_5 ? 5 : 10;
- break;
- case DPLLB_MODE_LVDS:
- mode = "LVDS";
- p2 = val & DPLLB_LVDS_P2_CLOCK_DIV_7 ? 7 : 14;
- break;
- }
- } else {
- Bool is_lvds = (INREG(LVDS) & LVDS_PORT_EN) && (reg == DPLL_B);
-
- if (is_lvds) {
- mode = "LVDS";
- p1 = ffs((val & DPLL_FPA01_P1_POST_DIV_MASK_I830_LVDS)
- >> DPLL_FPA01_P1_POST_DIV_SHIFT);
- if ((INREG(LVDS) & LVDS_CLKB_POWER_MASK) ==
- LVDS_CLKB_POWER_UP)
- p2 = 7;
- else
- p2 = 14;
-
- } else {
- mode = "DAC/serial";
- if (val & PLL_P1_DIVIDE_BY_TWO) {
- p1 = 2;
- } else {
- /* Map the number in the field to (3, 33) */
- p1 = ((val & DPLL_FPA01_P1_POST_DIV_MASK_I830)
- >> DPLL_FPA01_P1_POST_DIV_SHIFT) + 2;
- }
- if (val & PLL_P2_DIVIDE_BY_4)
- p2 = 4;
- else
- p2 = 2;
- }
- }
-
- switch (val & PLL_REF_INPUT_MASK) {
- case PLL_REF_INPUT_DREFCLK:
- clock = "default";
- break;
- case PLL_REF_INPUT_TVCLKINA:
- clock = "TV A";
- break;
- case PLL_REF_INPUT_TVCLKINBC:
- clock = "TV B/C";
- break;
- case PLLB_REF_INPUT_SPREADSPECTRUMIN:
- if (reg == DPLL_B)
- clock = "spread spectrum";
- break;
- }
-
- if (IS_I945G(pI830) || IS_I945GM(pI830) || IS_G33CLASS(pI830)) {
- sprintf(sdvoextra, ", SDVO mult %d",
- (int)((val & SDVO_MULTIPLIER_MASK) >>
- SDVO_MULTIPLIER_SHIFT_HIRES) + 1);
- } else {
- sdvoextra[0] = '\0';
- }
-
- return XNFprintf("%s, %s%s, %s clock, %s mode, p1 = %d, "
- "p2 = %d%s%s",
- enabled, dvomode, vgamode, clock, mode, p1, p2,
- fpextra, sdvoextra);
-}
-
-DEBUGSTRING(i830_debug_dpll_test)
-{
- char *dpllandiv = val & DPLLA_TEST_N_BYPASS ? ", DPLLA N bypassed" : "";
- char *dpllamdiv = val & DPLLA_TEST_M_BYPASS ? ", DPLLA M bypassed" : "";
- char *dpllainput = val & DPLLA_INPUT_BUFFER_ENABLE ?
- "" : ", DPLLA input buffer disabled";
- char *dpllbndiv = val & DPLLB_TEST_N_BYPASS ? ", DPLLB N bypassed" : "";
- char *dpllbmdiv = val & DPLLB_TEST_M_BYPASS ? ", DPLLB M bypassed" : "";
- char *dpllbinput = val & DPLLB_INPUT_BUFFER_ENABLE ?
- "" : ", DPLLB input buffer disabled";
-
- return XNFprintf("%s%s%s%s%s%s",
- dpllandiv, dpllamdiv, dpllainput,
- dpllbndiv, dpllbmdiv, dpllbinput);
-}
-
-DEBUGSTRING(i830_debug_adpa)
-{
- char pipe = (val & ADPA_PIPE_B_SELECT) ? 'B' : 'A';
- char *enable = (val & ADPA_DAC_ENABLE) ? "enabled" : "disabled";
- char hsync = (val & ADPA_HSYNC_ACTIVE_HIGH) ? '+' : '-';
- char vsync = (val & ADPA_VSYNC_ACTIVE_HIGH) ? '+' : '-';
-
- if (IS_IGDNG(pI830))
- return XNFprintf("%s, transcoder %c, %chsync, %cvsync",
- enable, pipe, hsync, vsync);
- else
- return XNFprintf("%s, pipe %c, %chsync, %cvsync",
- enable, pipe, hsync, vsync);
-}
-
-DEBUGSTRING(i830_debug_lvds)
-{
- char pipe = val & LVDS_PIPEB_SELECT ? 'B' : 'A';
- char *enable = val & LVDS_PORT_EN ? "enabled" : "disabled";
- int depth;
- char *channels;
-
- if ((val & LVDS_A3_POWER_MASK) == LVDS_A3_POWER_UP)
- depth = 24;
- else
- depth = 18;
- if ((val & LVDS_B0B3_POWER_MASK) == LVDS_B0B3_POWER_UP)
- channels = "2 channels";
- else
- channels = "1 channel";
-
- return XNFprintf("%s, pipe %c, %d bit, %s",
- enable, pipe, depth, channels);
-}
-
-DEBUGSTRING(i830_debug_dvo)
-{
- char *enable = val & DVO_ENABLE ? "enabled" : "disabled";
- char pipe = val & DVO_PIPE_B_SELECT ? 'B' : 'A';
- char *stall;
- char hsync = val & DVO_HSYNC_ACTIVE_HIGH ? '+' : '-';
- char vsync = val & DVO_VSYNC_ACTIVE_HIGH ? '+' : '-';
-
- switch (val & DVO_PIPE_STALL_MASK) {
- case DVO_PIPE_STALL_UNUSED:
- stall = "no stall";
- break;
- case DVO_PIPE_STALL:
- stall = "stall";
- break;
- case DVO_PIPE_STALL_TV:
- stall = "TV stall";
- break;
- default:
- stall = "unknown stall";
- break;
- }
-
- return XNFprintf("%s, pipe %c, %s, %chsync, %cvsync",
- enable, pipe, stall, hsync, vsync);
-}
-
-DEBUGSTRING(i830_debug_sdvo)
-{
- char *enable = val & SDVO_ENABLE ? "enabled" : "disabled";
- char pipe = val & SDVO_PIPE_B_SELECT ? 'B' : 'A';
- char *stall = val & SDVO_STALL_SELECT ? "enabled" : "disabled";
- char *detected = val & SDVO_DETECTED ? "" : "not ";
- char *gang = val & SDVOC_GANG_MODE ? ", gang mode" : "";
- char sdvoextra[20];
-
- if (IS_I915G(pI830) || IS_I915GM(pI830)) {
- sprintf(sdvoextra, ", SDVO mult %d",
- (int)((val & SDVO_PORT_MULTIPLY_MASK) >>
- SDVO_PORT_MULTIPLY_SHIFT) + 1);
- } else {
- sdvoextra[0] = '\0';
- }
-
- return XNFprintf("%s, pipe %c, stall %s, %sdetected%s%s",
- enable, pipe, stall, detected, sdvoextra, gang);
-}
-
-DEBUGSTRING(i830_debug_dspclk_gate_d)
-{
- char *DPUNIT_B = val & DPUNIT_B_CLOCK_GATE_DISABLE ? " DPUNIT_B" : "";
- char *VSUNIT = val & VSUNIT_CLOCK_GATE_DISABLE ? " VSUNIT" : "";
- char *VRHUNIT = val & VRHUNIT_CLOCK_GATE_DISABLE ? " VRHUNIT" : "";
- char *VRDUNIT = val & VRDUNIT_CLOCK_GATE_DISABLE ? " VRDUNIT" : "";
- char *AUDUNIT = val & AUDUNIT_CLOCK_GATE_DISABLE ? " AUDUNIT" : "";
- char *DPUNIT_A = val & DPUNIT_A_CLOCK_GATE_DISABLE ? " DPUNIT_A" : "";
- char *DPCUNIT = val & DPCUNIT_CLOCK_GATE_DISABLE ? " DPCUNIT" : "";
- char *TVRUNIT = val & TVRUNIT_CLOCK_GATE_DISABLE ? " TVRUNIT" : "";
- char *TVCUNIT = val & TVCUNIT_CLOCK_GATE_DISABLE ? " TVCUNIT" : "";
- char *TVFUNIT = val & TVFUNIT_CLOCK_GATE_DISABLE ? " TVFUNIT" : "";
- char *TVEUNIT = val & TVEUNIT_CLOCK_GATE_DISABLE ? " TVEUNIT" : "";
- char *DVSUNIT = val & DVSUNIT_CLOCK_GATE_DISABLE ? " DVSUNIT" : "";
- char *DSSUNIT = val & DSSUNIT_CLOCK_GATE_DISABLE ? " DSSUNIT" : "";
- char *DDBUNIT = val & DDBUNIT_CLOCK_GATE_DISABLE ? " DDBUNIT" : "";
- char *DPRUNIT = val & DPRUNIT_CLOCK_GATE_DISABLE ? " DPRUNIT" : "";
- char *DPFUNIT = val & DPFUNIT_CLOCK_GATE_DISABLE ? " DPFUNIT" : "";
- char *DPBMUNIT = val & DPBMUNIT_CLOCK_GATE_DISABLE ? " DPBMUNIT" : "";
- char *DPLSUNIT = val & DPLSUNIT_CLOCK_GATE_DISABLE ? " DPLSUNIT" : "";
- char *DPLUNIT = val & DPLUNIT_CLOCK_GATE_DISABLE ? " DPLUNIT" : "";
- char *DPOUNIT = val & DPOUNIT_CLOCK_GATE_DISABLE ? " DPOUNIT" : "";
- char *DPBUNIT = val & DPBUNIT_CLOCK_GATE_DISABLE ? " DPBUNIT" : "";
- char *DCUNIT = val & DCUNIT_CLOCK_GATE_DISABLE ? " DCUNIT" : "";
- char *DPUNIT = val & DPUNIT_CLOCK_GATE_DISABLE ? " DPUNIT" : "";
- char *VRUNIT = val & VRUNIT_CLOCK_GATE_DISABLE ? " VRUNIT" : "";
- char *OVHUNIT = val & OVHUNIT_CLOCK_GATE_DISABLE ? " OVHUNIT" : "";
- char *DPIOUNIT = val & DPIOUNIT_CLOCK_GATE_DISABLE ? " DPIOUNIT" : "";
- char *OVFUNIT = val & OVFUNIT_CLOCK_GATE_DISABLE ? " OVFUNIT" : "";
- char *OVBUNIT = val & OVBUNIT_CLOCK_GATE_DISABLE ? " OVBUNIT" : "";
- char *OVRUNIT = val & OVRUNIT_CLOCK_GATE_DISABLE ? " OVRUNIT" : "";
- char *OVCUNIT = val & OVCUNIT_CLOCK_GATE_DISABLE ? " OVCUNIT" : "";
- char *OVUUNIT = val & OVUUNIT_CLOCK_GATE_DISABLE ? " OVUUNIT" : "";
- char *OVLUNIT = val & OVLUNIT_CLOCK_GATE_DISABLE ? " OVLUNIT" : "";
-
- return
- XNFprintf
- ("clock gates disabled:%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
- DPUNIT_B, VSUNIT, VRHUNIT, VRDUNIT, AUDUNIT, DPUNIT_A, DPCUNIT,
- TVRUNIT, TVCUNIT, TVFUNIT, TVEUNIT, DVSUNIT, DSSUNIT, DDBUNIT,
- DPRUNIT, DPFUNIT, DPBMUNIT, DPLSUNIT, DPLUNIT, DPOUNIT, DPBUNIT,
- DCUNIT, DPUNIT, VRUNIT, OVHUNIT, DPIOUNIT, OVFUNIT, OVBUNIT,
- OVRUNIT, OVCUNIT, OVUUNIT, OVLUNIT);
-}
-
-DEBUGSTRING(i810_debug_915_fence)
-{
- char *enable = (val & 1) ? " enabled" : "disabled";
- char format = (val & 1 << 12) ? 'Y' : 'X';
- int pitch = 1 << (((val & 0x70) >> 4) - 1);
- unsigned int offset = val & 0x0ff00000;
- int size = (1024 * 1024) << (((val & 0x700) >> 8) - 1);
-
- if (IS_I965G(pI830)
- || ((IS_I915G(pI830) || IS_I915GM(pI830)) && reg >= FENCE_NEW))
- return NULL;
-
- if (format == 'X')
- pitch *= 4;
-
- return XNFprintf("%s, %c tiled, %4d pitch, 0x%08x - 0x%08x (%dkb)",
- enable, format, pitch, offset, offset + size,
- size / 1024);
-}
-
-DEBUGSTRING(i810_debug_965_fence_start)
-{
- char *enable = (val & FENCE_VALID) ? " enabled" : "disabled";
- char format = (val & I965_FENCE_Y_MAJOR) ? 'Y' : 'X';
- int pitch = ((val & 0xffc) >> 2) * 128;
- unsigned int offset = val & 0xfffff000;
-
- if (!IS_I965G(pI830))
- return NULL;
-
- return XNFprintf("%s, %c tile walk, %4d pitch, 0x%08x start",
- enable, format, pitch, offset);
-}
-
-DEBUGSTRING(i810_debug_965_fence_end)
-{
- unsigned int end = val & 0xfffff000;
-
- if (!IS_I965G(pI830))
- return NULL;
-
- return XNFprintf(" 0x%08x end", end);
-}
-
-#define DEFINEREG(reg) \
- { reg, #reg, NULL, 0 }
-#define DEFINEREG_16BIT(reg) \
- { reg, #reg, i830_16bit_func, 0 }
-#define DEFINEREG2(reg, func) \
- { reg, #reg, func, 0 }
-
-struct i830SnapshotRec {
- int reg;
- char *name;
- char *(*debug_output) (I830Ptr pI830, int reg, uint32_t val);
- uint32_t val;
-};
-
-static struct i830SnapshotRec i830_snapshot[] = {
- DEFINEREG2(DCC, i830_debug_dcc),
- DEFINEREG2(CHDECMISC, i830_debug_chdecmisc),
- DEFINEREG_16BIT(C0DRB0),
- DEFINEREG_16BIT(C0DRB1),
- DEFINEREG_16BIT(C0DRB2),
- DEFINEREG_16BIT(C0DRB3),
- DEFINEREG_16BIT(C1DRB0),
- DEFINEREG_16BIT(C1DRB1),
- DEFINEREG_16BIT(C1DRB2),
- DEFINEREG_16BIT(C1DRB3),
- DEFINEREG_16BIT(C0DRA01),
- DEFINEREG_16BIT(C0DRA23),
- DEFINEREG_16BIT(C1DRA01),
- DEFINEREG_16BIT(C1DRA23),
-
- DEFINEREG(PGETBL_CTL),
-
- DEFINEREG2(VCLK_DIVISOR_VGA0, i830_debug_fp),
- DEFINEREG2(VCLK_DIVISOR_VGA1, i830_debug_fp),
- DEFINEREG2(VCLK_POST_DIV, i830_debug_vga_pd),
- DEFINEREG2(DPLL_TEST, i830_debug_dpll_test),
- DEFINEREG(CACHE_MODE_0),
- DEFINEREG(D_STATE),
- DEFINEREG2(DSPCLK_GATE_D, i830_debug_dspclk_gate_d),
- DEFINEREG(RENCLK_GATE_D1),
- DEFINEREG(RENCLK_GATE_D2),
-/* DEFINEREG(RAMCLK_GATE_D), CRL only */
- DEFINEREG2(SDVOB, i830_debug_sdvo),
- DEFINEREG2(SDVOC, i830_debug_sdvo),
-/* DEFINEREG(UDIB_SVB_SHB_CODES), CRL only */
-/* DEFINEREG(UDIB_SHA_BLANK_CODES), CRL only */
- DEFINEREG(SDVOUDI),
- DEFINEREG(DSPARB),
- DEFINEREG(DSPFW1),
- DEFINEREG(DSPFW2),
- DEFINEREG(DSPFW3),
-
- DEFINEREG2(ADPA, i830_debug_adpa),
- DEFINEREG2(LVDS, i830_debug_lvds),
- DEFINEREG2(DVOA, i830_debug_dvo),
- DEFINEREG2(DVOB, i830_debug_dvo),
- DEFINEREG2(DVOC, i830_debug_dvo),
- DEFINEREG(DVOA_SRCDIM),
- DEFINEREG(DVOB_SRCDIM),
- DEFINEREG(DVOC_SRCDIM),
-
- DEFINEREG2(PP_CONTROL, i830_debug_pp_control),
- DEFINEREG2(PP_STATUS, i830_debug_pp_status),
- DEFINEREG(PP_ON_DELAYS),
- DEFINEREG(PP_OFF_DELAYS),
- DEFINEREG(PP_DIVISOR),
- DEFINEREG(PFIT_CONTROL),
- DEFINEREG(PFIT_PGM_RATIOS),
- DEFINEREG(PORT_HOTPLUG_EN),
- DEFINEREG(PORT_HOTPLUG_STAT),
-
- DEFINEREG2(DSPACNTR, i830_debug_dspcntr),
- DEFINEREG2(DSPASTRIDE, i830_debug_dspstride),
- DEFINEREG2(DSPAPOS, i830_debug_xy),
- DEFINEREG2(DSPASIZE, i830_debug_xyminus1),
- DEFINEREG(DSPABASE),
- DEFINEREG(DSPASURF),
- DEFINEREG(DSPATILEOFF),
- DEFINEREG2(PIPEACONF, i830_debug_pipeconf),
- DEFINEREG2(PIPEASRC, i830_debug_yxminus1),
- DEFINEREG2(PIPEASTAT, i830_debug_pipestat),
- DEFINEREG(PIPEA_GMCH_DATA_M),
- DEFINEREG(PIPEA_GMCH_DATA_N),
- DEFINEREG(PIPEA_DP_LINK_M),
- DEFINEREG(PIPEA_DP_LINK_N),
- DEFINEREG(CURSOR_A_BASE),
- DEFINEREG(CURSOR_A_CONTROL),
- DEFINEREG(CURSOR_A_POSITION),
-
- DEFINEREG2(FPA0, i830_debug_fp),
- DEFINEREG2(FPA1, i830_debug_fp),
- DEFINEREG2(DPLL_A, i830_debug_dpll),
- DEFINEREG(DPLL_A_MD),
- DEFINEREG2(HTOTAL_A, i830_debug_hvtotal),
- DEFINEREG2(HBLANK_A, i830_debug_hvsyncblank),
- DEFINEREG2(HSYNC_A, i830_debug_hvsyncblank),
- DEFINEREG2(VTOTAL_A, i830_debug_hvtotal),
- DEFINEREG2(VBLANK_A, i830_debug_hvsyncblank),
- DEFINEREG2(VSYNC_A, i830_debug_hvsyncblank),
- DEFINEREG(BCLRPAT_A),
- DEFINEREG(VSYNCSHIFT_A),
-
- DEFINEREG2(DSPBCNTR, i830_debug_dspcntr),
- DEFINEREG2(DSPBSTRIDE, i830_debug_dspstride),
- DEFINEREG2(DSPBPOS, i830_debug_xy),
- DEFINEREG2(DSPBSIZE, i830_debug_xyminus1),
- DEFINEREG(DSPBBASE),
- DEFINEREG(DSPBSURF),
- DEFINEREG(DSPBTILEOFF),
- DEFINEREG2(PIPEBCONF, i830_debug_pipeconf),
- DEFINEREG2(PIPEBSRC, i830_debug_yxminus1),
- DEFINEREG2(PIPEBSTAT, i830_debug_pipestat),
- DEFINEREG(PIPEB_GMCH_DATA_M),
- DEFINEREG(PIPEB_GMCH_DATA_N),
- DEFINEREG(PIPEB_DP_LINK_M),
- DEFINEREG(PIPEB_DP_LINK_N),
- DEFINEREG(CURSOR_B_BASE),
- DEFINEREG(CURSOR_B_CONTROL),
- DEFINEREG(CURSOR_B_POSITION),
-
- DEFINEREG2(FPB0, i830_debug_fp),
- DEFINEREG2(FPB1, i830_debug_fp),
- DEFINEREG2(DPLL_B, i830_debug_dpll),
- DEFINEREG(DPLL_B_MD),
- DEFINEREG2(HTOTAL_B, i830_debug_hvtotal),
- DEFINEREG2(HBLANK_B, i830_debug_hvsyncblank),
- DEFINEREG2(HSYNC_B, i830_debug_hvsyncblank),
- DEFINEREG2(VTOTAL_B, i830_debug_hvtotal),
- DEFINEREG2(VBLANK_B, i830_debug_hvsyncblank),
- DEFINEREG2(VSYNC_B, i830_debug_hvsyncblank),
- DEFINEREG(BCLRPAT_B),
- DEFINEREG(VSYNCSHIFT_B),
-
- DEFINEREG(VCLK_DIVISOR_VGA0),
- DEFINEREG(VCLK_DIVISOR_VGA1),
- DEFINEREG(VCLK_POST_DIV),
- DEFINEREG2(VGACNTRL, i830_debug_vgacntrl),
-
- DEFINEREG(TV_CTL),
- DEFINEREG(TV_DAC),
- DEFINEREG(TV_CSC_Y),
- DEFINEREG(TV_CSC_Y2),
- DEFINEREG(TV_CSC_U),
- DEFINEREG(TV_CSC_U2),
- DEFINEREG(TV_CSC_V),
- DEFINEREG(TV_CSC_V2),
- DEFINEREG(TV_CLR_KNOBS),
- DEFINEREG(TV_CLR_LEVEL),
- DEFINEREG(TV_H_CTL_1),
- DEFINEREG(TV_H_CTL_2),
- DEFINEREG(TV_H_CTL_3),
- DEFINEREG(TV_V_CTL_1),
- DEFINEREG(TV_V_CTL_2),
- DEFINEREG(TV_V_CTL_3),
- DEFINEREG(TV_V_CTL_4),
- DEFINEREG(TV_V_CTL_5),
- DEFINEREG(TV_V_CTL_6),
- DEFINEREG(TV_V_CTL_7),
- DEFINEREG(TV_SC_CTL_1),
- DEFINEREG(TV_SC_CTL_2),
- DEFINEREG(TV_SC_CTL_3),
- DEFINEREG(TV_WIN_POS),
- DEFINEREG(TV_WIN_SIZE),
- DEFINEREG(TV_FILTER_CTL_1),
- DEFINEREG(TV_FILTER_CTL_2),
- DEFINEREG(TV_FILTER_CTL_3),
- DEFINEREG(TV_CC_CONTROL),
- DEFINEREG(TV_CC_DATA),
- DEFINEREG(TV_H_LUMA_0),
- DEFINEREG(TV_H_LUMA_59),
- DEFINEREG(TV_H_CHROMA_0),
- DEFINEREG(TV_H_CHROMA_59),
-
- DEFINEREG(FBC_CFB_BASE),
- DEFINEREG(FBC_LL_BASE),
- DEFINEREG(FBC_CONTROL),
- DEFINEREG(FBC_COMMAND),
- DEFINEREG(FBC_STATUS),
- DEFINEREG(FBC_CONTROL2),
- DEFINEREG(FBC_FENCE_OFF),
- DEFINEREG(FBC_MOD_NUM),
-
- DEFINEREG(MI_MODE),
- /* DEFINEREG(MI_DISPLAY_POWER_DOWN), CRL only */
- DEFINEREG(MI_ARB_STATE),
- DEFINEREG(MI_RDRET_STATE),
- DEFINEREG(ECOSKPD),
-
- DEFINEREG(DP_B),
- DEFINEREG(DPB_AUX_CH_CTL),
- DEFINEREG(DPB_AUX_CH_DATA1),
- DEFINEREG(DPB_AUX_CH_DATA2),
- DEFINEREG(DPB_AUX_CH_DATA3),
- DEFINEREG(DPB_AUX_CH_DATA4),
- DEFINEREG(DPB_AUX_CH_DATA5),
-
- DEFINEREG(DP_C),
- DEFINEREG(DPC_AUX_CH_CTL),
- DEFINEREG(DPC_AUX_CH_DATA1),
- DEFINEREG(DPC_AUX_CH_DATA2),
- DEFINEREG(DPC_AUX_CH_DATA3),
- DEFINEREG(DPC_AUX_CH_DATA4),
- DEFINEREG(DPC_AUX_CH_DATA5),
-
- DEFINEREG(DP_D),
- DEFINEREG(DPD_AUX_CH_CTL),
- DEFINEREG(DPD_AUX_CH_DATA1),
- DEFINEREG(DPD_AUX_CH_DATA2),
- DEFINEREG(DPD_AUX_CH_DATA3),
- DEFINEREG(DPD_AUX_CH_DATA4),
- DEFINEREG(DPD_AUX_CH_DATA5),
-
- DEFINEREG(AUD_CONFIG),
- DEFINEREG(AUD_HDMIW_STATUS),
- DEFINEREG(AUD_CONV_CHCNT),
- DEFINEREG(VIDEO_DIP_CTL),
- DEFINEREG(AUD_PINW_CNTR),
- DEFINEREG(AUD_CNTL_ST),
- DEFINEREG(AUD_PIN_CAP),
- DEFINEREG(AUD_PINW_CAP),
- DEFINEREG(AUD_PINW_UNSOLRESP),
- DEFINEREG(AUD_OUT_DIG_CNVT),
- DEFINEREG(AUD_OUT_CWCAP),
- DEFINEREG(AUD_GRP_CAP),
-
-#define DEFINEFENCE_915(i) \
- { FENCE+i*4, "FENCE " #i, i810_debug_915_fence, 0 }
-#define DEFINEFENCE_945(i) \
- { FENCE_NEW+(i - 8) * 4, "FENCE " #i, i810_debug_915_fence, 0 }
-
- DEFINEFENCE_915(0),
- DEFINEFENCE_915(1),
- DEFINEFENCE_915(2),
- DEFINEFENCE_915(3),
- DEFINEFENCE_915(4),
- DEFINEFENCE_915(5),
- DEFINEFENCE_915(6),
- DEFINEFENCE_915(7),
- DEFINEFENCE_945(8),
- DEFINEFENCE_945(9),
- DEFINEFENCE_945(10),
- DEFINEFENCE_945(11),
- DEFINEFENCE_945(12),
- DEFINEFENCE_945(13),
- DEFINEFENCE_945(14),
- DEFINEFENCE_945(15),
-
-#define DEFINEFENCE_965(i) \
- { FENCE_NEW+i*8, "FENCE START " #i, i810_debug_965_fence_start, 0 }, \
- { FENCE_NEW+i*8+4, "FENCE END " #i, i810_debug_965_fence_end, 0 }
-
- DEFINEFENCE_965(0),
- DEFINEFENCE_965(1),
- DEFINEFENCE_965(2),
- DEFINEFENCE_965(3),
- DEFINEFENCE_965(4),
- DEFINEFENCE_965(5),
- DEFINEFENCE_965(6),
- DEFINEFENCE_965(7),
- DEFINEFENCE_965(8),
- DEFINEFENCE_965(9),
- DEFINEFENCE_965(10),
- DEFINEFENCE_965(11),
- DEFINEFENCE_965(12),
- DEFINEFENCE_965(13),
- DEFINEFENCE_965(14),
- DEFINEFENCE_965(15),
-};
-
-#define NUM_I830_SNAPSHOTREGS (sizeof(i830_snapshot) / sizeof(i830_snapshot[0]))
-
-DEBUGSTRING(igdng_debug_rr_hw_ctl)
-{
- return XNFprintf("low %d, high %d", val & RR_HW_LOW_POWER_FRAMES_MASK,
- (val & RR_HW_HIGH_POWER_FRAMES_MASK) >> 8);
-}
-
-DEBUGSTRING(igdng_debug_m_tu)
-{
- return XNFprintf("TU %d, val 0x%x %d", (val >> 25) + 1, val & 0xffffff,
- val & 0xffffff);
-}
-
-DEBUGSTRING(igdng_debug_n)
-{
- return XNFprintf("val 0x%x %d", val & 0xffffff, val & 0xffffff);
-}
-
-DEBUGSTRING(igdng_debug_fdi_tx_ctl)
-{
- char *train = NULL, *voltage = NULL, *pre_emphasis = NULL, *portw =
- NULL;
-
- switch (val & FDI_LINK_TRAIN_NONE) {
- case FDI_LINK_TRAIN_PATTERN_1:
- train = "pattern_1";
- break;
- case FDI_LINK_TRAIN_PATTERN_2:
- train = "pattern_2";
- break;
- case FDI_LINK_TRAIN_PATTERN_IDLE:
- train = "pattern_idle";
- break;
- case FDI_LINK_TRAIN_NONE:
- train = "not train";
- break;
- }
-
- switch (val & (7 << 25)) {
- case FDI_LINK_TRAIN_VOLTAGE_0_4V:
- voltage = "0.4V";
- break;
- case FDI_LINK_TRAIN_VOLTAGE_0_6V:
- voltage = "0.6V";
- break;
- case FDI_LINK_TRAIN_VOLTAGE_0_8V:
- voltage = "0.8V";
- break;
- case FDI_LINK_TRAIN_VOLTAGE_1_2V:
- voltage = "1.2V";
- break;
- default:
- voltage = "reserved";
- }
-
- switch (val & (7 << 22)) {
- case FDI_LINK_TRAIN_PRE_EMPHASIS_NONE:
- pre_emphasis = "none";
- break;
- case FDI_LINK_TRAIN_PRE_EMPHASIS_1_5X:
- pre_emphasis = "1.5x";
- break;
- case FDI_LINK_TRAIN_PRE_EMPHASIS_2X:
- pre_emphasis = "2x";
- break;
- case FDI_LINK_TRAIN_PRE_EMPHASIS_3X:
- pre_emphasis = "3x";
- break;
- default:
- pre_emphasis = "reserved";
- }
-
- switch (val & (7 << 19)) {
- case FDI_DP_PORT_WIDTH_X1:
- portw = "X1";
- break;
- case FDI_DP_PORT_WIDTH_X2:
- portw = "X2";
- break;
- case FDI_DP_PORT_WIDTH_X3:
- portw = "X3";
- break;
- case FDI_DP_PORT_WIDTH_X4:
- portw = "X4";
- break;
- }
-
- return XNFprintf("%s, train pattern %s, voltage swing %s,"
- "pre-emphasis %s, port width %s, enhanced framing %s, FDI PLL %s, scrambing %s, master mode %s",
- val & FDI_TX_ENABLE ? "enable" : "disable",
- train, voltage, pre_emphasis, portw,
- val & FDI_TX_ENHANCE_FRAME_ENABLE ? "enable" :
- "disable",
- val & FDI_TX_PLL_ENABLE ? "enable" : "disable",
- val & (1 << 7) ? "disable" : "enable",
- val & (1 << 0) ? "enable" : "disable");
-}
-
-DEBUGSTRING(igdng_debug_fdi_rx_ctl)
-{
- char *train = NULL, *portw = NULL, *bpc = NULL;
-
- switch (val & FDI_LINK_TRAIN_NONE) {
- case FDI_LINK_TRAIN_PATTERN_1:
- train = "pattern_1";
- break;
- case FDI_LINK_TRAIN_PATTERN_2:
- train = "pattern_2";
- break;
- case FDI_LINK_TRAIN_PATTERN_IDLE:
- train = "pattern_idle";
- break;
- case FDI_LINK_TRAIN_NONE:
- train = "not train";
- break;
- }
-
- switch (val & (7 << 19)) {
- case FDI_DP_PORT_WIDTH_X1:
- portw = "X1";
- break;
- case FDI_DP_PORT_WIDTH_X2:
- portw = "X2";
- break;
- case FDI_DP_PORT_WIDTH_X3:
- portw = "X3";
- break;
- case FDI_DP_PORT_WIDTH_X4:
- portw = "X4";
- break;
- }
-
- switch (val & (7 << 16)) {
- case FDI_8BPC:
- bpc = "8bpc";
- break;
- case FDI_10BPC:
- bpc = "10bpc";
- break;
- case FDI_6BPC:
- bpc = "6bpc";
- break;
- case FDI_12BPC:
- bpc = "12bpc";
- break;
- }
-
- return XNFprintf("%s, train pattern %s, port width %s, %s,"
- "link_reverse_strap_overwrite %s, dmi_link_reverse %s, FDI PLL %s,"
- "FS ecc %s, FE ecc %s, FS err report %s, FE err report %s,"
- "scrambing %s, enhanced framing %s, %s",
- val & FDI_RX_ENABLE ? "enable" : "disable",
- train, portw, bpc,
- val & FDI_LINK_REVERSE_OVERWRITE ? "yes" : "no",
- val & FDI_DMI_LINK_REVERSE_MASK ? "yes" : "no",
- val & FDI_RX_PLL_ENABLE ? "enable" : "disable",
- val & FDI_FS_ERR_CORRECT_ENABLE ? "enable" : "disable",
- val & FDI_FE_ERR_CORRECT_ENABLE ? "enable" : "disable",
- val & FDI_FS_ERR_REPORT_ENABLE ? "enable" : "disable",
- val & FDI_FE_ERR_REPORT_ENABLE ? "enable" : "disable",
- val & (1 << 7) ? "disable" : "enable",
- val & FDI_RX_ENHANCE_FRAME_ENABLE ? "enable" :
- "disable", val & FDI_SEL_PCDCLK ? "PCDClk" : "RawClk");
-}
-
-DEBUGSTRING(igdng_debug_dspstride)
-{
- return XNFprintf("%d", val >> 6);
-}
-
-DEBUGSTRING(igdng_debug_pch_dpll)
-{
- char *enable = val & DPLL_VCO_ENABLE ? "enable" : "disable";
- char *highspeed = val & DPLL_DVO_HIGH_SPEED ? "yes" : "no";
- char *mode = NULL;
- char *p2 = NULL;
- int fpa0_p1, fpa1_p1;
- char *refclk = NULL;
- int sdvo_mul;
-
- if ((val & DPLLB_MODE_LVDS) == DPLLB_MODE_LVDS) {
- mode = "LVDS";
- if (val & DPLLB_LVDS_P2_CLOCK_DIV_7)
- p2 = "Div 7";
- else
- p2 = "Div 14";
- } else if ((val & DPLLB_MODE_LVDS) == DPLLB_MODE_DAC_SERIAL) {
- mode = "Non-LVDS";
- if (val & DPLL_DAC_SERIAL_P2_CLOCK_DIV_5)
- p2 = "Div 5";
- else
- p2 = "Div 10";
- }
- fpa0_p1 = ffs((val & DPLL_FPA01_P1_POST_DIV_MASK) >> 16);
- fpa1_p1 = ffs((val & DPLL_FPA1_P1_POST_DIV_MASK));
-
- switch (val & PLL_REF_INPUT_MASK) {
- case PLL_REF_INPUT_DREFCLK:
- refclk = "default 120Mhz";
- break;
- case PLL_REF_INPUT_SUPER_SSC:
- refclk = "SuperSSC 120Mhz";
- break;
- case PLL_REF_INPUT_TVCLKINBC:
- refclk = "SDVO TVClkIn";
- break;
- case PLLB_REF_INPUT_SPREADSPECTRUMIN:
- refclk = "SSC";
- break;
- case PLL_REF_INPUT_DMICLK:
- refclk = "DMI RefCLK";
- break;
- }
-
- sdvo_mul = ((val & PLL_REF_SDVO_HDMI_MULTIPLIER_MASK) >> 9) + 1;
-
- return XNFprintf("%s, sdvo high speed %s, mode %s, p2 %s, "
- "FPA0 P1 %d, FPA1 P1 %d, refclk %s, sdvo/hdmi mul %d",
- enable, highspeed, mode, p2, fpa0_p1, fpa1_p1, refclk,
- sdvo_mul);
-}
-
-DEBUGSTRING(igdng_debug_dref_ctl)
-{
- char *cpu_source;
- char *ssc_source = val & DREF_SSC_SOURCE_ENABLE ? "enable" : "disable";
- char *nonspread_source =
- val & DREF_NONSPREAD_SOURCE_ENABLE ? "enable" : "disable";
- char *superspread_source =
- val & DREF_SUPERSPREAD_SOURCE_ENABLE ? "enable" : "disable";
- char *ssc4_mode =
- val & DREF_SSC4_CENTERSPREAD ? "centerspread" : "downspread";
- char *ssc1 = val & DREF_SSC1_ENABLE ? "enable" : "disable";
- char *ssc4 = val & DREF_SSC4_ENABLE ? "enable" : "disable";
-
- switch (val & DREF_CPU_SOURCE_OUTPUT_NONSPREAD) {
- case DREF_CPU_SOURCE_OUTPUT_DISABLE:
- cpu_source = "disable";
- break;
- case DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD:
- cpu_source = "downspread";
- break;
- case DREF_CPU_SOURCE_OUTPUT_NONSPREAD:
- cpu_source = "nonspread";
- break;
- default:
- cpu_source = "reserved";
- }
- return XNFprintf("cpu source %s, ssc_source %s, nonspread_source %s, "
- "superspread_source %s, ssc4_mode %s, ssc1 %s, ssc4 %s",
- cpu_source, ssc_source, nonspread_source,
- superspread_source, ssc4_mode, ssc1, ssc4);
-}
-
-DEBUGSTRING(igdng_debug_rawclk_freq)
-{
- char *tp1 = NULL, *tp2 = NULL;
-
- switch (val & FDL_TP1_TIMER_MASK) {
- case 0:
- tp1 = "0.5us";
- break;
- case (1 << 12):
- tp1 = "1.0us";
- break;
- case (2 << 12):
- tp1 = "2.0us";
- break;
- case (3 << 12):
- tp1 = "4.0us";
- break;
- }
- switch (val & FDL_TP2_TIMER_MASK) {
- case 0:
- tp2 = "1.5us";
- break;
- case (1 << 10):
- tp2 = "3.0us";
- break;
- case (2 << 10):
- tp2 = "6.0us";
- break;
- case (3 << 10):
- tp2 = "12.0us";
- break;
- }
- return XNFprintf("FDL_TP1 timer %s, FDL_TP2 timer %s, freq %d",
- tp1, tp2, val & RAWCLK_FREQ_MASK);
-
-}
-
-DEBUGSTRING(igdng_debug_fdi_rx_misc)
-{
- return XNFprintf("FDI Delay %d", val & ((1 << 13) - 1));
-}
-
-DEBUGSTRING(igdng_debug_transconf)
-{
- return XNFprintf("%s, %s",
- val & TRANS_ENABLE ? "enable" : "disable",
- val & TRANS_STATE_ENABLE ? "active" : "inactive");
-}
-
-DEBUGSTRING(igdng_debug_panel_fitting)
-{
- char *vadapt = NULL, *filter_sel = NULL;
-
- switch (val & (3 << 25)) {
- case 0:
- vadapt = "least";
- break;
- case (1 << 25):
- vadapt = "moderate";
- break;
- case (2 << 25):
- vadapt = "reserved";
- break;
- case (3 << 25):
- vadapt = "most";
- break;
- }
-
- switch (val & (3 << 23)) {
- case 0:
- filter_sel = "programmed";
- break;
- case (1 << 25):
- filter_sel = "hardcoded";
- break;
- case (2 << 25):
- filter_sel = "edge_enhance";
- break;
- case (3 << 25):
- filter_sel = "edge_soften";
- break;
- }
-
- return
- XNFprintf
- ("%s, auto_scale %s, auto_scale_cal %s, v_filter %s, vadapt %s, mode %s, filter_sel %s,"
- "chroma pre-filter %s, vert3tap %s, v_inter_invert %s",
- val & PF_ENABLE ? "enable" : "disable",
- val & (1 << 30) ? "no" : "yes", val & (1 << 29) ? "yes" : "no",
- val & (1 << 28) ? "bypass" : "enable",
- val & (1 << 27) ? "enable" : "disable", vadapt, filter_sel,
- val & (1 << 22) ? "enable" : "disable",
- val & (1 << 21) ? "force" : "auto",
- val & (1 << 20) ? "field 0" : "field 1");
-}
-
-DEBUGSTRING(igdng_debug_pf_win)
-{
- int a, b;
-
- a = (val >> 16) & 0x1fff;
- b = val & 0xfff;
-
- return XNFprintf("%d, %d", a, b);
-}
-
-static struct i830SnapshotRec igdng_snapshot[] = {
- DEFINEREG2(CPU_VGACNTRL, i830_debug_vgacntrl),
- DEFINEREG(DIGITAL_PORT_HOTPLUG_CNTRL),
-
- DEFINEREG2(RR_HW_CTL, igdng_debug_rr_hw_ctl),
-
- DEFINEREG(FDI_PLL_BIOS_0),
- DEFINEREG(FDI_PLL_BIOS_1),
- DEFINEREG(FDI_PLL_BIOS_2),
-
- DEFINEREG(DISPLAY_PORT_PLL_BIOS_0),
- DEFINEREG(DISPLAY_PORT_PLL_BIOS_1),
- DEFINEREG(DISPLAY_PORT_PLL_BIOS_2),
-
- DEFINEREG(FDI_PLL_FREQ_CTL),
-
- DEFINEREG2(PIPEACONF, i830_debug_pipeconf),
-
- DEFINEREG2(HTOTAL_A, i830_debug_hvtotal),
- DEFINEREG2(HBLANK_A, i830_debug_hvsyncblank),
- DEFINEREG2(HSYNC_A, i830_debug_hvsyncblank),
- DEFINEREG2(VTOTAL_A, i830_debug_hvtotal),
- DEFINEREG2(VBLANK_A, i830_debug_hvsyncblank),
- DEFINEREG2(VSYNC_A, i830_debug_hvsyncblank),
- DEFINEREG(VSYNCSHIFT_A),
- DEFINEREG2(PIPEASRC, i830_debug_yxminus1),
-
- DEFINEREG2(PIPEA_DATA_M1, igdng_debug_m_tu),
- DEFINEREG2(PIPEA_DATA_N1, igdng_debug_n),
- DEFINEREG2(PIPEA_DATA_M2, igdng_debug_m_tu),
- DEFINEREG2(PIPEA_DATA_N2, igdng_debug_n),
-
- DEFINEREG2(PIPEA_LINK_M1, igdng_debug_n),
- DEFINEREG2(PIPEA_LINK_N1, igdng_debug_n),
- DEFINEREG2(PIPEA_LINK_M2, igdng_debug_n),
- DEFINEREG2(PIPEA_LINK_N2, igdng_debug_n),
-
- DEFINEREG2(DSPACNTR, i830_debug_dspcntr),
- DEFINEREG(DSPABASE),
- DEFINEREG2(DSPASTRIDE, igdng_debug_dspstride),
- DEFINEREG(DSPASURF),
- DEFINEREG2(DSPATILEOFF, i830_debug_xy),
-
- DEFINEREG2(PIPEBCONF, i830_debug_pipeconf),
-
- DEFINEREG2(HTOTAL_B, i830_debug_hvtotal),
- DEFINEREG2(HBLANK_B, i830_debug_hvsyncblank),
- DEFINEREG2(HSYNC_B, i830_debug_hvsyncblank),
- DEFINEREG2(VTOTAL_B, i830_debug_hvtotal),
- DEFINEREG2(VBLANK_B, i830_debug_hvsyncblank),
- DEFINEREG2(VSYNC_B, i830_debug_hvsyncblank),
- DEFINEREG(VSYNCSHIFT_B),
-
- DEFINEREG2(DSPBCNTR, i830_debug_dspcntr),
- DEFINEREG(DSPBBASE),
- DEFINEREG2(DSPBSTRIDE, igdng_debug_dspstride),
- DEFINEREG(DSPBSURF),
- DEFINEREG2(DSPBTILEOFF, i830_debug_xy),
-
- DEFINEREG2(PIPEBSRC, i830_debug_yxminus1),
-
- DEFINEREG2(PIPEB_DATA_M1, igdng_debug_m_tu),
- DEFINEREG2(PIPEB_DATA_N1, igdng_debug_n),
- DEFINEREG2(PIPEB_DATA_M2, igdng_debug_m_tu),
- DEFINEREG2(PIPEB_DATA_N2, igdng_debug_n),
-
- DEFINEREG2(PIPEB_LINK_M1, igdng_debug_n),
- DEFINEREG2(PIPEB_LINK_N1, igdng_debug_n),
- DEFINEREG2(PIPEB_LINK_M2, igdng_debug_n),
- DEFINEREG2(PIPEB_LINK_N2, igdng_debug_n),
-
- DEFINEREG2(PFA_CTL_1, igdng_debug_panel_fitting),
- DEFINEREG2(PFB_CTL_1, igdng_debug_panel_fitting),
- DEFINEREG2(PFA_WIN_POS, igdng_debug_pf_win),
- DEFINEREG2(PFB_WIN_POS, igdng_debug_pf_win),
- DEFINEREG2(PFA_WIN_SIZE, igdng_debug_pf_win),
- DEFINEREG2(PFB_WIN_SIZE, igdng_debug_pf_win),
-
- /* PCH */
-
- DEFINEREG2(PCH_DREF_CONTROL, igdng_debug_dref_ctl),
- DEFINEREG2(PCH_RAWCLK_FREQ, igdng_debug_rawclk_freq),
- DEFINEREG(PCH_DPLL_TMR_CFG),
- DEFINEREG(PCH_SSC4_PARMS),
- DEFINEREG(PCH_SSC4_AUX_PARMS),
-
- DEFINEREG2(PCH_DPLL_A, igdng_debug_pch_dpll),
- DEFINEREG2(PCH_DPLL_B, igdng_debug_pch_dpll),
- DEFINEREG2(PCH_FPA0, i830_debug_fp),
- DEFINEREG2(PCH_FPA1, i830_debug_fp),
- DEFINEREG2(PCH_FPB0, i830_debug_fp),
- DEFINEREG2(PCH_FPB1, i830_debug_fp),
-
- DEFINEREG2(TRANS_HTOTAL_A, i830_debug_hvtotal),
- DEFINEREG2(TRANS_HBLANK_A, i830_debug_hvsyncblank),
- DEFINEREG2(TRANS_HSYNC_A, i830_debug_hvsyncblank),
- DEFINEREG2(TRANS_VTOTAL_A, i830_debug_hvtotal),
- DEFINEREG2(TRANS_VBLANK_A, i830_debug_hvsyncblank),
- DEFINEREG2(TRANS_VSYNC_A, i830_debug_hvsyncblank),
-
- DEFINEREG2(TRANSA_DATA_M1, igdng_debug_m_tu),
- DEFINEREG2(TRANSA_DATA_N1, igdng_debug_n),
- DEFINEREG2(TRANSA_DATA_M2, igdng_debug_m_tu),
- DEFINEREG2(TRANSA_DATA_N2, igdng_debug_n),
- DEFINEREG2(TRANSA_DP_LINK_M1, igdng_debug_n),
- DEFINEREG2(TRANSA_DP_LINK_N1, igdng_debug_n),
- DEFINEREG2(TRANSA_DP_LINK_M2, igdng_debug_n),
- DEFINEREG2(TRANSA_DP_LINK_N2, igdng_debug_n),
-
- DEFINEREG2(TRANS_HTOTAL_B, i830_debug_hvtotal),
- DEFINEREG2(TRANS_HBLANK_B, i830_debug_hvsyncblank),
- DEFINEREG2(TRANS_HSYNC_B, i830_debug_hvsyncblank),
- DEFINEREG2(TRANS_VTOTAL_B, i830_debug_hvtotal),
- DEFINEREG2(TRANS_VBLANK_B, i830_debug_hvsyncblank),
- DEFINEREG2(TRANS_VSYNC_B, i830_debug_hvsyncblank),
-
- DEFINEREG2(TRANSB_DATA_M1, igdng_debug_m_tu),
- DEFINEREG2(TRANSB_DATA_N1, igdng_debug_n),
- DEFINEREG2(TRANSB_DATA_M2, igdng_debug_m_tu),
- DEFINEREG2(TRANSB_DATA_N2, igdng_debug_n),
- DEFINEREG2(TRANSB_DP_LINK_M1, igdng_debug_n),
- DEFINEREG2(TRANSB_DP_LINK_N1, igdng_debug_n),
- DEFINEREG2(TRANSB_DP_LINK_M2, igdng_debug_n),
- DEFINEREG2(TRANSB_DP_LINK_N2, igdng_debug_n),
-
- DEFINEREG2(TRANSACONF, igdng_debug_transconf),
- DEFINEREG2(TRANSBCONF, igdng_debug_transconf),
-
- DEFINEREG2(FDI_TXA_CTL, igdng_debug_fdi_tx_ctl),
- DEFINEREG2(FDI_TXB_CTL, igdng_debug_fdi_tx_ctl),
- DEFINEREG2(FDI_RXA_CTL, igdng_debug_fdi_rx_ctl),
- DEFINEREG2(FDI_RXB_CTL, igdng_debug_fdi_rx_ctl),
-
- DEFINEREG2(FDI_RXA_MISC, igdng_debug_fdi_rx_misc),
- DEFINEREG2(FDI_RXB_MISC, igdng_debug_fdi_rx_misc),
- DEFINEREG(FDI_RXA_TUSIZE1),
- DEFINEREG(FDI_RXA_TUSIZE2),
- DEFINEREG(FDI_RXB_TUSIZE1),
- DEFINEREG(FDI_RXB_TUSIZE2),
-
- DEFINEREG(FDI_PLL_CTL_1),
- DEFINEREG(FDI_PLL_CTL_2),
-
- DEFINEREG(FDI_RXA_IIR),
- DEFINEREG(FDI_RXA_IMR),
- DEFINEREG(FDI_RXB_IIR),
- DEFINEREG(FDI_RXB_IMR),
-
- DEFINEREG2(PCH_ADPA, i830_debug_adpa),
- DEFINEREG(HDMIB),
- DEFINEREG(HDMIC),
- DEFINEREG(HDMID),
- DEFINEREG2(PCH_LVDS, i830_debug_lvds),
-};
-
-#define NUM_IGDNG_SNAPSHOTREGS (sizeof(igdng_snapshot) / sizeof(igdng_snapshot[0]))
-#undef DEFINEREG
-
-#ifndef REG_DUMPER
-void i830TakeRegSnapshot(ScrnInfoPtr pScrn)
-{
- I830Ptr pI830 = I830PTR(pScrn);
- int i;
-
- if (IS_IGDNG(pI830)) {
- for (i = 0; i < NUM_IGDNG_SNAPSHOTREGS; i++) {
- igdng_snapshot[i].val = INREG(igdng_snapshot[i].reg);
- }
- } else {
- for (i = 0; i < NUM_I830_SNAPSHOTREGS; i++) {
- i830_snapshot[i].val = INREG(i830_snapshot[i].reg);
- }
- }
-}
-
-static void IGDNGCompareRegsToSnapshot(ScrnInfoPtr pScrn, char *where)
-{
- I830Ptr pI830 = I830PTR(pScrn);
- int i;
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Comparing regs from server start up to %s\n", where);
- for (i = 0; i < NUM_IGDNG_SNAPSHOTREGS; i++) {
- uint32_t val = INREG(igdng_snapshot[i].reg);
- if (igdng_snapshot[i].val == val)
- continue;
-
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "Register 0x%x (%s) changed from 0x%08x to 0x%08x\n",
- igdng_snapshot[i].reg, igdng_snapshot[i].name,
- (int)igdng_snapshot[i].val, (int)val);
-
- if (igdng_snapshot[i].debug_output != NULL) {
- char *before, *after;
-
- before = igdng_snapshot[i].debug_output(pI830,
- igdng_snapshot
- [i].reg,
- igdng_snapshot
- [i].val);
- after =
- igdng_snapshot[i].debug_output(pI830,
- igdng_snapshot[i].
- reg, val);
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "%s before: %s\n", igdng_snapshot[i].name,
- before);
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "%s after: %s\n", igdng_snapshot[i].name,
- after);
-
- }
- }
-}
-
-void i830CompareRegsToSnapshot(ScrnInfoPtr pScrn, char *where)
-{
- I830Ptr pI830 = I830PTR(pScrn);
- int i;
-
- if (IS_IGDNG(pI830)) {
- IGDNGCompareRegsToSnapshot(pScrn, where);
- return;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Comparing regs from server start up to %s\n", where);
- for (i = 0; i < NUM_I830_SNAPSHOTREGS; i++) {
- uint32_t val = INREG(i830_snapshot[i].reg);
- if (i830_snapshot[i].val == val)
- continue;
-
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "Register 0x%x (%s) changed from 0x%08x to 0x%08x\n",
- i830_snapshot[i].reg, i830_snapshot[i].name,
- (int)i830_snapshot[i].val, (int)val);
-
- if (i830_snapshot[i].debug_output != NULL) {
- char *before, *after;
-
- before = i830_snapshot[i].debug_output(pI830,
- i830_snapshot[i].
- reg,
- i830_snapshot[i].
- val);
- after =
- i830_snapshot[i].debug_output(pI830,
- i830_snapshot[i].reg,
- val);
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "%s before: %s\n", i830_snapshot[i].name,
- before);
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "%s after: %s\n", i830_snapshot[i].name,
- after);
-
- }
- }
-}
-#endif /* !REG_DUMPER */
-
-#if 0
-static void i830DumpIndexed(ScrnInfoPtr pScrn, char *name, int id, int val,
- int min, int max)
-{
- I830Ptr pI830 = I830PTR(pScrn);
- int i;
-
- for (i = min; i <= max; i++) {
- OUTREG8(id, i);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%18.18s%02x: 0x%02x\n",
- name, i, INREG8(val));
- }
-}
-
-static void i830DumpAR(ScrnInfoPtr pScrn)
-{
- I830Ptr pI830 = I830PTR(pScrn);
- int i;
- uint16_t st01;
- unsigned char orig_arx, msr;
-
- msr = INREG8(0x3cc);
- if (msr & 1)
- st01 = 0x3da;
- else
- st01 = 0x3ba;
-
- INREG8(st01); /* make sure index/write register is in index mode */
- orig_arx = INREG8(0x3c0);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%19.19sX: 0x%02x\n",
- "AR", orig_arx);
-
- for (i = 0; i <= 0x14; i++) {
- INREG8(st01);
- OUTREG8(0x3c0, i);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%18.18s%02x: 0x%02x\n",
- "AR", i, INREG8(0x3c1));
- }
- INREG8(st01);
- OUTREG8(0x3c0, orig_arx);
- INREG8(st01); /* switch back to index mode */
-}
-#endif
-
-static void IGDNGDumpRegs(ScrnInfoPtr pScrn)
-{
- I830Ptr pI830 = I830PTR(pScrn);
- int i;
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "DumpRegsBegin\n");
- for (i = 0; i < NUM_IGDNG_SNAPSHOTREGS; i++) {
- uint32_t val = INREG(igdng_snapshot[i].reg);
-
- if (igdng_snapshot[i].debug_output != NULL) {
- char *debug = igdng_snapshot[i].debug_output(pI830,
- igdng_snapshot
- [i].reg,
- val);
- if (debug != NULL) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "%20.20s: 0x%08x (%s)\n",
- igdng_snapshot[i].name,
- (unsigned int)val, debug);
- xfree(debug);
- }
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "%20.20s: 0x%08x\n", igdng_snapshot[i].name,
- (unsigned int)val);
- }
- }
-}
-
-void i830DumpRegs(ScrnInfoPtr pScrn)
-{
- I830Ptr pI830 = I830PTR(pScrn);
- int i;
- int fp, dpll;
- int pipe;
- int n, m1, m2, m, p1, p2;
- int ref;
- int dot;
- int phase;
-#if 0
- int msr;
- int crt;
-#endif
-
- if (IS_IGDNG(pI830)) {
- IGDNGDumpRegs(pScrn);
- return;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "DumpRegsBegin\n");
- for (i = 0; i < NUM_I830_SNAPSHOTREGS; i++) {
- uint32_t val = INREG(i830_snapshot[i].reg);
-
- if (i830_snapshot[i].debug_output != NULL) {
- char *debug = i830_snapshot[i].debug_output(pI830,
- i830_snapshot
- [i].reg,
- val);
- if (debug != NULL) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "%20.20s: 0x%08x (%s)\n",
- i830_snapshot[i].name,
- (unsigned int)val, debug);
- xfree(debug);
- }
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "%20.20s: 0x%08x\n", i830_snapshot[i].name,
- (unsigned int)val);
- }
- }
-#if 0
- i830DumpIndexed(pScrn, "SR", 0x3c4, 0x3c5, 0, 7);
- msr = INREG8(0x3cc);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%20.20s: 0x%02x\n",
- "MSR", (unsigned int)msr);
-
- i830DumpAR(pScrn);
- if (msr & 1)
- crt = 0x3d0;
- else
- crt = 0x3b0;
- i830DumpIndexed(pScrn, "CR", crt + 4, crt + 5, 0, 0x24);
-#endif
- for (pipe = 0; pipe <= 1; pipe++) {
- fp = INREG(pipe == 0 ? FPA0 : FPB0);
- dpll = INREG(pipe == 0 ? DPLL_A : DPLL_B);
- if (IS_I9XX(pI830)) {
- uint32_t lvds = INREG(LVDS);
- if ((lvds & LVDS_PORT_EN) &&
- (lvds & LVDS_PIPEB_SELECT) == (pipe << 30)) {
- if ((lvds & LVDS_CLKB_POWER_MASK) ==
- LVDS_CLKB_POWER_UP)
- p2 = 7;
- else
- p2 = 14;
- } else {
- switch ((dpll >> 24) & 0x3) {
- case 0:
- p2 = 10;
- break;
- case 1:
- p2 = 5;
- break;
- default:
- p2 = 1;
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "p2 out of range\n");
- break;
- }
- }
- if (IS_IGD(pI830))
- i = (dpll >> DPLL_FPA01_P1_POST_DIV_SHIFT_IGD) &
- 0x1ff;
- else
- i = (dpll >> DPLL_FPA01_P1_POST_DIV_SHIFT) &
- 0xff;
- switch (i) {
- case 1:
- p1 = 1;
- break;
- case 2:
- p1 = 2;
- break;
- case 4:
- p1 = 3;
- break;
- case 8:
- p1 = 4;
- break;
- case 16:
- p1 = 5;
- break;
- case 32:
- p1 = 6;
- break;
- case 64:
- p1 = 7;
- break;
- case 128:
- p1 = 8;
- break;
- case 256:
- if (IS_IGD(pI830)) {
- p1 = 9;
- break;
- } /* fallback */
- default:
- p1 = 1;
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "p1 out of range\n");
- break;
- }
-
- switch ((dpll >> 13) & 0x3) {
- case 0:
- ref = 96000;
- break;
- case 3:
- ref = 100000;
- break;
- default:
- ref = 0;
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "ref out of range\n");
- break;
- }
- } else {
- uint32_t lvds = INREG(LVDS);
- if (IS_I85X(pI830) &&
- (lvds & LVDS_PORT_EN) &&
- (lvds & LVDS_PIPEB_SELECT) == (pipe << 30)) {
- if ((lvds & LVDS_CLKB_POWER_MASK) ==
- LVDS_CLKB_POWER_UP)
- p2 = 7;
- else
- p2 = 14;
- switch ((dpll >> 16) & 0x3f) {
- case 0x01:
- p1 = 1;
- break;
- case 0x02:
- p1 = 2;
- break;
- case 0x04:
- p1 = 3;
- break;
- case 0x08:
- p1 = 4;
- break;
- case 0x10:
- p1 = 5;
- break;
- case 0x20:
- p1 = 6;
- break;
- default:
- p1 = 1;
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "LVDS P1 0x%x invalid encoding\n",
- (dpll >> 16) & 0x3f);
- break;
- }
- } else {
- if (dpll & (1 << 23))
- p2 = 4;
- else
- p2 = 2;
- if (dpll & PLL_P1_DIVIDE_BY_TWO)
- p1 = 2;
- else
- p1 = ((dpll >> 16) & 0x3f) + 2;
- }
-
- switch ((dpll >> 13) & 0x3) {
- case 0:
- ref = 48000;
- break;
- case 3:
- ref = 66000;
- break;
- default:
- ref = 0;
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "ref out of range\n");
- break;
- }
- }
- if (IS_I965G(pI830)) {
- phase = (dpll >> 9) & 0xf;
- switch (phase) {
- case 6:
- break;
- default:
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "SDVO phase shift %d out of range -- probobly not "
- "an issue.\n", phase);
- break;
- }
- }
- switch ((dpll >> 8) & 1) {
- case 0:
- break;
- default:
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "fp select out of range\n");
- break;
- }
- m1 = ((fp >> 8) & 0x3f);
- if (IS_IGD(pI830)) {
- n = ffs((fp & FP_N_IGD_DIV_MASK) >> FP_N_DIV_SHIFT) - 1;
- m2 = (fp & FP_M2_IGD_DIV_MASK) >> FP_M2_DIV_SHIFT;
- m = m2 + 2;
- dot = (ref * m) / n / (p1 * p2);
- } else {
- n = ((fp >> 16) & 0x3f);
- m2 = ((fp >> 0) & 0x3f);
- m = 5 * (m1 + 2) + (m2 + 2);
- dot =
- (ref * (5 * (m1 + 2) + (m2 + 2)) / (n + 2)) / (p1 *
- p2);
- }
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "pipe %s dot %d n %d m1 %d m2 %d p1 %d p2 %d\n",
- pipe == 0 ? "A" : "B", dot, n, m1, m2, p1, p2);
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "DumpRegsEnd\n");
-}
diff --git a/src/i830_debug.h b/src/i830_debug.h
deleted file mode 100644
index 73d6ea31..00000000
--- a/src/i830_debug.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright © 2006 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:
- * Eric Anholt <eric@anholt.net>
- *
- */
-
-void i830TakeRegSnapshot(ScrnInfoPtr pScrn);
-void i830CompareRegsToSnapshot(ScrnInfoPtr pScrn, char *where);
-void i830DumpRegs(ScrnInfoPtr pScrn);
diff --git a/src/i830_driver.c b/src/i830_driver.c
index b36450b1..56d86fcc 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -68,7 +68,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "shadow.h"
#include "i830.h"
#include "i830_display.h"
-#include "i830_debug.h"
#include "i830_bios.h"
#include "i830_video.h"
#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
diff --git a/src/reg_dumper/Makefile.am b/src/reg_dumper/Makefile.am
index f902c7cc..e6adce4f 100644
--- a/src/reg_dumper/Makefile.am
+++ b/src/reg_dumper/Makefile.am
@@ -1,16 +1,10 @@
-noinst_PROGRAMS = intel_reg_dumper \
+noinst_PROGRAMS = \
intel_gtt \
intel_statuspage \
intel_hotplug \
intel_lid \
intel_audio
-intel_reg_dumper_SOURCES = \
- main.c \
- reg_dumper.h \
- xprintf.c \
- ../i830_debug.c
-
intel_gtt_SOURCES = \
gtt.c \
reg_dumper.h \
@@ -37,7 +31,6 @@ intel_audio_SOURCES = \
util.c
intel_hotplug_LDADD = $(PCIACCESS_LIBS)
-intel_reg_dumper_LDADD = $(PCIACCESS_LIBS)
intel_gtt_LDADD = $(PCIACCESS_LIBS)
intel_statuspage_LDADD = $(PCIACCESS_LIBS)
intel_lid_LDADD = $(PCIACCESS_LIBS)