summaryrefslogtreecommitdiff
path: root/display.c
diff options
context:
space:
mode:
authorAustin Yuan <shengquan.yuan@intel.com>2015-05-20 13:26:26 +0800
committerAustin Yuan <shengquan.yuan@intel.com>2015-05-20 13:26:26 +0800
commit23bd23703b9e23491935d4657ad9472305c10409 (patch)
treec96f5623fea47cde99e7e803087bb43c59dd6347 /display.c
igdbg init commitHEADmaster
Signed-off-by: Austin Yuan <shengquan.yuan@intel.com>
Diffstat (limited to 'display.c')
-rw-r--r--display.c500
1 files changed, 500 insertions, 0 deletions
diff --git a/display.c b/display.c
new file mode 100644
index 0000000..066079a
--- /dev/null
+++ b/display.c
@@ -0,0 +1,500 @@
+/*
+ * Copyright © 2014 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.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdarg.h>
+#include <stdint.h>
+
+#include "main.h"
+#include "i915_reg.h"
+
+int process_onscreen(char *cmdhdr)
+{
+ unsigned int adpa, dspcntr, dsp_off, gtt_off;
+ int info_dumped = 0; /* onscreen information is dumped */
+
+ adpa=INREG_DISP(linear_mmio,0x61100);
+
+#define PRINT_DSPINFO \
+ info_dumped = 1; \
+ gtt_off=dsp_off/4096 * 8; \
+ printf("DSPCNTR:value=0x%08x(%s, format 0x%01x(e:RGBX,f:RGBA))\n", \
+ dspcntr, (dspcntr&(1<<10))?"X-tiled(512x8)":"linear", (dspcntr>>26)&0xf); \
+ print_bin_fmt(dspcntr,9); \
+ printf("Offset of current display:0x%x(%dM+%dK), GTT offset at %d\n", \
+ dsp_off,dsp_off>>20,(dsp_off>>10)&0x3ff, gtt_off);
+
+ if (adpa & (1<<31)) {
+ if (adpa & (1<<30)) { /* pipe B selected */
+ printf("Pipe B is selected\n");
+ dsp_off=INREG_DISP(linear_mmio,0x7019C); /* plane B is the default */
+ dspcntr = INREG_DISP(linear_mmio,0x71180);
+ } else { /* pipe A selected */
+ printf("Pipe A is selected\n");
+ dsp_off=INREG_DISP(linear_mmio,0x7019C); /* plane A is the default */
+ dspcntr = INREG_DISP(linear_mmio,0x70180);
+ }
+ PRINT_DSPINFO;
+
+ return 0;
+ }
+
+ dspcntr = INREG_DISP(linear_mmio,0x70180);
+ if (dspcntr & (1<<31)) {
+ printf("Plane A is enabled\n");
+ dsp_off=INREG_DISP(linear_mmio,0x7019C); /* plane A is the default */
+
+ PRINT_DSPINFO;
+ }
+
+ dspcntr = INREG_DISP(linear_mmio,0x71180);
+ if (dspcntr & (1<<31)) {
+ printf("Plane B is enabled\n");
+ dsp_off=INREG_DISP(linear_mmio,0x7119C); /* plane A is the default */
+ PRINT_DSPINFO;
+ }
+
+ if (info_dumped == 0) {
+ printf("It looks no plane is enabled. Check bellow file?\n");
+ printf(" /sys/kernel/debug/dri/0/i915_gem_framebuffer\n");
+ }
+
+ return 0;
+}
+
+int process_pipe(char *cmdhdr)
+{
+ unsigned int value;
+
+ printf("DSPARB:reg=0x%x,value=0x%08x\n",0x70030,(value=INREG_DISP(linear_mmio,0x70030)));
+ print_bin_fmt(value,9);
+
+ printf("PIPE A Information...\n");
+
+ value=INREG_DISP(linear_mmio,0x70008);
+ printf("PIPEACONF:reg=0x%x,value=0x%08x (%s,%s)\n",0x70008,
+ value,value&(1<<31)?"enabled":"disabled",value&(1<<30)?"single wide mode":"double wide mode");
+ print_bin_fmt(value,9);
+
+ printf("PIPEASTAT:reg=0x70024,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x70024)));
+ print_bin_fmt(value,9);
+
+ value=INREG_DISP(linear_mmio,0x70008);
+ printf("PIPEACONF:reg=0x%x,value=0x%08x (%s,%s)\n",0x70008,
+ value,value&(1<<31)?"enabled":"disabled",value&(1<<30)?"single wide mode":"double wide mode");
+ print_bin_fmt(value,9);
+
+#if 0
+ printf("DPLL_A:reg=0x6014,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x6014)));
+ print_bin_fmt(value,9);
+ printf("FPA0:reg=0x6040,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x6040)));
+ print_bin_fmt(value,9);
+#endif
+
+ value=INREG_DISP(linear_mmio,0x60000);
+ printf("HTOTAL_A:reg=0x60000,value=0x%08x(horizontal active display pixel %d)\n",
+ value,value&0xfff);
+ print_bin_fmt(value,9);
+ printf("HBLANK_A:reg=0x60004,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x60004)));
+ print_bin_fmt(value,9);
+ printf("HSYNC_A:reg=0x60008,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x60008)));
+ print_bin_fmt(value,9);
+
+ value=INREG_DISP(linear_mmio,0x6000c);
+ printf("VTOTAL_A:reg=0x6000c,value=0x%08x(vertical active display lines %d)\n",
+ value,value&0xfff);
+ print_bin_fmt(value,9);
+ printf("VBLANK_A:reg=0x60010,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x60010)));
+ print_bin_fmt(value,9);
+ printf("VSYNC_A:reg=0x60014,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x60014)));
+ print_bin_fmt(value,9);
+ printf("PIPEASRC:reg=0x6001c,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x6001c)));
+ print_bin_fmt(value,9);
+ printf("BCLPPAT_A:reg=0x60020,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x60020)));
+ print_bin_fmt(value,9);
+ printf("VYNCSHIFT_A:reg=0x60028,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x60028)));
+ print_bin_fmt(value,9);
+ printf("CRCCtrlColorA_G:reg=0x60054,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x60054)));
+ print_bin_fmt(value,9);
+ printf("CRCCtrlColorA_B:reg=0x60058,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x60058)));
+ print_bin_fmt(value,9);
+ printf("CRCCtrlColorA_Residual:reg=0x6005C,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x6005c)));
+ print_bin_fmt(value,9);
+
+ printf("PIPEA_DSL:reg=0x%x,value=0x%08x\n",0x70000,(value=INREG_DISP(linear_mmio,0x70000)));
+ print_bin_fmt(value,9);
+ printf("PIPEA_SLC:reg=0x%x,value=0x%08x\n",0x70004,(value=INREG_DISP(linear_mmio,0x70004)));
+ print_bin_fmt(value,9);
+ printf("PIPEASTAT:reg=0x%x,value=0x%08x\n",0x70024,(value=INREG_DISP(linear_mmio,0x70024)));
+ print_bin_fmt(value,9);
+
+#if 0 /* readonly, requires that this pipe's PLL is running */
+ printf("PIPEAFRAMEH:reg=0x%x,value=0x%08x\n",0x70040,(value=INREG_DISP(linear_mmio,0x70040)));
+ print_bin_fmt(value,9);
+ printf("PIPEAFRAMEPIX:reg=0x%x,value=0x%08x\n",0x70044,(value=INREG_DISP(linear_mmio,0x70044)));
+ print_bin_fmt(value,9);
+#endif
+
+#if 0
+ printf("\nPIPE B Information...\n");
+
+ printf("DPLL_B:reg=0x6018,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x6018)));
+ print_bin_fmt(value,9);
+ printf("FPB0:reg=0x6048,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x6048)));
+ print_bin_fmt(value,9);
+ value=INREG_DISP(linear_mmio,0x61000);
+ printf("HTOTAL_B:reg=0x61000,value=0x%08x(horizontal active display pixel %d)\n",
+ value,value&0xfff);
+ print_bin_fmt(value,9);
+ printf("HBLANK_B:reg=0x61004,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x61004)));
+ print_bin_fmt(value,9);
+ printf("HSYNC_B:reg=0x61008,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x61008)));
+ print_bin_fmt(value,9);
+ value=INREG_DISP(linear_mmio,0x6100c);
+ printf("VTOTAL_B:reg=0x6100c,value=0x%08x(vertical active display lines %d)\n",
+ value,value&0xfff);
+ print_bin_fmt(value,9);
+ printf("VBLANK_B:reg=0x61010,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x61010)));
+ print_bin_fmt(value,9);
+ printf("VSYNC_B:reg=0x61014,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x61014)));
+ print_bin_fmt(value,9);
+ printf("PIPEBSRC:reg=0x6101c,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x6101c)));
+ print_bin_fmt(value,9);
+ value=INREG_DISP(linear_mmio,0x71008);
+ printf("PIPEBCONF:reg=0x%x,value=0x%08x (%s,%s)\n",0x71008,
+ value,value&(1<<31)?"enabled":"disabled",value&(1<<30)?"single wide mode":"double wide mode");
+ print_bin_fmt(value,9);
+#if 0
+ printf("BCLRPAT_B:reg=0x61020,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x61020)));
+ print_bin_fmt(value,9);
+ printf("CRCCtrlColorB:reg=0x61050,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x61050)));
+ print_bin_fmt(value,9);
+ printf("CRCCtrlColorB:reg=0x61054,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x61054)));
+ print_bin_fmt(value,9);
+ printf("CRCResColorB:reg=0x61060,value=0x%08x\n",(value=INREG_DISP(linear_mmio,0x61060)));
+ print_bin_fmt(value,9);
+#endif
+ printf("PIPEB_DSL:reg=0x%x,value=0x%08x\n",0x71000,(value=INREG_DISP(linear_mmio,0x71000)));
+ print_bin_fmt(value,9);
+ printf("PIPEB_SLC:reg=0x%x,value=0x%08x\n",0x71004,(value=INREG_DISP(linear_mmio,0x71004)));
+ print_bin_fmt(value,9);
+ printf("PIPEBSTAT:reg=0x%x,value=0x%08x\n",0x71024,(value=INREG_DISP(linear_mmio,0x71024)));
+ print_bin_fmt(value,9);
+#if 0 /* readonly, requires that this pipe's PLL is running */
+ printf("PIPEBFRAMEH:reg=0x%x,value=0x%08x\n",0x71040,(value=INREG_DISP(linear_mmio,0x71040)));
+ print_bin_fmt(value,9);
+ printf("PIPEBFRAMEPIX:reg=0x%x,value=0x%08x\n",0x71044,(value=INREG_DISP(linear_mmio,0x71044)));
+ print_bin_fmt(value,9);
+#endif
+
+#endif
+
+ printf("\n");
+
+ return 0;
+}
+
+int process_plane(char *cmdhdr)
+{
+ unsigned int value;
+ unsigned int reg;
+ int i;
+
+ printf("DSPARB:reg=0x%x,value=0x%08x\n",0x70030,(value=INREG_DISP(linear_mmio,0x70030)));
+ print_bin_fmt(value,9);
+
+ printf("PLANE A Information...\n");
+ printf("DSPASTRIDE:reg=0x%x,value=0x%08x\n",0x70188,(value=INREG_DISP(linear_mmio,0x70188)));
+ print_bin_fmt(value,9);
+ printf("DSPASIZE:reg=0x%x,value=0x%08x\n",0x70190,(value=INREG_DISP(linear_mmio,0x70190)));
+ print_bin_fmt(value,9);
+ printf("DSPAKEYVAL:reg=0x%x,value=0x%08x\n",0x70194,(value=INREG_DISP(linear_mmio,0x70194)));
+ print_bin_fmt(value,9);
+ printf("DSPAKEYMASK:reg=0x%x,value=0x%08x\n",0x70198,(value=INREG_DISP(linear_mmio,0x70198)));
+ print_bin_fmt(value,9);
+ printf("DSPASURF:reg=0x%x,value=0x%08x\n",0x7019C,(value=INREG_DISP(linear_mmio,0x7019c)));
+ print_bin_fmt(value,9);
+ printf("DSPATILEOFF:reg=0x%x,value=0x%08x\n",0x701a4,(value=INREG_DISP(linear_mmio,0x701a4)));
+ print_bin_fmt(value,9);
+ printf("DSPAPOS:reg=0x%x,value=0x%08x\n",0x7018C,(value=INREG_DISP(linear_mmio,0x7018C)));
+ print_bin_fmt(value,9);
+ printf("DSPAADDR:reg=0x%x,value=0x%08x\n",0x70184,(value=INREG_DISP(linear_mmio,0x70184)));
+ print_bin_fmt(value,9);
+ value = INREG_DISP(linear_mmio,0x70180);
+ printf("DSPACNTR:reg=0x%x,value=0x%08x(%s,pipe %c selected)\n",
+ 0x70180,value,(value&(1<<31))?"Enabled":"Disabled",(value&(3<<24))?'B':'A');
+ print_bin_fmt(value,9);
+
+ printf("\nPLANE B Information...\n");
+ printf("DSPBSTRIDE:reg=0x%x,value=0x%08x\n",0x71188,(value=INREG_DISP(linear_mmio,0x71188)));
+ print_bin_fmt(value,9);
+ printf("DSPBSIZE:reg=0x%x,value=0x%08x\n",0x71190,(value=INREG_DISP(linear_mmio,0x71190)));
+ print_bin_fmt(value,9);
+ printf("DSPBKEYVAL:reg=0x%x,value=0x%08x\n",0x71194,(value=INREG_DISP(linear_mmio,0x71194)));
+ print_bin_fmt(value,9);
+ printf("DSPBKEYMASK:reg=0x%x,value=0x%08x\n",0x71198,(value=INREG_DISP(linear_mmio,0x71198)));
+ print_bin_fmt(value,9);
+ printf("DSPBSURF:reg=0x%x,value=0x%08x\n",0x7119C,(value=INREG_DISP(linear_mmio,0x7119c)));
+ print_bin_fmt(value,9);
+ printf("DSPBTILEOFF:reg=0x%x,value=0x%08x\n",0x711a4,(value=INREG_DISP(linear_mmio,0x711a4)));
+ print_bin_fmt(value,9);
+ printf("DSPBPOS:reg=0x%x,value=0x%08x\n",0x7118C,(value=INREG_DISP(linear_mmio,0x7118C)));
+ print_bin_fmt(value,9);
+ printf("DSPBADDR:reg=0x%x,value=0x%08x\n",0x71184,(value=INREG_DISP(linear_mmio,0x71184)));
+ print_bin_fmt(value,9);
+ value=INREG_DISP(linear_mmio,0x71180);
+ printf("DSPBCNTR:reg=0x%x,value=0x%08x(%s,pipe %c selected)\n",
+ 0x71180,value,
+ (value&(1<<31))?"Enabled":"Disabled",(value&(3<<24))?'B':'A');
+ print_bin_fmt(value,9);
+
+ printf("\nPLANE C Information...\n");
+ printf("DSPCSTRIDE:reg=0x%x,value=0x%08x\n",0x72188,(value=INREG_DISP(linear_mmio,0x72188)));
+ print_bin_fmt(value,9);
+ printf("DSPCSIZE:reg=0x%x,value=0x%08x\n",0x72190,(value=INREG_DISP(linear_mmio,0x72190)));
+ print_bin_fmt(value,9);
+ printf("DSPCKEYMINVAL:reg=0x%x,value=0x%08x\n",0x72194,(value=INREG_DISP(linear_mmio,0x72194)));
+ print_bin_fmt(value,9);
+ printf("DSPCKEYMAXVAL:reg=0x%x,value=0x%08x\n",0x721A0,(value=INREG_DISP(linear_mmio,0x721A0)));
+ print_bin_fmt(value,9);
+ printf("DSPCKEYMASK:reg=0x%x,value=0x%08x\n",0x72198,(value=INREG_DISP(linear_mmio,0x72198)));
+ print_bin_fmt(value,9);
+ printf("DSPCSURF:reg=0x%x,value=0x%08x\n",0x7219C,(value=INREG_DISP(linear_mmio,0x7219c)));
+ print_bin_fmt(value,9);
+ printf("DSPCTILEOFF:reg=0x%x,value=0x%08x\n",0x721a4,(value=INREG_DISP(linear_mmio,0x721a4)));
+ print_bin_fmt(value,9);
+ printf("DSPCContAlpha:reg=0x%x,value=0x%08x\n",0x721a8,(value=INREG_DISP(linear_mmio,0x721a8)));
+ print_bin_fmt(value,9);
+ printf("DSPCPOS:reg=0x%x,value=0x%08x\n",0x7218C,(value=INREG_DISP(linear_mmio,0x7218C)));
+ print_bin_fmt(value,9);
+ printf("DSPCLINOFF:reg=0x%x,value=0x%08x\n",0x72184,(value=INREG_DISP(linear_mmio,0x72184)));
+ print_bin_fmt(value,9);
+ printf("DCLRC0:reg=0x%x,value=0x%08x\n",0x721d0,(value=INREG_DISP(linear_mmio,0x721d0)));
+ print_bin_fmt(value,9);
+ printf("DCLRC1:reg=0x%x,value=0x%08x\n",0x721d4,(value=INREG_DISP(linear_mmio,0x721d4)));
+ print_bin_fmt(value,9);
+
+ reg = 0x721e0;
+ for (i=5; i>=0; i--) {
+ printf("GAMC%d:reg=0x%x,value=0x%08x\n",i, reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = reg + 4;
+ }
+
+ value=INREG_DISP(linear_mmio,0x72180);
+ printf("DSPCCNTR:reg=0x%x,value=0x%08x(%s,pipe %c selected)\n",
+ 0x72180,value,
+ (value&(1<<31))?"Enabled":"Disabled",(value&(3<<24))?'B':'A');
+ print_bin_fmt(value,9);
+
+ printf("\n");
+
+ return 0;
+}
+
+int process_port(char *cmdhdr)
+{
+ unsigned int value;
+
+ printf("PORT Information...\n");
+
+ value=INREG_DISP(linear_mmio,0x61100);
+ printf("ADPA:reg=0x%x,value=0x%08x (pipe %c selected)\n",
+ 0x61100,(value),(value&(1<<30))?'B':'A');
+ print_bin_fmt(value,9);
+
+ printf("\n");
+
+ return 0;
+}
+
+
+int process_fifo(char *cmdhdr)
+{
+ unsigned int value;
+ unsigned int reg;
+
+ printf("DSPARB:reg=0x%x,value=0x%08x\n",0x70030,(value=INREG_DISP(linear_mmio,0x70030)));
+ print_bin_fmt(value,9);
+
+ printf("FW1:reg=0x%x,value=0x%08x\n",0x70034,(value=INREG_DISP(linear_mmio,0x70034)));
+ print_bin_fmt(value,9);
+
+ reg = 0x70038;
+ printf("FW2:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x7003c;
+ printf("FW3:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x7003c;
+ printf("FW3:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ printf("\n");
+
+ return 0;
+}
+
+int process_overlay(char *cmdhdr)
+{
+ unsigned int value;
+ unsigned int reg;
+ int i;
+
+ reg = 0x30000;
+ printf("OVADD:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30004;
+ printf("OTEST:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30008;
+ printf("DVOSTA:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x3000C;
+ printf("DVOSTAX:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ for (i=0; i<=5;i++) {
+ reg = 0x30010 + 4*i;
+ printf("GAMMA-%d:reg=0x%x,value=0x%08x\n",i, reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+ }
+
+ for (i=0; i<=3;i++) {
+ reg = 0x30058 + 4*i;
+ printf("SYNCHPH-%d:reg=0x%x,value=0x%08x\n",i, reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+ }
+
+ reg = 0x30100;
+ printf("OBUF_0Y:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30104;
+ printf("OBUF_1Y:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30108;
+ printf("OBUF_0U:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x3010C;
+ printf("OBUF_0V:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+
+ reg = 0x30110;
+ printf("OBUF_1U:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30114;
+ printf("OBUF_1V:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30118;
+ printf("OSTRIDE:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x3011C;
+ printf("YRGB_VPH:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30120;
+ printf("UV_VPH:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30124;
+ printf("HORZ_PH:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30128;
+ printf("INIT_PHS:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x3012C;
+ printf("DWINPOS:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30130;
+ printf("DWINSZ:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30134;
+ printf("DWINSZ:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30138;
+ printf("SWIDTHSW:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x3013C;
+ printf("SHEIGHT:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+
+ reg = 0x30168;
+ printf("OCMD:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+
+ reg = 0x30170;
+ printf("OSTART_0Y:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30174;
+ printf("OSTART_1Y:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+
+ reg = 0x30178;
+ printf("OSTART_0U:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x3017C;
+ printf("OSTART_0V:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30180;
+ printf("OSTART_1U:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ reg = 0x30184;
+ printf("OSTART_1V:reg=0x%x,value=0x%08x\n",reg,(value=INREG_DISP(linear_mmio,reg)));
+ print_bin_fmt(value,9);
+
+ printf("\n");
+
+ return 0;
+}