Decode DSPCLK_GATE, dump PIPE*STAT, MI_MODE, MI_DISPLAY_POWER_DOWN, MI_ARB_STATE, MI_RDRET_STATE, ECOSKPD
This commit is contained in:
parent
6633135598
commit
4a42b01f5e
|
|
@ -377,7 +377,10 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#define CACHE_MODE_0 0x2120
|
||||
#define CACHE_MODE_1 0x2124
|
||||
#define MI_MODE 0x209c
|
||||
#define MI_DISPLAY_POWER_DOWN 0x20e0
|
||||
#define MI_ARB_STATE 0x20e4
|
||||
#define MI_RDRET_STATE 0x20fc
|
||||
|
||||
/* Start addresses for each of the primary rings:
|
||||
*/
|
||||
|
|
@ -988,6 +991,13 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#define D_STATE 0x6104
|
||||
#define DSPCLK_GATE_D 0x6200
|
||||
# define DPUNIT_B_CLOCK_GATE_DISABLE (1 << 30) /* 965 */
|
||||
# define VSUNIT_CLOCK_GATE_DISABLE (1 << 29) /* 965 */
|
||||
# define VRHUNIT_CLOCK_GATE_DISABLE (1 << 28) /* 965 */
|
||||
# define VRDUNIT_CLOCK_GATE_DISABLE (1 << 27) /* 965 */
|
||||
# define AUDUNIT_CLOCK_GATE_DISABLE (1 << 26) /* 965 */
|
||||
# define DPUNIT_A_CLOCK_GATE_DISABLE (1 << 25) /* 965 */
|
||||
# define DPCUNIT_CLOCK_GATE_DISABLE (1 << 24) /* 965 */
|
||||
# define TVRUNIT_CLOCK_GATE_DISABLE (1 << 23) /* 915-945 */
|
||||
# define TVCUNIT_CLOCK_GATE_DISABLE (1 << 22) /* 915-945 */
|
||||
# define TVFUNIT_CLOCK_GATE_DISABLE (1 << 21) /* 915-945 */
|
||||
|
|
@ -1002,7 +1012,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
# define DPLUNIT_CLOCK_GATE_DISABLE (1 << 12) /* 915-945 */
|
||||
# define DPOUNIT_CLOCK_GATE_DISABLE (1 << 11)
|
||||
# define DPBUNIT_CLOCK_GATE_DISABLE (1 << 10)
|
||||
# define DPCUNIT_CLOCK_GATE_DISABLE (1 << 9)
|
||||
# define DCUNIT_CLOCK_GATE_DISABLE (1 << 9)
|
||||
# define DPUNIT_CLOCK_GATE_DISABLE (1 << 8)
|
||||
# define VRUNIT_CLOCK_GATE_DISABLE (1 << 7) /* 915+: reserved */
|
||||
# define OVHUNIT_CLOCK_GATE_DISABLE (1 << 6) /* 830-865 */
|
||||
|
|
@ -2007,6 +2017,32 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#define PIPEAGCMAXGREEN 0x70014
|
||||
#define PIPEAGCMAXBLUE 0x70018
|
||||
#define PIPEASTAT 0x70024
|
||||
# define FIFO_UNDERRUN (1 << 31)
|
||||
# define CRC_ERROR_ENABLE (1 << 29)
|
||||
# define CRC_DONE_ENABLE (1 << 28)
|
||||
# define GMBUS_EVENT_ENABLE (1 << 27)
|
||||
# define VSYNC_INT_ENABLE (1 << 25)
|
||||
# define DLINE_COMPARE_ENABLE (1 << 24)
|
||||
# define DPST_EVENT_ENABLE (1 << 23)
|
||||
# define LBLC_EVENT_ENABLE (1 << 22)
|
||||
# define OFIELD_INT_ENABLE (1 << 21)
|
||||
# define EFIELD_INT_ENABLE (1 << 20)
|
||||
# define SVBLANK_INT_ENABLE (1 << 18)
|
||||
# define VBLANK_INT_ENABLE (1 << 17)
|
||||
# define OREG_UPDATE_ENABLE (1 << 16)
|
||||
# define CRC_ERROR_INT_STATUS (1 << 13)
|
||||
# define CRC_DONE_INT_STATUS (1 << 12)
|
||||
# define GMBUS_INT_STATUS (1 << 11)
|
||||
# define VSYNC_INT_STATUS (1 << 9)
|
||||
# define DLINE_COMPARE_STATUS (1 << 8)
|
||||
# define DPST_EVENT_STATUS (1 << 7)
|
||||
# define LBLC_EVENT_STATUS (1 << 6)
|
||||
# define OFIELD_INT_STATUS (1 << 5)
|
||||
# define EFIELD_INT_STATUS (1 << 4)
|
||||
# define SVBLANK_INT_STATUS (1 << 2)
|
||||
# define VBLANK_INT_STATUS (1 << 1)
|
||||
# define OREG_UPDATE_STATUS (1 << 0)
|
||||
|
||||
|
||||
#define DSPARB 0x70030
|
||||
#define DSPFW1 0x70034
|
||||
|
|
|
|||
134
src/i830_debug.c
134
src/i830_debug.c
|
|
@ -88,6 +88,61 @@ DEBUGSTRING(i830_debug_pipeconf)
|
|||
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,
|
||||
|
|
@ -340,6 +395,76 @@ DEBUGSTRING(i830_debug_sdvo)
|
|||
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);
|
||||
}
|
||||
|
||||
#if 0
|
||||
DEBUGSTRING(i810_debug_fence_new)
|
||||
{
|
||||
|
|
@ -370,7 +495,7 @@ static struct i830SnapshotRec {
|
|||
DEFINEREG2(DPLL_TEST, i830_debug_dpll_test),
|
||||
DEFINEREG(CACHE_MODE_0),
|
||||
DEFINEREG(D_STATE),
|
||||
DEFINEREG(DSPCLK_GATE_D),
|
||||
DEFINEREG2(DSPCLK_GATE_D, i830_debug_dspclk_gate_d),
|
||||
DEFINEREG(RENCLK_GATE_D1),
|
||||
DEFINEREG(RENCLK_GATE_D2),
|
||||
/* DEFINEREG(RAMCLK_GATE_D), CRL only */
|
||||
|
|
@ -409,6 +534,7 @@ static struct i830SnapshotRec {
|
|||
DEFINEREG(DSPATILEOFF),
|
||||
DEFINEREG2(PIPEACONF, i830_debug_pipeconf),
|
||||
DEFINEREG2(PIPEASRC, i830_debug_yxminus1),
|
||||
DEFINEREG2(PIPEASTAT, i830_debug_pipestat),
|
||||
|
||||
DEFINEREG(FBC_CFB_BASE),
|
||||
DEFINEREG(FBC_LL_BASE),
|
||||
|
|
@ -441,6 +567,7 @@ static struct i830SnapshotRec {
|
|||
DEFINEREG(DSPBTILEOFF),
|
||||
DEFINEREG2(PIPEBCONF, i830_debug_pipeconf),
|
||||
DEFINEREG2(PIPEBSRC, i830_debug_yxminus1),
|
||||
DEFINEREG2(PIPEBSTAT, i830_debug_pipestat),
|
||||
|
||||
DEFINEREG2(FPB0, i830_debug_fp),
|
||||
DEFINEREG2(FPB1, i830_debug_fp),
|
||||
|
|
@ -495,6 +622,11 @@ static struct i830SnapshotRec {
|
|||
DEFINEREG(TV_H_CHROMA_0),
|
||||
DEFINEREG(TV_H_CHROMA_59),
|
||||
|
||||
DEFINEREG(MI_MODE),
|
||||
DEFINEREG(MI_DISPLAY_POWER_DOWN),
|
||||
DEFINEREG(MI_ARB_STATE),
|
||||
DEFINEREG(MI_RDRET_STATE),
|
||||
DEFINEREG(ECOSKPD),
|
||||
#if 0
|
||||
DEFINEREG2(FENCE_NEW + 0, i810_debug_fence_new),
|
||||
DEFINEREG2(FENCE_NEW + 8, i810_debug_fence_new),
|
||||
|
|
|
|||
Loading…
Reference in New Issue