From: Luc Verhaegen Date: Tue, 5 Apr 2011 12:41:26 +0000 (+0200) Subject: gpu: pvr: move pdump ioctls to its own range at 192 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7bc08782c4a0fbd937cc1111a73db5fa6aab2c50;p=sgx.git gpu: pvr: move pdump ioctls to its own range at 192 This removes the shifting of ioctls when enabling pdump builds. Fixes: NB#247418 - PVR kernel driver IOCTL IDs depend on build configuration Signed-off-by: Luc Verhaegen Signed-off-by: Imre Deak --- diff --git a/pvr/bridged_pvr_bridge.c b/pvr/bridged_pvr_bridge.c index 980781e..49f39c0 100644 --- a/pvr/bridged_pvr_bridge.c +++ b/pvr/bridged_pvr_bridge.c @@ -2738,61 +2738,6 @@ static int bridged_ioctl(struct file *filp, u32 cmd, void *in, void *out, 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; @@ -2987,6 +2932,61 @@ static int bridged_ioctl(struct file *filp, u32 cmd, void *in, void *out, 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; diff --git a/pvr/pvr_bridge.h b/pvr/pvr_bridge.h index d41e73d..22dd20f 100644 --- a/pvr/pvr_bridge.h +++ b/pvr/pvr_bridge.h @@ -149,55 +149,10 @@ #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 \ @@ -317,6 +272,52 @@ #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 { diff --git a/pvr/sgx_bridge.h b/pvr/sgx_bridge.h index dab97c7..1bb3209 100644 --- a/pvr/sgx_bridge.h +++ b/pvr/sgx_bridge.h @@ -87,20 +87,31 @@ #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;