tools/intel_display_poller: Add a new tool that will poll various display registers

intel_poller can be used to poll various display registers
(IIR,scanline/pixel/flip/frame counter, live address, etc.).

It can be used to determine eg. at which scanline or pixel count certain
events occur.

v2: s/intel_poller/intel_display_poller/

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
This commit is contained in:
Ville Syrjälä 2013-10-29 18:17:39 +02:00
parent 71874f4a52
commit 8c1566e2d9
3 changed files with 1491 additions and 3 deletions

View File

@ -2248,7 +2248,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
#define PIPE_PIXEL_MASK 0x00ffffff #define PIPE_PIXEL_MASK 0x00ffffff
#define PIPE_PIXEL_SHIFT 0 #define PIPE_PIXEL_SHIFT 0
/*
* g4x+ frame/flip counters
*/
#define PIPEAFRMCOUNT_G4X 0x70040
#define PIPEAFLIPCOUNT_G4X 0x70044
/* /*
* Computing GMCH M and N values. * Computing GMCH M and N values.
* *
@ -2296,20 +2300,24 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define PIPEBSTAT 0x71024 #define PIPEBSTAT 0x71024
#define PIPEBFRAMEHIGH 0x71040 #define PIPEBFRAMEHIGH 0x71040
#define PIPEBFRAMEPIXEL 0x71044 #define PIPEBFRAMEPIXEL 0x71044
#define PIPEBFRMCOUNT_G4X 0x71040
#define PIPEBFLIPCOUNT_G4X 0x71044
#define PIPEB_GMCH_DATA_M 0x71050 #define PIPEB_GMCH_DATA_M 0x71050
#define PIPEB_GMCH_DATA_N 0x71054 #define PIPEB_GMCH_DATA_N 0x71054
#define PIPEB_DP_LINK_M 0x71060 #define PIPEB_DP_LINK_M 0x71060
#define PIPEB_DP_LINK_N 0x71064 #define PIPEB_DP_LINK_N 0x71064
#define PIPEC_DSL 0x72000
#define PIPECCONF 0x72008 #define PIPECCONF 0x72008
#define PIPECGCMAXRED 0x72010 #define PIPECGCMAXRED 0x72010
#define PIPECGCMAXGREEN 0x72014 #define PIPECGCMAXGREEN 0x72014
#define PIPECGCMAXBLUE 0x72018 #define PIPECGCMAXBLUE 0x72018
#define PIPECSTAT 0x72024 #define PIPECSTAT 0x72024
#define PIPECFRAMEHIGH 0x72040 #define PIPECFRMCOUNT_G4X 0x72040
#define PIPECFRAMEPIXEL 0x72044 #define PIPECFLIPCOUNT_G4X 0x72044
#define PIPEC_GMCH_DATA_M 0x72050 #define PIPEC_GMCH_DATA_M 0x72050
#define PIPEC_GMCH_DATA_N 0x72054 #define PIPEC_GMCH_DATA_N 0x72054
@ -2370,12 +2378,15 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define DSPASURF 0x7019C #define DSPASURF 0x7019C
#define DSPATILEOFF 0x701A4 #define DSPATILEOFF 0x701A4
#define DSPASURFLIVE 0x701AC
#define DSPBSURF 0x7119C #define DSPBSURF 0x7119C
#define DSPBTILEOFF 0x711A4 #define DSPBTILEOFF 0x711A4
#define DSPBSURFLIVE 0x711AC
#define DSPCSURF 0x7219C #define DSPCSURF 0x7219C
#define DSPCTILEOFF 0x721A4 #define DSPCTILEOFF 0x721A4
#define DSPCSURFLIVE 0x721AC
#define VGACNTRL 0x71400 #define VGACNTRL 0x71400
# define VGA_DISP_DISABLE (1 << 31) # define VGA_DISP_DISABLE (1 << 31)
@ -2879,6 +2890,11 @@ typedef enum {
#define DEIIR 0x44008 #define DEIIR 0x44008
#define DEIER 0x4400c #define DEIER 0x4400c
#define GEN8_DE_PIPE_ISR(pipe) (0x44400 + 0x10 * (pipe))
#define GEN8_DE_PIPE_IMR(pipe) (0x44404 + 0x10 * (pipe))
#define GEN8_DE_PIPE_IIR(pipe) (0x44408 + 0x10 * (pipe))
#define GEN8_DE_PIPE_IER(pipe) (0x4440c + 0x10 * (pipe))
/* GT interrupt */ /* GT interrupt */
#define GT_SYNC_STATUS (1 << 2) #define GT_SYNC_STATUS (1 << 2)
#define GT_USER_INTERRUPT (1 << 0) #define GT_USER_INTERRUPT (1 << 0)

View File

@ -12,6 +12,7 @@ bin_PROGRAMS = \
intel_iosf_sb_write \ intel_iosf_sb_write \
intel_opregion_decode \ intel_opregion_decode \
intel_perf_counters \ intel_perf_counters \
intel_display_poller \
intel_stepping \ intel_stepping \
intel_reg_checker \ intel_reg_checker \
intel_reg_dumper \ intel_reg_dumper \

1471
tools/intel_display_poller.c Normal file

File diff suppressed because it is too large Load Diff