err = DummyBW(cmd, in, out, per_proc);
break;
-#if defined(PDUMP)
- case PVRSRV_BRIDGE_PDUMP_INIT:
- err = DummyBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_MEMPOL:
- err = PDumpMemPolBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_DUMPMEM:
- err = PDumpMemBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_REG:
- err = PDumpRegWithFlagsBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_REGPOL:
- err = PDumpRegPolBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_COMMENT:
- err = PDumpCommentBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_SETFRAME:
- err = PDumpSetFrameBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_ISCAPTURING:
- err = PDumpIsCaptureFrameBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_DUMPBITMAP:
- err = PDumpBitmapBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_DUMPREADREG:
- err = DummyBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_SYNCPOL:
- err = PDumpSyncPolBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_DUMPSYNC:
- err = PDumpSyncDumpBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_DRIVERINFO:
- err = DummyBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_PDREG:
- err = PDumpPDRegBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR:
- err = PDumpPDDevPAddrBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ:
- err = PDumpCycleCountRegReadBW(cmd, in, out, per_proc);
- break;
- case PVRSRV_BRIDGE_PDUMP_STARTINITPHASE:
- case PVRSRV_BRIDGE_PDUMP_STOPINITPHASE:
- err = DummyBW(cmd, in, out, per_proc);
- break;
-#endif
-
case PVRSRV_BRIDGE_GET_OEMJTABLE:
err = DummyBW(cmd, in, out, per_proc);
break;
break;
#if defined(PDUMP)
+ /* PDUMP IOCTLs live in a separate range */
+ case PVRSRV_BRIDGE_PDUMP_INIT:
+ err = DummyBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_MEMPOL:
+ err = PDumpMemPolBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_DUMPMEM:
+ err = PDumpMemBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_REG:
+ err = PDumpRegWithFlagsBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_REGPOL:
+ err = PDumpRegPolBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_COMMENT:
+ err = PDumpCommentBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_SETFRAME:
+ err = PDumpSetFrameBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_ISCAPTURING:
+ err = PDumpIsCaptureFrameBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_DUMPBITMAP:
+ err = PDumpBitmapBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_DUMPREADREG:
+ err = DummyBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_SYNCPOL:
+ err = PDumpSyncPolBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_DUMPSYNC:
+ err = PDumpSyncDumpBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_DRIVERINFO:
+ err = DummyBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_PDREG:
+ err = PDumpPDRegBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR:
+ err = PDumpPDDevPAddrBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ:
+ err = PDumpCycleCountRegReadBW(cmd, in, out, per_proc);
+ break;
+ case PVRSRV_BRIDGE_PDUMP_STARTINITPHASE:
+ case PVRSRV_BRIDGE_PDUMP_STOPINITPHASE:
+ err = DummyBW(cmd, in, out, per_proc);
+ break;
+
+ /* bridged_sgx_bridge */
case PVRSRV_BRIDGE_SGX_PDUMP_BUFFER_ARRAY:
err = SGXPDumpBufferArrayBW(cmd, in, out, per_proc);
break;
#define PVRSRV_BRIDGE_OVERLAY_CMD_LAST \
(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
-#if defined(PDUMP)
-#define PVRSRV_BRIDGE_PDUMP_CMD_FIRST \
- (PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_PDUMP_INIT \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+0)
-#define PVRSRV_BRIDGE_PDUMP_MEMPOL \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+1)
-#define PVRSRV_BRIDGE_PDUMP_DUMPMEM \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+2)
-#define PVRSRV_BRIDGE_PDUMP_REG \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+3)
-#define PVRSRV_BRIDGE_PDUMP_REGPOL \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+4)
-#define PVRSRV_BRIDGE_PDUMP_COMMENT \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+5)
-#define PVRSRV_BRIDGE_PDUMP_SETFRAME \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+6)
-#define PVRSRV_BRIDGE_PDUMP_ISCAPTURING \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+7)
-#define PVRSRV_BRIDGE_PDUMP_DUMPBITMAP \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+8)
-#define PVRSRV_BRIDGE_PDUMP_DUMPREADREG \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+9)
-#define PVRSRV_BRIDGE_PDUMP_SYNCPOL \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+10)
-#define PVRSRV_BRIDGE_PDUMP_DUMPSYNC \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+11)
-#define PVRSRV_BRIDGE_PDUMP_MEMPAGES \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+12)
-#define PVRSRV_BRIDGE_PDUMP_DRIVERINFO \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+13)
-#define PVRSRV_BRIDGE_PDUMP_PDREG \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+14)
-#define PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+15)
-#define PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+16)
-#define PVRSRV_BRIDGE_PDUMP_STARTINITPHASE \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+17)
-#define PVRSRV_BRIDGE_PDUMP_STOPINITPHASE \
- PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
-#define PVRSRV_BRIDGE_PDUMP_CMD_LAST \
- (PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
-#else
-#define PVRSRV_BRIDGE_PDUMP_CMD_LAST PVRSRV_BRIDGE_OVERLAY_CMD_LAST
-#endif
+/* PDUMP was here */
#define PVRSRV_BRIDGE_OEM_CMD_FIRST \
- (PVRSRV_BRIDGE_PDUMP_CMD_LAST+1)
+ (PVRSRV_BRIDGE_OVERLAY_CMD_LAST+1)
#define PVRSRV_BRIDGE_GET_OEMJTABLE \
PVRSRV_IOWR(PVRSRV_BRIDGE_OEM_CMD_FIRST+0)
#define PVRSRV_BRIDGE_OEM_CMD_LAST \
#define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD \
(PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST+1)
+
+#if defined(PDUMP)
+#define PVRSRV_BRIDGE_PDUMP_CMD_FIRST 192
+#define PVRSRV_BRIDGE_PDUMP_INIT \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+0)
+#define PVRSRV_BRIDGE_PDUMP_MEMPOL \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+1)
+#define PVRSRV_BRIDGE_PDUMP_DUMPMEM \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+2)
+#define PVRSRV_BRIDGE_PDUMP_REG \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+3)
+#define PVRSRV_BRIDGE_PDUMP_REGPOL \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+4)
+#define PVRSRV_BRIDGE_PDUMP_COMMENT \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+5)
+#define PVRSRV_BRIDGE_PDUMP_SETFRAME \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+6)
+#define PVRSRV_BRIDGE_PDUMP_ISCAPTURING \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+7)
+#define PVRSRV_BRIDGE_PDUMP_DUMPBITMAP \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+8)
+#define PVRSRV_BRIDGE_PDUMP_DUMPREADREG \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+9)
+#define PVRSRV_BRIDGE_PDUMP_SYNCPOL \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+10)
+#define PVRSRV_BRIDGE_PDUMP_DUMPSYNC \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+11)
+#define PVRSRV_BRIDGE_PDUMP_MEMPAGES \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+12)
+#define PVRSRV_BRIDGE_PDUMP_DRIVERINFO \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+13)
+#define PVRSRV_BRIDGE_PDUMP_PDREG \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+14)
+#define PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+15)
+#define PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+16)
+#define PVRSRV_BRIDGE_PDUMP_STARTINITPHASE \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+17)
+#define PVRSRV_BRIDGE_PDUMP_STOPINITPHASE \
+ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
+#define PVRSRV_BRIDGE_PDUMP_CMD_LAST \
+ (PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
+#endif /* PDUMP */
+
+
#define PVRSRV_KERNEL_MODE_CLIENT 1
struct PVRSRV_BRIDGE_RETURN {
#define PVRSRV_BRIDGE_SGX_READ_HWPERF_CB \
PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+30)
+#define PVRSRV_BRIDGE_LAST_SGX_CMD (PVRSRV_BRIDGE_SGX_CMD_BASE+30)
+
+
#if defined(PDUMP)
+#define PVRSRV_BRIDGE_SGX_PDUMP_CMD_BASE \
+ (PVRSRV_BRIDGE_PDUMP_CMD_LAST+1)
+
#define PVRSRV_BRIDGE_SGX_PDUMP_BUFFER_ARRAY \
- PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+31)
+ PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_PDUMP_CMD_BASE+0)
#define PVRSRV_BRIDGE_SGX_PDUMP_3D_SIGNATURE_REGISTERS \
- PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+32)
+ PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_PDUMP_CMD_BASE+1)
#define PVRSRV_BRIDGE_SGX_PDUMP_COUNTER_REGISTERS \
- PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+33)
+ PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_PDUMP_CMD_BASE+2)
#define PVRSRV_BRIDGE_SGX_PDUMP_TA_SIGNATURE_REGISTERS \
- PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+34)
+ PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_PDUMP_CMD_BASE+3)
#define PVRSRV_BRIDGE_SGX_PDUMP_HWPERFCB \
- PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+35)
+ PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_PDUMP_CMD_BASE+4)
#endif
-#define PVRSRV_BRIDGE_LAST_SGX_CMD (PVRSRV_BRIDGE_SGX_CMD_BASE+35)
+/* sanity check */
+#if defined(PDUMP)
+#if PVRSRV_BRIDGE_PDUMP_CMD_FIRST <= PVRSRV_BRIDGE_LAST_SGX_CMD
+# error Standard and PDUMP IOCTLs overlap!!!
+#endif
+#endif
struct PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR {
u32 ui32BridgeFlags;