diff options
author | Austin Yuan <shengquan.yuan@intel.com> | 2015-05-20 13:26:26 +0800 |
---|---|---|
committer | Austin Yuan <shengquan.yuan@intel.com> | 2015-05-20 13:26:26 +0800 |
commit | 23bd23703b9e23491935d4657ad9472305c10409 (patch) | |
tree | c96f5623fea47cde99e7e803087bb43c59dd6347 /display.c |
Signed-off-by: Austin Yuan <shengquan.yuan@intel.com>
Diffstat (limited to 'display.c')
-rw-r--r-- | display.c | 500 |
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; +} |