public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/7] misc patches (for ioctl and ssi)
@ 2010-01-12  1:00 Omar Ramirez Luna
  2010-01-12  1:00 ` [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap Omar Ramirez Luna
  2010-01-15 13:06 ` [PATCH v3 0/7] misc patches (for ioctl and ssi) Ameya Palande
  0 siblings, 2 replies; 18+ messages in thread
From: Omar Ramirez Luna @ 2010-01-12  1:00 UTC (permalink / raw)
  To: linux-omap
  Cc: Omar Ramirez Luna, Nishanth Menon, Hiroshi Doyu, Ameya Palande,
	Felipe Contreras

Ioctl numbers has changed, this will require an update on libbridge and clients accesing directly to the driver

- IO_ADDRESS is replaced for ioremap.

*v3
- modified:
	DSPBRIDGE: replace IO_ADDRESS with ioremap, checking
	the result of ioremap
	(http://marc.info/?l=linux-omap&m=126324914710445&w=2).
	DSPBRIDGE: Use _IOxx macro to define ioctls (as per Nishanth comments)
- new patch:
  	DSPBRIDGE: remove WCD_Cmd structure
  	
*v2
- dropped from the series:
	DSPBRIDGE: Increased DMM size to 256MB
	DSPBRIDGE: sysfs entry for global driver state
- will be kept in bridge-pm
	DSPBRIDGE: Use dspbridge to initialize platform data
	DSPBRIDGE: change to cpufreq_register_notifier for OPP changes
	DSPBRIDGE: Fix header locations mach to plat
- previously acked
	DSPBRIDGE: Remove unused hDrvObject in bridge_[open|release]

Omar Ramirez Luna (7):
  DSPBRIDGE: replace IO_ADDRESS with ioremap
  DSPBRIDGE: Replace magic numbers in SSI configuration
  DSPBRIDGE: Mark unused ioctls as deprecated
  DSPBRIDGE: remove ioctl runtime check
  DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl
  DSPBRIDGE: Use _IOxx macro to define ioctls
  DSPBRIDGE: remove WCD_Cmd structure

 arch/arm/plat-omap/include/dspbridge/wcdioctl.h |  184 ++++++++++-------
 drivers/dsp/bridge/pmgr/wcd.c                   |  250 ++++++++++++++---------
 drivers/dsp/bridge/rmgr/drv_interface.c         |    3 -
 drivers/dsp/bridge/services/clk.c               |   27 ++-
 4 files changed, 274 insertions(+), 190 deletions(-)

CC: Nishanth Menon <nm@ti.com>
CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
CC: Ameya Palande <ameya.palande@nokia.com>
CC: Felipe Contreras <felipe.contreras@gmail.com>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap
  2010-01-12  1:00 [PATCH v3 0/7] misc patches (for ioctl and ssi) Omar Ramirez Luna
@ 2010-01-12  1:00 ` Omar Ramirez Luna
  2010-01-12  1:00   ` [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration Omar Ramirez Luna
  2010-01-13 23:57   ` [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap Ramirez Luna, Omar
  2010-01-15 13:06 ` [PATCH v3 0/7] misc patches (for ioctl and ssi) Ameya Palande
  1 sibling, 2 replies; 18+ messages in thread
From: Omar Ramirez Luna @ 2010-01-12  1:00 UTC (permalink / raw)
  To: linux-omap
  Cc: Omar Ramirez Luna, Tony Lindgren, Nishanth Menon, Hiroshi Doyu,
	Ameya Palande, Felipe Contreras

Use ioremap() instead of using IO_ADDRESS macro to make it generic.

Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
CC: Tony Lindgren <tony@atomide.com>
CC: Nishanth Menon <nm@ti.com>
CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
CC: Ameya Palande <ameya.palande@nokia.com>
CC: Felipe Contreras <felipe.contreras@gmail.com>
---
 drivers/dsp/bridge/services/clk.c |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/dsp/bridge/services/clk.c b/drivers/dsp/bridge/services/clk.c
index d1c68fc..21a61d8 100644
--- a/drivers/dsp/bridge/services/clk.c
+++ b/drivers/dsp/bridge/services/clk.c
@@ -54,10 +54,9 @@
 
 typedef volatile unsigned long  REG_UWORD32;
 
-#define SSI_Base        0x48058000
-
-#define SSI_BASE                     IO_ADDRESS(SSI_Base)
-
+#define OMAP_SSI_OFFSET			0x58000
+#define OMAP_SSI_SIZE			0x1000
+#define OMAP_SSI_SYSCONFIG_OFFSET	0x10
 
 struct SERVICES_Clk_t {
 	struct clk *clk_handle;
@@ -355,7 +354,13 @@ s32 CLK_Get_UseCnt(IN enum SERVICES_ClkId clk_id)
 void SSI_Clk_Prepare(bool FLAG)
 {
 	u32 ssi_sysconfig;
-	ssi_sysconfig = __raw_readl((SSI_BASE) + 0x10);
+	void __iomem *ssi_base;
+
+	ssi_base = ioremap(L4_34XX_BASE + OMAP_SSI_OFFSET, OMAP_SSI_SIZE);
+	if (!ssi_base) {
+		pr_err("%s: error, SSI not configured\n", __func__);
+		return;
+	}
 
 	if (FLAG) {
 		/* Set Autoidle, SIDLEMode to smart idle, and MIDLEmode to
@@ -368,5 +373,7 @@ void SSI_Clk_Prepare(bool FLAG)
 		 */
 		ssi_sysconfig = 0x1;
 	}
-	__raw_writel((u32)ssi_sysconfig, SSI_BASE + 0x10);
+
+	__raw_writel(ssi_sysconfig, ssi_base + OMAP_SSI_SYSCONFIG_OFFSET);
+	iounmap(ssi_base);
 }
-- 
1.6.2.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration
  2010-01-12  1:00 ` [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap Omar Ramirez Luna
@ 2010-01-12  1:00   ` Omar Ramirez Luna
  2010-01-12  1:00     ` [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated Omar Ramirez Luna
  2010-01-14  0:22     ` [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration Ramirez Luna, Omar
  2010-01-13 23:57   ` [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap Ramirez Luna, Omar
  1 sibling, 2 replies; 18+ messages in thread
From: Omar Ramirez Luna @ 2010-01-12  1:00 UTC (permalink / raw)
  To: linux-omap
  Cc: Omar Ramirez Luna, Nishanth Menon, Hiroshi Doyu, Ameya Palande,
	Felipe Contreras

Rename ssi_sysconfig variable and replace the usage of magic
numbers while updating SSI configuration.

Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
CC: Nishanth Menon <nm@ti.com>
CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
CC: Ameya Palande <ameya.palande@nokia.com>
CC: Felipe Contreras <felipe.contreras@gmail.com>
---
 drivers/dsp/bridge/services/clk.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/dsp/bridge/services/clk.c b/drivers/dsp/bridge/services/clk.c
index 21a61d8..d6b2259 100644
--- a/drivers/dsp/bridge/services/clk.c
+++ b/drivers/dsp/bridge/services/clk.c
@@ -58,6 +58,10 @@ typedef volatile unsigned long  REG_UWORD32;
 #define OMAP_SSI_SIZE			0x1000
 #define OMAP_SSI_SYSCONFIG_OFFSET	0x10
 
+#define SSI_AUTOIDLE			(1 << 0)
+#define SSI_SIDLE_SMARTIDLE		(2 << 3)
+#define SSI_MIDLE_NOIDLE		(1 << 12)
+
 struct SERVICES_Clk_t {
 	struct clk *clk_handle;
 	const char *clk_name;
@@ -353,8 +357,8 @@ s32 CLK_Get_UseCnt(IN enum SERVICES_ClkId clk_id)
 
 void SSI_Clk_Prepare(bool FLAG)
 {
-	u32 ssi_sysconfig;
 	void __iomem *ssi_base;
+	unsigned int value;
 
 	ssi_base = ioremap(L4_34XX_BASE + OMAP_SSI_OFFSET, OMAP_SSI_SIZE);
 	if (!ssi_base) {
@@ -366,14 +370,14 @@ void SSI_Clk_Prepare(bool FLAG)
 		/* Set Autoidle, SIDLEMode to smart idle, and MIDLEmode to
 		 * no idle
 		 */
-		ssi_sysconfig = 0x1011;
+		value = SSI_AUTOIDLE | SSI_SIDLE_SMARTIDLE | SSI_MIDLE_NOIDLE;
 	} else {
 		/* Set Autoidle, SIDLEMode to forced idle, and MIDLEmode to
 		 * forced idle
 		 */
-		ssi_sysconfig = 0x1;
+		value = SSI_AUTOIDLE;
 	}
 
-	__raw_writel(ssi_sysconfig, ssi_base + OMAP_SSI_SYSCONFIG_OFFSET);
+	__raw_writel(value, ssi_base + OMAP_SSI_SYSCONFIG_OFFSET);
 	iounmap(ssi_base);
 }
-- 
1.6.2.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated
  2010-01-12  1:00   ` [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration Omar Ramirez Luna
@ 2010-01-12  1:00     ` Omar Ramirez Luna
  2010-01-12  1:00       ` [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check Omar Ramirez Luna
  2010-01-14  0:23       ` [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated Ramirez Luna, Omar
  2010-01-14  0:22     ` [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration Ramirez Luna, Omar
  1 sibling, 2 replies; 18+ messages in thread
From: Omar Ramirez Luna @ 2010-01-12  1:00 UTC (permalink / raw)
  To: linux-omap
  Cc: Omar Ramirez Luna, Nishanth Menon, Hiroshi Doyu, Ameya Palande,
	Felipe Contreras

Mark unused ioctls as deprecated for future removal
and print an error message whenever they are used.

Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
CC: Nishanth Menon <nm@ti.com>
CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
CC: Ameya Palande <ameya.palande@nokia.com>
CC: Felipe Contreras <felipe.contreras@gmail.com>
---
 arch/arm/plat-omap/include/dspbridge/wcdioctl.h |   11 ++++--
 drivers/dsp/bridge/pmgr/wcd.c                   |   38 +++++++++--------------
 2 files changed, 22 insertions(+), 27 deletions(-)

diff --git a/arch/arm/plat-omap/include/dspbridge/wcdioctl.h b/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
index 04b13ab..4b9dd0a 100644
--- a/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
+++ b/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
@@ -439,6 +439,8 @@ union Trapped_Args {
 
 #define CMD_BASE		    1
 
+/* TODO: Remove deprecated and not implemented */
+
 /* MGR module offsets */
 #define CMD_MGR_BASE_OFFSET	     CMD_BASE
 #define CMD_MGR_ENUMNODE_INFO_OFFSET    (CMD_MGR_BASE_OFFSET + 0)
@@ -448,7 +450,7 @@ union Trapped_Args {
 #define CMD_MGR_WAIT_OFFSET	     (CMD_MGR_BASE_OFFSET + 4)
 
 #ifndef RES_CLEANUP_DISABLE
-#define CMD_MGR_RESOUCES_OFFSET	 (CMD_MGR_BASE_OFFSET + 5)
+#define CMD_MGR_RESOUCES_OFFSET	 (CMD_MGR_BASE_OFFSET + 5)    /* Deprecated */
 #define CMD_MGR_END_OFFSET	      CMD_MGR_RESOUCES_OFFSET
 #else
 #define CMD_MGR_END_OFFSET	      CMD_MGR_WAIT_OFFSET
@@ -457,7 +459,7 @@ union Trapped_Args {
 #define CMD_PROC_BASE_OFFSET	    (CMD_MGR_END_OFFSET + 1)
 #define CMD_PROC_ATTACH_OFFSET	  (CMD_PROC_BASE_OFFSET + 0)
 #define CMD_PROC_CTRL_OFFSET	    (CMD_PROC_BASE_OFFSET + 1)
-#define CMD_PROC_DETACH_OFFSET	  (CMD_PROC_BASE_OFFSET + 2)
+#define CMD_PROC_DETACH_OFFSET	  (CMD_PROC_BASE_OFFSET + 2)  /* Deprecated */
 #define CMD_PROC_ENUMNODE_OFFSET	(CMD_PROC_BASE_OFFSET + 3)
 #define CMD_PROC_ENUMRESOURCES_OFFSET   (CMD_PROC_BASE_OFFSET + 4)
 #define CMD_PROC_GETSTATE_OFFSET	(CMD_PROC_BASE_OFFSET + 5)
@@ -497,6 +499,7 @@ union Trapped_Args {
 #define CMD_STRM_ALLOCATEBUFFER_OFFSET  (CMD_STRM_BASE_OFFSET + 0)
 #define CMD_STRM_CLOSE_OFFSET	   (CMD_STRM_BASE_OFFSET + 1)
 #define CMD_STRM_FREEBUFFER_OFFSET      (CMD_STRM_BASE_OFFSET + 2)
+/* Not Impl'd */
 #define CMD_STRM_GETEVENTHANDLE_OFFSET  (CMD_STRM_BASE_OFFSET + 3)
 #define CMD_STRM_GETINFO_OFFSET	 (CMD_STRM_BASE_OFFSET + 4)
 #define CMD_STRM_IDLE_OFFSET	    (CMD_STRM_BASE_OFFSET + 5)
@@ -509,8 +512,8 @@ union Trapped_Args {
 
 /* Communication Memory Manager (UCMM) */
 #define CMD_CMM_BASE_OFFSET	     (CMD_STRM_END_OFFSET + 1)
-#define CMD_CMM_ALLOCBUF_OFFSET	 (CMD_CMM_BASE_OFFSET + 0)
-#define CMD_CMM_FREEBUF_OFFSET	  (CMD_CMM_BASE_OFFSET + 1)
+#define CMD_CMM_ALLOCBUF_OFFSET	 (CMD_CMM_BASE_OFFSET + 0)    /* Not Impl'd */
+#define CMD_CMM_FREEBUF_OFFSET	  (CMD_CMM_BASE_OFFSET + 1)   /* Not Impl'd */
 #define CMD_CMM_GETHANDLE_OFFSET	(CMD_CMM_BASE_OFFSET + 2)
 #define CMD_CMM_GETINFO_OFFSET	  (CMD_CMM_BASE_OFFSET + 3)
 #define CMD_CMM_END_OFFSET	      CMD_CMM_GETINFO_OFFSET
diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index 7226b5a..f95980b 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -456,6 +456,8 @@ DSP_STATUS WCD_InitComplete2(void)
 	return status;
 }
 
+/* TODO: Remove deprecated and not implemented ioctl wrappers */
+
 /*
  * ======== MGRWRAP_EnumNode_Info ========
  */
@@ -634,21 +636,11 @@ u32 MGRWRAP_WaitForBridgeEvents(union Trapped_Args *args, void *pr_ctxt)
 /*
  * ======== MGRWRAP_GetProcessResourceInfo ========
  */
-u32 MGRWRAP_GetProcessResourcesInfo(union Trapped_Args *args, void *pr_ctxt)
+u32 __deprecated MGRWRAP_GetProcessResourcesInfo(union Trapped_Args *args,
+						void *pr_ctxt)
 {
-    DSP_STATUS status = DSP_SOK;
-    u32 uSize = 0;
-    u8 *pBuf = MEM_Alloc(8092, MEM_NONPAGED);
-    GT_1trace(WCD_debugMask, GT_ENTER,
-	     "MGRWRAP_GetProcessResourcesInfo:uSize=%d :\n", uSize);
-    cp_to_usr(args->ARGS_PROC_GETTRACE.pBuf, pBuf, status, uSize);
-    GT_0trace(WCD_debugMask, GT_ENTER, "\n***********"
-	     "123MGRWRAP_GetProcessResourcesInfo:**************\n");
-    GT_0trace(WCD_debugMask, GT_ENTER, "\n***********"
-	     "456MGRWRAP_GetProcessResourcesInfo:**************\n");
-    cp_to_usr(args->ARGS_PROC_GETTRACE.pSize, &uSize, status, 1);
-    MEM_Free(pBuf);
-    return status;
+	pr_err("%s: deprecated dspbridge ioctl\n", __func__);
+	return DSP_SOK;
 }
 #endif
 
@@ -732,14 +724,10 @@ func_end:
 /*
  * ======== PROCWRAP_Detach ========
  */
-u32 PROCWRAP_Detach(union Trapped_Args *args, void *pr_ctxt)
+u32 __deprecated PROCWRAP_Detach(union Trapped_Args *args, void *pr_ctxt)
 {
-	GT_1trace(WCD_debugMask, GT_ENTER,
-		 "PROCWRAP_Detach: entered args\n0x%x "
-		 "hProceesor \n", args->ARGS_PROC_DETACH.hProcessor);
-
 	/* PROC_Detach called at bridge_release only */
-
+	pr_err("%s: deprecated dspbridge ioctl\n", __func__);
 	return DSP_SOK;
 }
 
@@ -1540,8 +1528,10 @@ u32 STRMWRAP_FreeBuffer(union Trapped_Args *args, void *pr_ctxt)
 /*
  * ======== STRMWRAP_GetEventHandle ========
  */
-u32 STRMWRAP_GetEventHandle(union Trapped_Args *args, void *pr_ctxt)
+u32 __deprecated STRMWRAP_GetEventHandle(union Trapped_Args *args,
+					void *pr_ctxt)
 {
+	pr_err("%s: deprecated dspbridge ioctl\n", __func__);
 	return DSP_ENOTIMPL;
 }
 
@@ -1703,18 +1693,20 @@ u32 STRMWRAP_Select(union Trapped_Args *args, void *pr_ctxt)
 /*
  * ======== CMMWRAP_CallocBuf ========
  */
-u32 CMMWRAP_CallocBuf(union Trapped_Args *args, void *pr_ctxt)
+u32 __deprecated CMMWRAP_CallocBuf(union Trapped_Args *args, void *pr_ctxt)
 {
 	/* This operation is done in kernel */
+	pr_err("%s: deprecated dspbridge ioctl\n", __func__);
 	return DSP_ENOTIMPL;
 }
 
 /*
  * ======== CMMWRAP_FreeBuf ========
  */
-u32 CMMWRAP_FreeBuf(union Trapped_Args *args, void *pr_ctxt)
+u32 __deprecated CMMWRAP_FreeBuf(union Trapped_Args *args, void *pr_ctxt)
 {
 	/* This operation is done in kernel */
+	pr_err("%s: deprecated dspbridge ioctl\n", __func__);
 	return DSP_ENOTIMPL;
 }
 
-- 
1.6.2.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check
  2010-01-12  1:00     ` [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated Omar Ramirez Luna
@ 2010-01-12  1:00       ` Omar Ramirez Luna
  2010-01-12  1:00         ` [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl Omar Ramirez Luna
  2010-01-14  0:23         ` [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check Ramirez Luna, Omar
  2010-01-14  0:23       ` [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated Ramirez Luna, Omar
  1 sibling, 2 replies; 18+ messages in thread
From: Omar Ramirez Luna @ 2010-01-12  1:00 UTC (permalink / raw)
  To: linux-omap
  Cc: Omar Ramirez Luna, Nishanth Menon, Hiroshi Doyu, Ameya Palande,
	Felipe Contreras

This patch removes the runtime check of device
ioctl array.

Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
CC: Nishanth Menon <nm@ti.com>
CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
CC: Ameya Palande <ameya.palande@nokia.com>
CC: Felipe Contreras <felipe.contreras@gmail.com>
---
 drivers/dsp/bridge/pmgr/wcd.c |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index f95980b..960b3cb 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -321,13 +321,7 @@ bool WCD_Init(void)
 	bool fInit = true;
 	bool fDRV, fDEV, fCOD, fSERVICES, fCHNL, fMSG, fIO;
 	bool fMGR, fPROC, fNODE, fDISP, fNTFY, fSTRM, fRMM;
-#ifdef DEBUG
-	/* runtime check of Device IOCtl array. */
-	u32 i;
-	for (i = 1; i < ARRAY_SIZE(WCD_cmdTable); i++)
-		DBC_Assert(WCD_cmdTable[i - 1].dwIndex == i);
 
-#endif
 	if (WCD_cRefs == 0) {
 		/* initialize all SERVICES modules */
 		fSERVICES = SERVICES_Init();
-- 
1.6.2.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl
  2010-01-12  1:00       ` [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check Omar Ramirez Luna
@ 2010-01-12  1:00         ` Omar Ramirez Luna
  2010-01-12  1:00           ` [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Omar Ramirez Luna
  2010-01-14  0:23           ` [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl Ramirez Luna, Omar
  2010-01-14  0:23         ` [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check Ramirez Luna, Omar
  1 sibling, 2 replies; 18+ messages in thread
From: Omar Ramirez Luna @ 2010-01-12  1:00 UTC (permalink / raw)
  To: linux-omap
  Cc: Omar Ramirez Luna, Nishanth Menon, Hiroshi Doyu, Ameya Palande,
	Felipe Contreras

Trivial cleanup, rename pResult to result for WCD_CallDevIOCtl

Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
CC: Nishanth Menon <nm@ti.com>
CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
CC: Ameya Palande <ameya.palande@nokia.com>
CC: Felipe Contreras <felipe.contreras@gmail.com>
---
 drivers/dsp/bridge/pmgr/wcd.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index 960b3cb..02def74 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -271,11 +271,11 @@ static inline void __cp_to_usr(void __user *to, const void *from,
  *      Call the (wrapper) function for the corresponding WCD IOCTL.
  */
 inline DSP_STATUS WCD_CallDevIOCtl(u32 cmd, union Trapped_Args *args,
-				    u32 *pResult, void *pr_ctxt)
+				    u32 *result, void *pr_ctxt)
 {
 	if (cmd < ARRAY_SIZE(WCD_cmdTable)) {
 		/* make the fxn call via the cmd table */
-		*pResult = (*WCD_cmdTable[cmd].fxn) (args, pr_ctxt);
+		*result = (*WCD_cmdTable[cmd].fxn) (args, pr_ctxt);
 		return DSP_SOK;
 	}
 
-- 
1.6.2.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls
  2010-01-12  1:00         ` [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl Omar Ramirez Luna
@ 2010-01-12  1:00           ` Omar Ramirez Luna
  2010-01-12  1:00             ` [PATCH v3 7/7] DSPBRIDGE: remove WCD_Cmd structure Omar Ramirez Luna
                               ` (2 more replies)
  2010-01-14  0:23           ` [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl Ramirez Luna, Omar
  1 sibling, 3 replies; 18+ messages in thread
From: Omar Ramirez Luna @ 2010-01-12  1:00 UTC (permalink / raw)
  To: linux-omap
  Cc: Omar Ramirez Luna, Nishanth Menon, Hiroshi Doyu, Ameya Palande,
	Felipe Contreras

- Use standard convention to define ioctls.

Currently 0xDB is used as identifier for dspbridge.

Discussion:
http://marc.info/?l=linux-omap&m=126297631603035&w=2

WARNING:
An update in api ioctl definitions is required, usually replacing
to a new libbridge (with ioctl patch) should be enough. Other
clients (not using libbridge) need to update their ioctl numbers
manually.

Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
CC: Nishanth Menon <nm@ti.com>
CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
CC: Ameya Palande <ameya.palande@nokia.com>
CC: Felipe Contreras <felipe.contreras@gmail.com>
---
 arch/arm/plat-omap/include/dspbridge/wcdioctl.h |  181 ++++++++++++---------
 drivers/dsp/bridge/pmgr/wcd.c                   |  200 +++++++++++++++--------
 drivers/dsp/bridge/rmgr/drv_interface.c         |    3 -
 3 files changed, 237 insertions(+), 147 deletions(-)

diff --git a/arch/arm/plat-omap/include/dspbridge/wcdioctl.h b/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
index 4b9dd0a..656d56b 100644
--- a/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
+++ b/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
@@ -437,86 +437,109 @@ union Trapped_Args {
 	} ARGS_UTIL_TESTDLL;
 } ;
 
-#define CMD_BASE		    1
+/*
+ * Dspbridge Ioctl numbering scheme
+ *
+ *    7                           0
+ *  ---------------------------------
+ *  |  Module   |   Ioctl Number    |
+ *  ---------------------------------
+ *  | x | x | x | 0 | 0 | 0 | 0 | 0 |
+ *  ---------------------------------
+ */
+
+/* Ioctl driver identifier */
+#define DB		0xDB
+
+/*
+ * Following are used to distinguish between module ioctls, this is needed
+ * in case new ioctls are introduced.
+ */
+#define DB_MODULE_MASK		0xE0
+#define DB_IOC_MASK		0x1F
+
+/* Ioctl module masks */
+#define DB_MGR		0x0
+#define DB_PROC		0x20
+#define DB_NODE		0x40
+#define DB_STRM		0x60
+#define DB_CMM		0x80
+
+#define DB_MODULE_SHIFT		5
+
+/* Used to calculate the ioctl per dspbridge module */
+#define DB_IOC(module, num) \
+			(((module) & DB_MODULE_MASK) | ((num) & DB_IOC_MASK))
+/* Used to get dspbridge ioctl module */
+#define DB_GET_MODULE(cmd)	((cmd) & DB_MODULE_MASK)
+/* Used to get dspbridge ioctl number */
+#define DB_GET_IOC(cmd)		((cmd) & DB_IOC_MASK)
 
 /* TODO: Remove deprecated and not implemented */
 
-/* MGR module offsets */
-#define CMD_MGR_BASE_OFFSET	     CMD_BASE
-#define CMD_MGR_ENUMNODE_INFO_OFFSET    (CMD_MGR_BASE_OFFSET + 0)
-#define CMD_MGR_ENUMPROC_INFO_OFFSET    (CMD_MGR_BASE_OFFSET + 1)
-#define CMD_MGR_REGISTEROBJECT_OFFSET   (CMD_MGR_BASE_OFFSET + 2)
-#define CMD_MGR_UNREGISTEROBJECT_OFFSET (CMD_MGR_BASE_OFFSET + 3)
-#define CMD_MGR_WAIT_OFFSET	     (CMD_MGR_BASE_OFFSET + 4)
-
-#ifndef RES_CLEANUP_DISABLE
-#define CMD_MGR_RESOUCES_OFFSET	 (CMD_MGR_BASE_OFFSET + 5)    /* Deprecated */
-#define CMD_MGR_END_OFFSET	      CMD_MGR_RESOUCES_OFFSET
-#else
-#define CMD_MGR_END_OFFSET	      CMD_MGR_WAIT_OFFSET
-#endif
-
-#define CMD_PROC_BASE_OFFSET	    (CMD_MGR_END_OFFSET + 1)
-#define CMD_PROC_ATTACH_OFFSET	  (CMD_PROC_BASE_OFFSET + 0)
-#define CMD_PROC_CTRL_OFFSET	    (CMD_PROC_BASE_OFFSET + 1)
-#define CMD_PROC_DETACH_OFFSET	  (CMD_PROC_BASE_OFFSET + 2)  /* Deprecated */
-#define CMD_PROC_ENUMNODE_OFFSET	(CMD_PROC_BASE_OFFSET + 3)
-#define CMD_PROC_ENUMRESOURCES_OFFSET   (CMD_PROC_BASE_OFFSET + 4)
-#define CMD_PROC_GETSTATE_OFFSET	(CMD_PROC_BASE_OFFSET + 5)
-#define CMD_PROC_GETTRACE_OFFSET	(CMD_PROC_BASE_OFFSET + 6)
-#define CMD_PROC_LOAD_OFFSET	    (CMD_PROC_BASE_OFFSET + 7)
-#define CMD_PROC_REGISTERNOTIFY_OFFSET  (CMD_PROC_BASE_OFFSET + 8)
-#define CMD_PROC_START_OFFSET	   (CMD_PROC_BASE_OFFSET + 9)
-#define CMD_PROC_RSVMEM_OFFSET	  (CMD_PROC_BASE_OFFSET + 10)
-#define CMD_PROC_UNRSVMEM_OFFSET	(CMD_PROC_BASE_OFFSET + 11)
-#define CMD_PROC_MAPMEM_OFFSET	  (CMD_PROC_BASE_OFFSET + 12)
-#define CMD_PROC_UNMAPMEM_OFFSET	(CMD_PROC_BASE_OFFSET + 13)
-#define CMD_PROC_FLUSHMEMORY_OFFSET      (CMD_PROC_BASE_OFFSET + 14)
-#define CMD_PROC_STOP_OFFSET	    (CMD_PROC_BASE_OFFSET + 15)
-#define CMD_PROC_INVALIDATEMEMORY_OFFSET (CMD_PROC_BASE_OFFSET + 16)
-#define CMD_PROC_END_OFFSET	     CMD_PROC_INVALIDATEMEMORY_OFFSET
-
-
-#define CMD_NODE_BASE_OFFSET	    (CMD_PROC_END_OFFSET + 1)
-#define CMD_NODE_ALLOCATE_OFFSET	(CMD_NODE_BASE_OFFSET + 0)
-#define CMD_NODE_ALLOCMSGBUF_OFFSET     (CMD_NODE_BASE_OFFSET + 1)
-#define CMD_NODE_CHANGEPRIORITY_OFFSET  (CMD_NODE_BASE_OFFSET + 2)
-#define CMD_NODE_CONNECT_OFFSET	 (CMD_NODE_BASE_OFFSET + 3)
-#define CMD_NODE_CREATE_OFFSET	  (CMD_NODE_BASE_OFFSET + 4)
-#define CMD_NODE_DELETE_OFFSET	  (CMD_NODE_BASE_OFFSET + 5)
-#define CMD_NODE_FREEMSGBUF_OFFSET      (CMD_NODE_BASE_OFFSET + 6)
-#define CMD_NODE_GETATTR_OFFSET	 (CMD_NODE_BASE_OFFSET + 7)
-#define CMD_NODE_GETMESSAGE_OFFSET      (CMD_NODE_BASE_OFFSET + 8)
-#define CMD_NODE_PAUSE_OFFSET	   (CMD_NODE_BASE_OFFSET + 9)
-#define CMD_NODE_PUTMESSAGE_OFFSET      (CMD_NODE_BASE_OFFSET + 10)
-#define CMD_NODE_REGISTERNOTIFY_OFFSET  (CMD_NODE_BASE_OFFSET + 11)
-#define CMD_NODE_RUN_OFFSET	     (CMD_NODE_BASE_OFFSET + 12)
-#define CMD_NODE_TERMINATE_OFFSET       (CMD_NODE_BASE_OFFSET + 13)
-#define CMD_NODE_GETUUIDPROPS_OFFSET    (CMD_NODE_BASE_OFFSET + 14)
-#define CMD_NODE_END_OFFSET	     CMD_NODE_GETUUIDPROPS_OFFSET
-
-#define CMD_STRM_BASE_OFFSET	    (CMD_NODE_END_OFFSET + 1)
-#define CMD_STRM_ALLOCATEBUFFER_OFFSET  (CMD_STRM_BASE_OFFSET + 0)
-#define CMD_STRM_CLOSE_OFFSET	   (CMD_STRM_BASE_OFFSET + 1)
-#define CMD_STRM_FREEBUFFER_OFFSET      (CMD_STRM_BASE_OFFSET + 2)
-/* Not Impl'd */
-#define CMD_STRM_GETEVENTHANDLE_OFFSET  (CMD_STRM_BASE_OFFSET + 3)
-#define CMD_STRM_GETINFO_OFFSET	 (CMD_STRM_BASE_OFFSET + 4)
-#define CMD_STRM_IDLE_OFFSET	    (CMD_STRM_BASE_OFFSET + 5)
-#define CMD_STRM_ISSUE_OFFSET	   (CMD_STRM_BASE_OFFSET + 6)
-#define CMD_STRM_OPEN_OFFSET	    (CMD_STRM_BASE_OFFSET + 7)
-#define CMD_STRM_RECLAIM_OFFSET	 (CMD_STRM_BASE_OFFSET + 8)
-#define CMD_STRM_REGISTERNOTIFY_OFFSET  (CMD_STRM_BASE_OFFSET + 9)
-#define CMD_STRM_SELECT_OFFSET	  (CMD_STRM_BASE_OFFSET + 10)
-#define CMD_STRM_END_OFFSET	     CMD_STRM_SELECT_OFFSET
-
-/* Communication Memory Manager (UCMM) */
-#define CMD_CMM_BASE_OFFSET	     (CMD_STRM_END_OFFSET + 1)
-#define CMD_CMM_ALLOCBUF_OFFSET	 (CMD_CMM_BASE_OFFSET + 0)    /* Not Impl'd */
-#define CMD_CMM_FREEBUF_OFFSET	  (CMD_CMM_BASE_OFFSET + 1)   /* Not Impl'd */
-#define CMD_CMM_GETHANDLE_OFFSET	(CMD_CMM_BASE_OFFSET + 2)
-#define CMD_CMM_GETINFO_OFFSET	  (CMD_CMM_BASE_OFFSET + 3)
-#define CMD_CMM_END_OFFSET	      CMD_CMM_GETINFO_OFFSET
-
-#define CMD_BASE_END_OFFSET	CMD_CMM_END_OFFSET
+/* MGR Module */
+#define MGR_ENUMNODE_INFO	_IOWR(DB, DB_IOC(DB_MGR, 0), unsigned long)
+#define MGR_ENUMPROC_INFO	_IOWR(DB, DB_IOC(DB_MGR, 1), unsigned long)
+#define MGR_REGISTEROBJECT	_IOWR(DB, DB_IOC(DB_MGR, 2), unsigned long)
+#define MGR_UNREGISTEROBJECT	_IOWR(DB, DB_IOC(DB_MGR, 3), unsigned long)
+#define MGR_WAIT		_IOWR(DB, DB_IOC(DB_MGR, 4), unsigned long)
+/* MGR_GET_PROC_RES Deprecated */
+#define MGR_GET_PROC_RES	_IOR(DB, DB_IOC(DB_MGR, 5), unsigned long)
+
+/* PROC Module */
+#define PROC_ATTACH		_IOWR(DB, DB_IOC(DB_PROC, 0), unsigned long)
+#define PROC_CTRL		_IOR(DB, DB_IOC(DB_PROC, 1), unsigned long)
+/* PROC_DETACH Deprecated */
+#define PROC_DETACH		_IOR(DB, DB_IOC(DB_PROC, 2), unsigned long)
+#define PROC_ENUMNODE		_IOWR(DB, DB_IOC(DB_PROC, 3), unsigned long)
+#define PROC_ENUMRESOURCES	_IOWR(DB, DB_IOC(DB_PROC, 4), unsigned long)
+#define PROC_GET_STATE		_IOWR(DB, DB_IOC(DB_PROC, 5), unsigned long)
+#define PROC_GET_TRACE		_IOWR(DB, DB_IOC(DB_PROC, 6), unsigned long)
+#define PROC_LOAD		_IOW(DB, DB_IOC(DB_PROC, 7), unsigned long)
+#define PROC_REGISTERNOTIFY	_IOWR(DB, DB_IOC(DB_PROC, 8), unsigned long)
+#define PROC_START		_IOW(DB, DB_IOC(DB_PROC, 9), unsigned long)
+#define PROC_RSVMEM		_IOWR(DB, DB_IOC(DB_PROC, 10), unsigned long)
+#define PROC_UNRSVMEM		_IOW(DB, DB_IOC(DB_PROC, 11), unsigned long)
+#define PROC_MAPMEM		_IOWR(DB, DB_IOC(DB_PROC, 12), unsigned long)
+#define PROC_UNMAPMEM		_IOR(DB, DB_IOC(DB_PROC, 13), unsigned long)
+#define PROC_FLUSHMEMORY	_IOW(DB, DB_IOC(DB_PROC, 14), unsigned long)
+#define PROC_STOP		_IOWR(DB, DB_IOC(DB_PROC, 15), unsigned long)
+#define PROC_INVALIDATEMEMORY	_IOW(DB, DB_IOC(DB_PROC, 16), unsigned long)
+
+/* NODE Module */
+#define NODE_ALLOCATE		_IOWR(DB, DB_IOC(DB_NODE, 0), unsigned long)
+#define NODE_ALLOCMSGBUF	_IOWR(DB, DB_IOC(DB_NODE, 1), unsigned long)
+#define NODE_CHANGEPRIORITY	_IOW(DB, DB_IOC(DB_NODE, 2), unsigned long)
+#define NODE_CONNECT		_IOW(DB, DB_IOC(DB_NODE, 3), unsigned long)
+#define NODE_CREATE		_IOW(DB, DB_IOC(DB_NODE, 4), unsigned long)
+#define NODE_DELETE		_IOW(DB, DB_IOC(DB_NODE, 5), unsigned long)
+#define NODE_FREEMSGBUF		_IOW(DB, DB_IOC(DB_NODE, 6), unsigned long)
+#define NODE_GETATTR		_IOWR(DB, DB_IOC(DB_NODE, 7), unsigned long)
+#define NODE_GETMESSAGE		_IOWR(DB, DB_IOC(DB_NODE, 8), unsigned long)
+#define NODE_PAUSE		_IOW(DB, DB_IOC(DB_NODE, 9), unsigned long)
+#define NODE_PUTMESSAGE		_IOW(DB, DB_IOC(DB_NODE, 10), unsigned long)
+#define NODE_REGISTERNOTIFY	_IOWR(DB, DB_IOC(DB_NODE, 11), unsigned long)
+#define NODE_RUN		_IOW(DB, DB_IOC(DB_NODE, 12), unsigned long)
+#define NODE_TERMINATE		_IOWR(DB, DB_IOC(DB_NODE, 13), unsigned long)
+#define NODE_GETUUIDPROPS	_IOWR(DB, DB_IOC(DB_NODE, 14), unsigned long)
+
+/* STRM Module */
+#define STRM_ALLOCATEBUFFER	_IOWR(DB, DB_IOC(DB_STRM, 0), unsigned long)
+#define STRM_CLOSE		_IOW(DB, DB_IOC(DB_STRM, 1), unsigned long)
+#define STRM_FREEBUFFER		_IOWR(DB, DB_IOC(DB_STRM, 2), unsigned long)
+#define STRM_GETEVENTHANDLE	_IO(DB, DB_IOC(DB_STRM, 3))	/* Not Impl'd */
+#define STRM_GETINFO		_IOWR(DB, DB_IOC(DB_STRM, 4), unsigned long)
+#define STRM_IDLE		_IOW(DB, DB_IOC(DB_STRM, 5), unsigned long)
+#define STRM_ISSUE		_IOW(DB, DB_IOC(DB_STRM, 6), unsigned long)
+#define STRM_OPEN		_IOWR(DB, DB_IOC(DB_STRM, 7), unsigned long)
+#define STRM_RECLAIM		_IOWR(DB, DB_IOC(DB_STRM, 8), unsigned long)
+#define STRM_REGISTERNOTIFY	_IOWR(DB, DB_IOC(DB_STRM, 9), unsigned long)
+#define STRM_SELECT		_IOWR(DB, DB_IOC(DB_STRM, 10), unsigned long)
+
+/* CMM Module */
+#define CMM_ALLOCBUF		_IO(DB, DB_IOC(DB_CMM, 0))	/* Not Impl'd */
+#define CMM_FREEBUF		_IO(DB, DB_IOC(DB_CMM, 1))	/* Not Impl'd */
+#define CMM_GETHANDLE		_IOR(DB, DB_IOC(DB_CMM, 2), unsigned long)
+#define CMM_GETINFO		_IOR(DB, DB_IOC(DB_CMM, 3), unsigned long)
+
 #endif				/* WCDIOCTL_ */
diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index 02def74..27e8e8e 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -144,6 +144,9 @@
 #define MAX_STREAMS     16
 #define MAX_BUFS	64
 
+/* Used to get dspbridge ioctl table */
+#define DB_GET_IOC_TABLE(cmd)	(DB_GET_MODULE(cmd) >> DB_MODULE_SHIFT)
+
 /* Device IOCtl function pointer */
 struct WCD_Cmd {
 	u32(*fxn)(union Trapped_Args *args, void *pr_ctxt);
@@ -157,72 +160,96 @@ static struct GT_Mask WCD_debugMask = { NULL, NULL };	/* Core VxD Mask */
 static u32 WCD_cRefs;
 
 /*
- *  Function table.
+ *  Function tables.
  *  The order of these functions MUST be the same as the order of the command
  *  numbers defined in wcdioctl.h  This is how an IOCTL number in user mode
  *  turns into a function call in kernel mode.
  */
-static struct WCD_Cmd WCD_cmdTable[] = {
-	/* MGR module */
-	{MGRWRAP_EnumNode_Info, CMD_MGR_ENUMNODE_INFO_OFFSET},
-	{MGRWRAP_EnumProc_Info, CMD_MGR_ENUMPROC_INFO_OFFSET},
-	{MGRWRAP_RegisterObject, CMD_MGR_REGISTEROBJECT_OFFSET},
-	{MGRWRAP_UnregisterObject, CMD_MGR_UNREGISTEROBJECT_OFFSET},
-	{MGRWRAP_WaitForBridgeEvents, CMD_MGR_WAIT_OFFSET},
+
+/* MGR wrapper functions */
+static struct WCD_Cmd mgr_cmd[] = {
+	{MGRWRAP_EnumNode_Info},		/* MGR_ENUMNODE_INFO */
+	{MGRWRAP_EnumProc_Info},		/* MGR_ENUMPROC_INFO */
+	{MGRWRAP_RegisterObject},		/* MGR_REGISTEROBJECT */
+	{MGRWRAP_UnregisterObject},		/* MGR_UNREGISTEROBJECT */
+	{MGRWRAP_WaitForBridgeEvents},		/* MGR_WAIT */
 #ifndef RES_CLEANUP_DISABLE
-	{MGRWRAP_GetProcessResourcesInfo, CMD_MGR_RESOUCES_OFFSET},
+	{MGRWRAP_GetProcessResourcesInfo},	/* MGR_GET_PROC_RES */
+#else
+	{NULL},
 #endif
-	/* PROC Module */
-	{PROCWRAP_Attach, CMD_PROC_ATTACH_OFFSET},
-	{PROCWRAP_Ctrl, CMD_PROC_CTRL_OFFSET},
-	{PROCWRAP_Detach, CMD_PROC_DETACH_OFFSET},
-	{PROCWRAP_EnumNode_Info, CMD_PROC_ENUMNODE_OFFSET},
-	{PROCWRAP_EnumResources, CMD_PROC_ENUMRESOURCES_OFFSET},
-	{PROCWRAP_GetState, CMD_PROC_GETSTATE_OFFSET},
-	{PROCWRAP_GetTrace, CMD_PROC_GETTRACE_OFFSET},
-	{PROCWRAP_Load, CMD_PROC_LOAD_OFFSET},
-	{PROCWRAP_RegisterNotify, CMD_PROC_REGISTERNOTIFY_OFFSET},
-	{PROCWRAP_Start, CMD_PROC_START_OFFSET},
-	{PROCWRAP_ReserveMemory, CMD_PROC_RSVMEM_OFFSET},
-	{PROCWRAP_UnReserveMemory, CMD_PROC_UNRSVMEM_OFFSET},
-	{PROCWRAP_Map, CMD_PROC_MAPMEM_OFFSET},
-	{PROCWRAP_UnMap, CMD_PROC_UNMAPMEM_OFFSET},
-	{PROCWRAP_FlushMemory, CMD_PROC_FLUSHMEMORY_OFFSET},
-	{PROCWRAP_Stop, CMD_PROC_STOP_OFFSET},
-	{PROCWRAP_InvalidateMemory, CMD_PROC_INVALIDATEMEMORY_OFFSET},
-	/* NODE Module */
-	{NODEWRAP_Allocate, CMD_NODE_ALLOCATE_OFFSET},
-	{NODEWRAP_AllocMsgBuf, CMD_NODE_ALLOCMSGBUF_OFFSET},
-	{NODEWRAP_ChangePriority, CMD_NODE_CHANGEPRIORITY_OFFSET},
-	{NODEWRAP_Connect, CMD_NODE_CONNECT_OFFSET},
-	{NODEWRAP_Create, CMD_NODE_CREATE_OFFSET},
-	{NODEWRAP_Delete, CMD_NODE_DELETE_OFFSET},
-	{NODEWRAP_FreeMsgBuf, CMD_NODE_FREEMSGBUF_OFFSET},
-	{NODEWRAP_GetAttr, CMD_NODE_GETATTR_OFFSET},
-	{NODEWRAP_GetMessage, CMD_NODE_GETMESSAGE_OFFSET},
-	{NODEWRAP_Pause, CMD_NODE_PAUSE_OFFSET},
-	{NODEWRAP_PutMessage, CMD_NODE_PUTMESSAGE_OFFSET},
-	{NODEWRAP_RegisterNotify, CMD_NODE_REGISTERNOTIFY_OFFSET},
-	{NODEWRAP_Run, CMD_NODE_RUN_OFFSET},
-	{NODEWRAP_Terminate, CMD_NODE_TERMINATE_OFFSET},
-	{NODEWRAP_GetUUIDProps, CMD_NODE_GETUUIDPROPS_OFFSET},
-	/* STRM wrapper functions */
-	{STRMWRAP_AllocateBuffer, CMD_STRM_ALLOCATEBUFFER_OFFSET},
-	{STRMWRAP_Close, CMD_STRM_CLOSE_OFFSET},
-	{STRMWRAP_FreeBuffer, CMD_STRM_FREEBUFFER_OFFSET},
-	{STRMWRAP_GetEventHandle, CMD_STRM_GETEVENTHANDLE_OFFSET},
-	{STRMWRAP_GetInfo, CMD_STRM_GETINFO_OFFSET},
-	{STRMWRAP_Idle, CMD_STRM_IDLE_OFFSET},
-	{STRMWRAP_Issue, CMD_STRM_ISSUE_OFFSET},
-	{STRMWRAP_Open, CMD_STRM_OPEN_OFFSET},
-	{STRMWRAP_Reclaim, CMD_STRM_RECLAIM_OFFSET},
-	{STRMWRAP_RegisterNotify, CMD_STRM_REGISTERNOTIFY_OFFSET},
-	{STRMWRAP_Select, CMD_STRM_SELECT_OFFSET},
-	/* CMM module */
-	{CMMWRAP_CallocBuf, CMD_CMM_ALLOCBUF_OFFSET},
-	{CMMWRAP_FreeBuf, CMD_CMM_FREEBUF_OFFSET},
-	{CMMWRAP_GetHandle, CMD_CMM_GETHANDLE_OFFSET},
-	{CMMWRAP_GetInfo, CMD_CMM_GETINFO_OFFSET}
+};
+
+/* PROC wrapper functions */
+static struct WCD_Cmd proc_cmd[] = {
+	{PROCWRAP_Attach},			/* PROC_ATTACH */
+	{PROCWRAP_Ctrl},			/* PROC_CTRL */
+	{PROCWRAP_Detach},			/* PROC_DETACH */
+	{PROCWRAP_EnumNode_Info},		/* PROC_ENUMNODE */
+	{PROCWRAP_EnumResources},		/* PROC_ENUMRESOURCES */
+	{PROCWRAP_GetState},			/* PROC_GET_STATE */
+	{PROCWRAP_GetTrace},			/* PROC_GET_TRACE */
+	{PROCWRAP_Load},			/* PROC_LOAD */
+	{PROCWRAP_RegisterNotify},		/* PROC_REGISTERNOTIFY */
+	{PROCWRAP_Start},			/* PROC_START */
+	{PROCWRAP_ReserveMemory},		/* PROC_RSVMEM */
+	{PROCWRAP_UnReserveMemory},		/* PROC_UNRSVMEM */
+	{PROCWRAP_Map},				/* PROC_MAPMEM */
+	{PROCWRAP_UnMap},			/* PROC_UNMAPMEM */
+	{PROCWRAP_FlushMemory},			/* PROC_FLUSHMEMORY */
+	{PROCWRAP_Stop},			/* PROC_STOP */
+	{PROCWRAP_InvalidateMemory},		/* PROC_INVALIDATEMEMORY */
+};
+
+/* NODE wrapper functions */
+static struct WCD_Cmd node_cmd[] = {
+	{NODEWRAP_Allocate},			/* NODE_ALLOCATE */
+	{NODEWRAP_AllocMsgBuf},			/* NODE_ALLOCMSGBUF */
+	{NODEWRAP_ChangePriority},		/* NODE_CHANGEPRIORITY */
+	{NODEWRAP_Connect},			/* NODE_CONNECT */
+	{NODEWRAP_Create},			/* NODE_CREATE */
+	{NODEWRAP_Delete},			/* NODE_DELETE */
+	{NODEWRAP_FreeMsgBuf},			/* NODE_FREEMSGBUF */
+	{NODEWRAP_GetAttr},			/* NODE_GETATTR */
+	{NODEWRAP_GetMessage},			/* NODE_GETMESSAGE */
+	{NODEWRAP_Pause},			/* NODE_PAUSE */
+	{NODEWRAP_PutMessage},			/* NODE_PUTMESSAGE */
+	{NODEWRAP_RegisterNotify},		/* NODE_REGISTERNOTIFY */
+	{NODEWRAP_Run},				/* NODE_RUN */
+	{NODEWRAP_Terminate},			/* NODE_TERMINATE */
+	{NODEWRAP_GetUUIDProps},		/* NODE_GETUUIDPROPS */
+};
+
+/* STRM wrapper functions */
+static struct WCD_Cmd strm_cmd[] = {
+	{STRMWRAP_AllocateBuffer},		/* STRM_ALLOCATEBUFFER */
+	{STRMWRAP_Close},			/* STRM_CLOSE */
+	{STRMWRAP_FreeBuffer},			/* STRM_FREEBUFFER */
+	{STRMWRAP_GetEventHandle},		/* STRM_GETEVENTHANDLE */
+	{STRMWRAP_GetInfo},			/* STRM_GETINFO */
+	{STRMWRAP_Idle},			/* STRM_IDLE */
+	{STRMWRAP_Issue},			/* STRM_ISSUE */
+	{STRMWRAP_Open},			/* STRM_OPEN */
+	{STRMWRAP_Reclaim},			/* STRM_RECLAIM */
+	{STRMWRAP_RegisterNotify},		/* STRM_REGISTERNOTIFY */
+	{STRMWRAP_Select},			/* STRM_SELECT */
+};
+
+/* CMM wrapper functions */
+static struct WCD_Cmd cmm_cmd[] = {
+	{CMMWRAP_CallocBuf},			/* CMM_ALLOCBUF */
+	{CMMWRAP_FreeBuf},			/* CMM_FREEBUF */
+	{CMMWRAP_GetHandle},			/* CMM_GETHANDLE */
+	{CMMWRAP_GetInfo},			/* CMM_GETINFO */
+};
+
+/* Array used to store ioctl table sizes. It can hold up to 8 entries */
+static short size_cmd[] = {
+	ARRAY_SIZE(mgr_cmd),
+	ARRAY_SIZE(proc_cmd),
+	ARRAY_SIZE(node_cmd),
+	ARRAY_SIZE(strm_cmd),
+	ARRAY_SIZE(cmm_cmd),
 };
 
 static inline void __cp_fm_usr(void *to, const void __user *from,
@@ -273,13 +300,56 @@ static inline void __cp_to_usr(void __user *to, const void *from,
 inline DSP_STATUS WCD_CallDevIOCtl(u32 cmd, union Trapped_Args *args,
 				    u32 *result, void *pr_ctxt)
 {
-	if (cmd < ARRAY_SIZE(WCD_cmdTable)) {
-		/* make the fxn call via the cmd table */
-		*result = (*WCD_cmdTable[cmd].fxn) (args, pr_ctxt);
-		return DSP_SOK;
+	u32 (*ioctl_cmd)(union Trapped_Args *args, void *pr_ctxt) = NULL;
+	int i;
+
+	if (_IOC_TYPE(cmd) != DB) {
+		pr_err("%s: Incompatible dspbridge ioctl number\n", __func__);
+		goto err;
+	}
+
+	if (DB_GET_IOC_TABLE(cmd) > ARRAY_SIZE(size_cmd)) {
+		pr_err("%s: undefined ioctl module\n", __func__);
+		goto err;
+	}
+
+	/* Check the size of the required cmd table */
+	i = DB_GET_IOC(cmd);
+	if (i > size_cmd[DB_GET_IOC_TABLE(cmd)]) {
+		pr_err("%s: requested ioctl %d out of bounds for table %d\n",
+					__func__, i, DB_GET_IOC_TABLE(cmd));
+		goto err;
+	}
+
+	switch (DB_GET_MODULE(cmd)) {
+	case DB_MGR:
+		ioctl_cmd = mgr_cmd[i].fxn;
+		break;
+	case DB_PROC:
+		ioctl_cmd = proc_cmd[i].fxn;
+		break;
+	case DB_NODE:
+		ioctl_cmd = node_cmd[i].fxn;
+		break;
+	case DB_STRM:
+		ioctl_cmd = strm_cmd[i].fxn;
+		break;
+	case DB_CMM:
+		ioctl_cmd = cmm_cmd[i].fxn;
+		break;
+	}
+
+	if (!ioctl_cmd) {
+		pr_err("%s: requested ioctl not defined\n", __func__);
+		goto err;
+	} else {
+		*result = (*ioctl_cmd)(args, pr_ctxt);
 	}
 
-	return DSP_EINVALIDARG;
+	return DSP_SOK;
+
+err:
+	return -EINVAL;
 }
 
 /*
diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c
index efce35d..78ecec4 100644
--- a/drivers/dsp/bridge/rmgr/drv_interface.c
+++ b/drivers/dsp/bridge/rmgr/drv_interface.c
@@ -611,9 +611,6 @@ static long bridge_ioctl(struct file *filp, unsigned int code,
 
 	GT_0trace(driverTrace, GT_ENTER, " -> driver_ioctl\n");
 
-	/* Deduct one for the CMD_BASE. */
-	code = (code - 1);
-
 	status = copy_from_user(&pBufIn, (union Trapped_Args *)args,
 				sizeof(union Trapped_Args));
 
-- 
1.6.2.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 7/7] DSPBRIDGE: remove WCD_Cmd structure
  2010-01-12  1:00           ` [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Omar Ramirez Luna
@ 2010-01-12  1:00             ` Omar Ramirez Luna
  2010-01-12  1:09               ` Nishanth Menon
  2010-01-12  1:09             ` [RESEND][PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Ramirez Luna, Omar
  2010-01-14  0:24             ` [PATCH " Ramirez Luna, Omar
  2 siblings, 1 reply; 18+ messages in thread
From: Omar Ramirez Luna @ 2010-01-12  1:00 UTC (permalink / raw)
  To: linux-omap
  Cc: Omar Ramirez Luna, Nishanth Menon, Hiroshi Doyu, Ameya Palande,
	Felipe Contreras

Remove WCD_Cmd structure given that only one member is being
used (fxn call), this structure is replaced for a definition
of an array of function pointers for each dspbridge ioctl
module.

Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
CC: Nishanth Menon <nm@ti.com>
CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
CC: Ameya Palande <ameya.palande@nokia.com>
CC: Felipe Contreras <felipe.contreras@gmail.com>
---
 drivers/dsp/bridge/pmgr/wcd.c |  134 +++++++++++++++++++---------------------
 1 files changed, 64 insertions(+), 70 deletions(-)

diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index 27e8e8e..37d1f8a 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -147,12 +147,6 @@
 /* Used to get dspbridge ioctl table */
 #define DB_GET_IOC_TABLE(cmd)	(DB_GET_MODULE(cmd) >> DB_MODULE_SHIFT)
 
-/* Device IOCtl function pointer */
-struct WCD_Cmd {
-	u32(*fxn)(union Trapped_Args *args, void *pr_ctxt);
-	u32 dwIndex;
-} ;
-
 /*  ----------------------------------- Globals */
 #if GT_TRACE
 static struct GT_Mask WCD_debugMask = { NULL, NULL };	/* Core VxD Mask */
@@ -167,80 +161,80 @@ static u32 WCD_cRefs;
  */
 
 /* MGR wrapper functions */
-static struct WCD_Cmd mgr_cmd[] = {
-	{MGRWRAP_EnumNode_Info},		/* MGR_ENUMNODE_INFO */
-	{MGRWRAP_EnumProc_Info},		/* MGR_ENUMPROC_INFO */
-	{MGRWRAP_RegisterObject},		/* MGR_REGISTEROBJECT */
-	{MGRWRAP_UnregisterObject},		/* MGR_UNREGISTEROBJECT */
-	{MGRWRAP_WaitForBridgeEvents},		/* MGR_WAIT */
+static u32 (*mgr_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+	MGRWRAP_EnumNode_Info,			/* MGR_ENUMNODE_INFO */
+	MGRWRAP_EnumProc_Info,			/* MGR_ENUMPROC_INFO */
+	MGRWRAP_RegisterObject,			/* MGR_REGISTEROBJECT */
+	MGRWRAP_UnregisterObject,		/* MGR_UNREGISTEROBJECT */
+	MGRWRAP_WaitForBridgeEvents,		/* MGR_WAIT */
 #ifndef RES_CLEANUP_DISABLE
-	{MGRWRAP_GetProcessResourcesInfo},	/* MGR_GET_PROC_RES */
+	MGRWRAP_GetProcessResourcesInfo,	/* MGR_GET_PROC_RES */
 #else
-	{NULL},
+	NULL,
 #endif
 };
 
 /* PROC wrapper functions */
-static struct WCD_Cmd proc_cmd[] = {
-	{PROCWRAP_Attach},			/* PROC_ATTACH */
-	{PROCWRAP_Ctrl},			/* PROC_CTRL */
-	{PROCWRAP_Detach},			/* PROC_DETACH */
-	{PROCWRAP_EnumNode_Info},		/* PROC_ENUMNODE */
-	{PROCWRAP_EnumResources},		/* PROC_ENUMRESOURCES */
-	{PROCWRAP_GetState},			/* PROC_GET_STATE */
-	{PROCWRAP_GetTrace},			/* PROC_GET_TRACE */
-	{PROCWRAP_Load},			/* PROC_LOAD */
-	{PROCWRAP_RegisterNotify},		/* PROC_REGISTERNOTIFY */
-	{PROCWRAP_Start},			/* PROC_START */
-	{PROCWRAP_ReserveMemory},		/* PROC_RSVMEM */
-	{PROCWRAP_UnReserveMemory},		/* PROC_UNRSVMEM */
-	{PROCWRAP_Map},				/* PROC_MAPMEM */
-	{PROCWRAP_UnMap},			/* PROC_UNMAPMEM */
-	{PROCWRAP_FlushMemory},			/* PROC_FLUSHMEMORY */
-	{PROCWRAP_Stop},			/* PROC_STOP */
-	{PROCWRAP_InvalidateMemory},		/* PROC_INVALIDATEMEMORY */
+static u32 (*proc_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+	PROCWRAP_Attach,			/* PROC_ATTACH */
+	PROCWRAP_Ctrl,				/* PROC_CTRL */
+	PROCWRAP_Detach,			/* PROC_DETACH */
+	PROCWRAP_EnumNode_Info,			/* PROC_ENUMNODE */
+	PROCWRAP_EnumResources,			/* PROC_ENUMRESOURCES */
+	PROCWRAP_GetState,			/* PROC_GET_STATE */
+	PROCWRAP_GetTrace,			/* PROC_GET_TRACE */
+	PROCWRAP_Load,				/* PROC_LOAD */
+	PROCWRAP_RegisterNotify,		/* PROC_REGISTERNOTIFY */
+	PROCWRAP_Start,				/* PROC_START */
+	PROCWRAP_ReserveMemory,			/* PROC_RSVMEM */
+	PROCWRAP_UnReserveMemory,		/* PROC_UNRSVMEM */
+	PROCWRAP_Map,				/* PROC_MAPMEM */
+	PROCWRAP_UnMap,				/* PROC_UNMAPMEM */
+	PROCWRAP_FlushMemory,			/* PROC_FLUSHMEMORY */
+	PROCWRAP_Stop,				/* PROC_STOP */
+	PROCWRAP_InvalidateMemory,		/* PROC_INVALIDATEMEMORY */
 };
 
 /* NODE wrapper functions */
-static struct WCD_Cmd node_cmd[] = {
-	{NODEWRAP_Allocate},			/* NODE_ALLOCATE */
-	{NODEWRAP_AllocMsgBuf},			/* NODE_ALLOCMSGBUF */
-	{NODEWRAP_ChangePriority},		/* NODE_CHANGEPRIORITY */
-	{NODEWRAP_Connect},			/* NODE_CONNECT */
-	{NODEWRAP_Create},			/* NODE_CREATE */
-	{NODEWRAP_Delete},			/* NODE_DELETE */
-	{NODEWRAP_FreeMsgBuf},			/* NODE_FREEMSGBUF */
-	{NODEWRAP_GetAttr},			/* NODE_GETATTR */
-	{NODEWRAP_GetMessage},			/* NODE_GETMESSAGE */
-	{NODEWRAP_Pause},			/* NODE_PAUSE */
-	{NODEWRAP_PutMessage},			/* NODE_PUTMESSAGE */
-	{NODEWRAP_RegisterNotify},		/* NODE_REGISTERNOTIFY */
-	{NODEWRAP_Run},				/* NODE_RUN */
-	{NODEWRAP_Terminate},			/* NODE_TERMINATE */
-	{NODEWRAP_GetUUIDProps},		/* NODE_GETUUIDPROPS */
+static u32 (*node_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+	NODEWRAP_Allocate,			/* NODE_ALLOCATE */
+	NODEWRAP_AllocMsgBuf,			/* NODE_ALLOCMSGBUF */
+	NODEWRAP_ChangePriority,		/* NODE_CHANGEPRIORITY */
+	NODEWRAP_Connect,			/* NODE_CONNECT */
+	NODEWRAP_Create,			/* NODE_CREATE */
+	NODEWRAP_Delete,			/* NODE_DELETE */
+	NODEWRAP_FreeMsgBuf,			/* NODE_FREEMSGBUF */
+	NODEWRAP_GetAttr,			/* NODE_GETATTR */
+	NODEWRAP_GetMessage,			/* NODE_GETMESSAGE */
+	NODEWRAP_Pause,			/* NODE_PAUSE */
+	NODEWRAP_PutMessage,			/* NODE_PUTMESSAGE */
+	NODEWRAP_RegisterNotify,		/* NODE_REGISTERNOTIFY */
+	NODEWRAP_Run,				/* NODE_RUN */
+	NODEWRAP_Terminate,			/* NODE_TERMINATE */
+	NODEWRAP_GetUUIDProps,		/* NODE_GETUUIDPROPS */
 };
 
 /* STRM wrapper functions */
-static struct WCD_Cmd strm_cmd[] = {
-	{STRMWRAP_AllocateBuffer},		/* STRM_ALLOCATEBUFFER */
-	{STRMWRAP_Close},			/* STRM_CLOSE */
-	{STRMWRAP_FreeBuffer},			/* STRM_FREEBUFFER */
-	{STRMWRAP_GetEventHandle},		/* STRM_GETEVENTHANDLE */
-	{STRMWRAP_GetInfo},			/* STRM_GETINFO */
-	{STRMWRAP_Idle},			/* STRM_IDLE */
-	{STRMWRAP_Issue},			/* STRM_ISSUE */
-	{STRMWRAP_Open},			/* STRM_OPEN */
-	{STRMWRAP_Reclaim},			/* STRM_RECLAIM */
-	{STRMWRAP_RegisterNotify},		/* STRM_REGISTERNOTIFY */
-	{STRMWRAP_Select},			/* STRM_SELECT */
+static u32 (*strm_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+	STRMWRAP_AllocateBuffer,		/* STRM_ALLOCATEBUFFER */
+	STRMWRAP_Close,			/* STRM_CLOSE */
+	STRMWRAP_FreeBuffer,			/* STRM_FREEBUFFER */
+	STRMWRAP_GetEventHandle,		/* STRM_GETEVENTHANDLE */
+	STRMWRAP_GetInfo,			/* STRM_GETINFO */
+	STRMWRAP_Idle,			/* STRM_IDLE */
+	STRMWRAP_Issue,			/* STRM_ISSUE */
+	STRMWRAP_Open,			/* STRM_OPEN */
+	STRMWRAP_Reclaim,			/* STRM_RECLAIM */
+	STRMWRAP_RegisterNotify,		/* STRM_REGISTERNOTIFY */
+	STRMWRAP_Select,			/* STRM_SELECT */
 };
 
 /* CMM wrapper functions */
-static struct WCD_Cmd cmm_cmd[] = {
-	{CMMWRAP_CallocBuf},			/* CMM_ALLOCBUF */
-	{CMMWRAP_FreeBuf},			/* CMM_FREEBUF */
-	{CMMWRAP_GetHandle},			/* CMM_GETHANDLE */
-	{CMMWRAP_GetInfo},			/* CMM_GETINFO */
+static u32 (*cmm_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+	CMMWRAP_CallocBuf,			/* CMM_ALLOCBUF */
+	CMMWRAP_FreeBuf,			/* CMM_FREEBUF */
+	CMMWRAP_GetHandle,			/* CMM_GETHANDLE */
+	CMMWRAP_GetInfo,			/* CMM_GETINFO */
 };
 
 /* Array used to store ioctl table sizes. It can hold up to 8 entries */
@@ -323,19 +317,19 @@ inline DSP_STATUS WCD_CallDevIOCtl(u32 cmd, union Trapped_Args *args,
 
 	switch (DB_GET_MODULE(cmd)) {
 	case DB_MGR:
-		ioctl_cmd = mgr_cmd[i].fxn;
+		ioctl_cmd = mgr_cmd[i];
 		break;
 	case DB_PROC:
-		ioctl_cmd = proc_cmd[i].fxn;
+		ioctl_cmd = proc_cmd[i];
 		break;
 	case DB_NODE:
-		ioctl_cmd = node_cmd[i].fxn;
+		ioctl_cmd = node_cmd[i];
 		break;
 	case DB_STRM:
-		ioctl_cmd = strm_cmd[i].fxn;
+		ioctl_cmd = strm_cmd[i];
 		break;
 	case DB_CMM:
-		ioctl_cmd = cmm_cmd[i].fxn;
+		ioctl_cmd = cmm_cmd[i];
 		break;
 	}
 
-- 
1.6.2.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 7/7] DSPBRIDGE: remove WCD_Cmd structure
  2010-01-12  1:00             ` [PATCH v3 7/7] DSPBRIDGE: remove WCD_Cmd structure Omar Ramirez Luna
@ 2010-01-12  1:09               ` Nishanth Menon
  0 siblings, 0 replies; 18+ messages in thread
From: Nishanth Menon @ 2010-01-12  1:09 UTC (permalink / raw)
  To: Ramirez Luna, Omar
  Cc: linux-omap, Hiroshi Doyu, Ameya Palande, Felipe Contreras

Ramirez Luna, Omar had written, on 01/11/2010 07:00 PM, the following:
> Remove WCD_Cmd structure given that only one member is being
> used (fxn call), this structure is replaced for a definition
> of an array of function pointers for each dspbridge ioctl
> module.
> 
> Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
> CC: Nishanth Menon <nm@ti.com>
> CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
> CC: Ameya Palande <ameya.palande@nokia.com>
> CC: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  drivers/dsp/bridge/pmgr/wcd.c |  134 +++++++++++++++++++---------------------
>  1 files changed, 64 insertions(+), 70 deletions(-)
> 
> diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
> index 27e8e8e..37d1f8a 100644
> --- a/drivers/dsp/bridge/pmgr/wcd.c
> +++ b/drivers/dsp/bridge/pmgr/wcd.c
> @@ -147,12 +147,6 @@
>  /* Used to get dspbridge ioctl table */
>  #define DB_GET_IOC_TABLE(cmd)	(DB_GET_MODULE(cmd) >> DB_MODULE_SHIFT)
>  
> -/* Device IOCtl function pointer */
> -struct WCD_Cmd {
> -	u32(*fxn)(union Trapped_Args *args, void *pr_ctxt);
> -	u32 dwIndex;
> -} ;
> -
>  /*  ----------------------------------- Globals */
>  #if GT_TRACE
>  static struct GT_Mask WCD_debugMask = { NULL, NULL };	/* Core VxD Mask */
> @@ -167,80 +161,80 @@ static u32 WCD_cRefs;
>   */
>  
>  /* MGR wrapper functions */
> -static struct WCD_Cmd mgr_cmd[] = {
> -	{MGRWRAP_EnumNode_Info},		/* MGR_ENUMNODE_INFO */
> -	{MGRWRAP_EnumProc_Info},		/* MGR_ENUMPROC_INFO */
> -	{MGRWRAP_RegisterObject},		/* MGR_REGISTEROBJECT */
> -	{MGRWRAP_UnregisterObject},		/* MGR_UNREGISTEROBJECT */
> -	{MGRWRAP_WaitForBridgeEvents},		/* MGR_WAIT */
> +static u32 (*mgr_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {

agreed that we dont need dwIndex anymore and struct wrapper is an 
overhead, but, just being a nitpick again, but is'nt typedef a necessary 
evil at this point to ensure that all cmd_ function pointers are of the 
same style for each of the arrays?

-- 
Regards,
Nishanth Menon

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [RESEND][PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls
  2010-01-12  1:00           ` [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Omar Ramirez Luna
  2010-01-12  1:00             ` [PATCH v3 7/7] DSPBRIDGE: remove WCD_Cmd structure Omar Ramirez Luna
@ 2010-01-12  1:09             ` Ramirez Luna, Omar
  2010-01-14  0:24             ` [PATCH " Ramirez Luna, Omar
  2 siblings, 0 replies; 18+ messages in thread
From: Ramirez Luna, Omar @ 2010-01-12  1:09 UTC (permalink / raw)
  To: linux-omap; +Cc: Menon, Nishanth, Hiroshi Doyu, Ameya Palande, Felipe Contreras

Resending with u8 instead of short for size_cmd array

>From: Ramirez Luna, Omar
>
>- Use standard convention to define ioctls.
>
>Currently 0xDB is used as identifier for dspbridge.
>
>Discussion:
>http://marc.info/?l=linux-omap&m=126297631603035&w=2
>
>WARNING:
>An update in api ioctl definitions is required, usually replacing
>to a new libbridge (with ioctl patch) should be enough. Other
>clients (not using libbridge) need to update their ioctl numbers
>manually.
>
>Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
>CC: Nishanth Menon <nm@ti.com>
>CC: Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
>CC: Ameya Palande <ameya.palande@nokia.com>
>CC: Felipe Contreras <felipe.contreras@gmail.com>
>---
> arch/arm/plat-omap/include/dspbridge/wcdioctl.h |  181 ++++++++++++---------
> drivers/dsp/bridge/pmgr/wcd.c                   |  200 +++++++++++++++--------
> drivers/dsp/bridge/rmgr/drv_interface.c         |    3 -
> 3 files changed, 237 insertions(+), 147 deletions(-)
>

diff --git a/arch/arm/plat-omap/include/dspbridge/wcdioctl.h b/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
index 4b9dd0a..656d56b 100644
--- a/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
+++ b/arch/arm/plat-omap/include/dspbridge/wcdioctl.h
@@ -437,86 +437,109 @@ union Trapped_Args {
        } ARGS_UTIL_TESTDLL;
 } ;

-#define CMD_BASE                   1
+/*
+ * Dspbridge Ioctl numbering scheme
+ *
+ *    7                           0
+ *  ---------------------------------
+ *  |  Module   |   Ioctl Number    |
+ *  ---------------------------------
+ *  | x | x | x | 0 | 0 | 0 | 0 | 0 |
+ *  ---------------------------------
+ */
+
+/* Ioctl driver identifier */
+#define DB             0xDB
+
+/*
+ * Following are used to distinguish between module ioctls, this is needed
+ * in case new ioctls are introduced.
+ */
+#define DB_MODULE_MASK         0xE0
+#define DB_IOC_MASK            0x1F
+
+/* Ioctl module masks */
+#define DB_MGR         0x0
+#define DB_PROC                0x20
+#define DB_NODE                0x40
+#define DB_STRM                0x60
+#define DB_CMM         0x80
+
+#define DB_MODULE_SHIFT                5
+
+/* Used to calculate the ioctl per dspbridge module */
+#define DB_IOC(module, num) \
+                       (((module) & DB_MODULE_MASK) | ((num) & DB_IOC_MASK))
+/* Used to get dspbridge ioctl module */
+#define DB_GET_MODULE(cmd)     ((cmd) & DB_MODULE_MASK)
+/* Used to get dspbridge ioctl number */
+#define DB_GET_IOC(cmd)                ((cmd) & DB_IOC_MASK)

 /* TODO: Remove deprecated and not implemented */

-/* MGR module offsets */
-#define CMD_MGR_BASE_OFFSET         CMD_BASE
-#define CMD_MGR_ENUMNODE_INFO_OFFSET    (CMD_MGR_BASE_OFFSET + 0)
-#define CMD_MGR_ENUMPROC_INFO_OFFSET    (CMD_MGR_BASE_OFFSET + 1)
-#define CMD_MGR_REGISTEROBJECT_OFFSET   (CMD_MGR_BASE_OFFSET + 2)
-#define CMD_MGR_UNREGISTEROBJECT_OFFSET (CMD_MGR_BASE_OFFSET + 3)
-#define CMD_MGR_WAIT_OFFSET         (CMD_MGR_BASE_OFFSET + 4)
-
-#ifndef RES_CLEANUP_DISABLE
-#define CMD_MGR_RESOUCES_OFFSET         (CMD_MGR_BASE_OFFSET + 5)    /* Deprecated */
-#define CMD_MGR_END_OFFSET           CMD_MGR_RESOUCES_OFFSET
-#else
-#define CMD_MGR_END_OFFSET           CMD_MGR_WAIT_OFFSET
-#endif
-
-#define CMD_PROC_BASE_OFFSET       (CMD_MGR_END_OFFSET + 1)
-#define CMD_PROC_ATTACH_OFFSET   (CMD_PROC_BASE_OFFSET + 0)
-#define CMD_PROC_CTRL_OFFSET       (CMD_PROC_BASE_OFFSET + 1)
-#define CMD_PROC_DETACH_OFFSET   (CMD_PROC_BASE_OFFSET + 2)  /* Deprecated */
-#define CMD_PROC_ENUMNODE_OFFSET       (CMD_PROC_BASE_OFFSET + 3)
-#define CMD_PROC_ENUMRESOURCES_OFFSET   (CMD_PROC_BASE_OFFSET + 4)
-#define CMD_PROC_GETSTATE_OFFSET       (CMD_PROC_BASE_OFFSET + 5)
-#define CMD_PROC_GETTRACE_OFFSET       (CMD_PROC_BASE_OFFSET + 6)
-#define CMD_PROC_LOAD_OFFSET       (CMD_PROC_BASE_OFFSET + 7)
-#define CMD_PROC_REGISTERNOTIFY_OFFSET  (CMD_PROC_BASE_OFFSET + 8)
-#define CMD_PROC_START_OFFSET     (CMD_PROC_BASE_OFFSET + 9)
-#define CMD_PROC_RSVMEM_OFFSET   (CMD_PROC_BASE_OFFSET + 10)
-#define CMD_PROC_UNRSVMEM_OFFSET       (CMD_PROC_BASE_OFFSET + 11)
-#define CMD_PROC_MAPMEM_OFFSET   (CMD_PROC_BASE_OFFSET + 12)
-#define CMD_PROC_UNMAPMEM_OFFSET       (CMD_PROC_BASE_OFFSET + 13)
-#define CMD_PROC_FLUSHMEMORY_OFFSET      (CMD_PROC_BASE_OFFSET + 14)
-#define CMD_PROC_STOP_OFFSET       (CMD_PROC_BASE_OFFSET + 15)
-#define CMD_PROC_INVALIDATEMEMORY_OFFSET (CMD_PROC_BASE_OFFSET + 16)
-#define CMD_PROC_END_OFFSET         CMD_PROC_INVALIDATEMEMORY_OFFSET
-
-
-#define CMD_NODE_BASE_OFFSET       (CMD_PROC_END_OFFSET + 1)
-#define CMD_NODE_ALLOCATE_OFFSET       (CMD_NODE_BASE_OFFSET + 0)
-#define CMD_NODE_ALLOCMSGBUF_OFFSET     (CMD_NODE_BASE_OFFSET + 1)
-#define CMD_NODE_CHANGEPRIORITY_OFFSET  (CMD_NODE_BASE_OFFSET + 2)
-#define CMD_NODE_CONNECT_OFFSET         (CMD_NODE_BASE_OFFSET + 3)
-#define CMD_NODE_CREATE_OFFSET   (CMD_NODE_BASE_OFFSET + 4)
-#define CMD_NODE_DELETE_OFFSET   (CMD_NODE_BASE_OFFSET + 5)
-#define CMD_NODE_FREEMSGBUF_OFFSET      (CMD_NODE_BASE_OFFSET + 6)
-#define CMD_NODE_GETATTR_OFFSET         (CMD_NODE_BASE_OFFSET + 7)
-#define CMD_NODE_GETMESSAGE_OFFSET      (CMD_NODE_BASE_OFFSET + 8)
-#define CMD_NODE_PAUSE_OFFSET     (CMD_NODE_BASE_OFFSET + 9)
-#define CMD_NODE_PUTMESSAGE_OFFSET      (CMD_NODE_BASE_OFFSET + 10)
-#define CMD_NODE_REGISTERNOTIFY_OFFSET  (CMD_NODE_BASE_OFFSET + 11)
-#define CMD_NODE_RUN_OFFSET         (CMD_NODE_BASE_OFFSET + 12)
-#define CMD_NODE_TERMINATE_OFFSET       (CMD_NODE_BASE_OFFSET + 13)
-#define CMD_NODE_GETUUIDPROPS_OFFSET    (CMD_NODE_BASE_OFFSET + 14)
-#define CMD_NODE_END_OFFSET         CMD_NODE_GETUUIDPROPS_OFFSET
-
-#define CMD_STRM_BASE_OFFSET       (CMD_NODE_END_OFFSET + 1)
-#define CMD_STRM_ALLOCATEBUFFER_OFFSET  (CMD_STRM_BASE_OFFSET + 0)
-#define CMD_STRM_CLOSE_OFFSET     (CMD_STRM_BASE_OFFSET + 1)
-#define CMD_STRM_FREEBUFFER_OFFSET      (CMD_STRM_BASE_OFFSET + 2)
-/* Not Impl'd */
-#define CMD_STRM_GETEVENTHANDLE_OFFSET  (CMD_STRM_BASE_OFFSET + 3)
-#define CMD_STRM_GETINFO_OFFSET         (CMD_STRM_BASE_OFFSET + 4)
-#define CMD_STRM_IDLE_OFFSET       (CMD_STRM_BASE_OFFSET + 5)
-#define CMD_STRM_ISSUE_OFFSET     (CMD_STRM_BASE_OFFSET + 6)
-#define CMD_STRM_OPEN_OFFSET       (CMD_STRM_BASE_OFFSET + 7)
-#define CMD_STRM_RECLAIM_OFFSET         (CMD_STRM_BASE_OFFSET + 8)
-#define CMD_STRM_REGISTERNOTIFY_OFFSET  (CMD_STRM_BASE_OFFSET + 9)
-#define CMD_STRM_SELECT_OFFSET   (CMD_STRM_BASE_OFFSET + 10)
-#define CMD_STRM_END_OFFSET         CMD_STRM_SELECT_OFFSET
-
-/* Communication Memory Manager (UCMM) */
-#define CMD_CMM_BASE_OFFSET         (CMD_STRM_END_OFFSET + 1)
-#define CMD_CMM_ALLOCBUF_OFFSET         (CMD_CMM_BASE_OFFSET + 0)    /* Not Impl'd */
-#define CMD_CMM_FREEBUF_OFFSET   (CMD_CMM_BASE_OFFSET + 1)   /* Not Impl'd */
-#define CMD_CMM_GETHANDLE_OFFSET       (CMD_CMM_BASE_OFFSET + 2)
-#define CMD_CMM_GETINFO_OFFSET   (CMD_CMM_BASE_OFFSET + 3)
-#define CMD_CMM_END_OFFSET           CMD_CMM_GETINFO_OFFSET
-
-#define CMD_BASE_END_OFFSET    CMD_CMM_END_OFFSET
+/* MGR Module */
+#define MGR_ENUMNODE_INFO      _IOWR(DB, DB_IOC(DB_MGR, 0), unsigned long)
+#define MGR_ENUMPROC_INFO      _IOWR(DB, DB_IOC(DB_MGR, 1), unsigned long)
+#define MGR_REGISTEROBJECT     _IOWR(DB, DB_IOC(DB_MGR, 2), unsigned long)
+#define MGR_UNREGISTEROBJECT   _IOWR(DB, DB_IOC(DB_MGR, 3), unsigned long)
+#define MGR_WAIT               _IOWR(DB, DB_IOC(DB_MGR, 4), unsigned long)
+/* MGR_GET_PROC_RES Deprecated */
+#define MGR_GET_PROC_RES       _IOR(DB, DB_IOC(DB_MGR, 5), unsigned long)
+
+/* PROC Module */
+#define PROC_ATTACH            _IOWR(DB, DB_IOC(DB_PROC, 0), unsigned long)
+#define PROC_CTRL              _IOR(DB, DB_IOC(DB_PROC, 1), unsigned long)
+/* PROC_DETACH Deprecated */
+#define PROC_DETACH            _IOR(DB, DB_IOC(DB_PROC, 2), unsigned long)
+#define PROC_ENUMNODE          _IOWR(DB, DB_IOC(DB_PROC, 3), unsigned long)
+#define PROC_ENUMRESOURCES     _IOWR(DB, DB_IOC(DB_PROC, 4), unsigned long)
+#define PROC_GET_STATE         _IOWR(DB, DB_IOC(DB_PROC, 5), unsigned long)
+#define PROC_GET_TRACE         _IOWR(DB, DB_IOC(DB_PROC, 6), unsigned long)
+#define PROC_LOAD              _IOW(DB, DB_IOC(DB_PROC, 7), unsigned long)
+#define PROC_REGISTERNOTIFY    _IOWR(DB, DB_IOC(DB_PROC, 8), unsigned long)
+#define PROC_START             _IOW(DB, DB_IOC(DB_PROC, 9), unsigned long)
+#define PROC_RSVMEM            _IOWR(DB, DB_IOC(DB_PROC, 10), unsigned long)
+#define PROC_UNRSVMEM          _IOW(DB, DB_IOC(DB_PROC, 11), unsigned long)
+#define PROC_MAPMEM            _IOWR(DB, DB_IOC(DB_PROC, 12), unsigned long)
+#define PROC_UNMAPMEM          _IOR(DB, DB_IOC(DB_PROC, 13), unsigned long)
+#define PROC_FLUSHMEMORY       _IOW(DB, DB_IOC(DB_PROC, 14), unsigned long)
+#define PROC_STOP              _IOWR(DB, DB_IOC(DB_PROC, 15), unsigned long)
+#define PROC_INVALIDATEMEMORY  _IOW(DB, DB_IOC(DB_PROC, 16), unsigned long)
+
+/* NODE Module */
+#define NODE_ALLOCATE          _IOWR(DB, DB_IOC(DB_NODE, 0), unsigned long)
+#define NODE_ALLOCMSGBUF       _IOWR(DB, DB_IOC(DB_NODE, 1), unsigned long)
+#define NODE_CHANGEPRIORITY    _IOW(DB, DB_IOC(DB_NODE, 2), unsigned long)
+#define NODE_CONNECT           _IOW(DB, DB_IOC(DB_NODE, 3), unsigned long)
+#define NODE_CREATE            _IOW(DB, DB_IOC(DB_NODE, 4), unsigned long)
+#define NODE_DELETE            _IOW(DB, DB_IOC(DB_NODE, 5), unsigned long)
+#define NODE_FREEMSGBUF                _IOW(DB, DB_IOC(DB_NODE, 6), unsigned long)
+#define NODE_GETATTR           _IOWR(DB, DB_IOC(DB_NODE, 7), unsigned long)
+#define NODE_GETMESSAGE                _IOWR(DB, DB_IOC(DB_NODE, 8), unsigned long)
+#define NODE_PAUSE             _IOW(DB, DB_IOC(DB_NODE, 9), unsigned long)
+#define NODE_PUTMESSAGE                _IOW(DB, DB_IOC(DB_NODE, 10), unsigned long)
+#define NODE_REGISTERNOTIFY    _IOWR(DB, DB_IOC(DB_NODE, 11), unsigned long)
+#define NODE_RUN               _IOW(DB, DB_IOC(DB_NODE, 12), unsigned long)
+#define NODE_TERMINATE         _IOWR(DB, DB_IOC(DB_NODE, 13), unsigned long)
+#define NODE_GETUUIDPROPS      _IOWR(DB, DB_IOC(DB_NODE, 14), unsigned long)
+
+/* STRM Module */
+#define STRM_ALLOCATEBUFFER    _IOWR(DB, DB_IOC(DB_STRM, 0), unsigned long)
+#define STRM_CLOSE             _IOW(DB, DB_IOC(DB_STRM, 1), unsigned long)
+#define STRM_FREEBUFFER                _IOWR(DB, DB_IOC(DB_STRM, 2), unsigned long)
+#define STRM_GETEVENTHANDLE    _IO(DB, DB_IOC(DB_STRM, 3))     /* Not Impl'd */
+#define STRM_GETINFO           _IOWR(DB, DB_IOC(DB_STRM, 4), unsigned long)
+#define STRM_IDLE              _IOW(DB, DB_IOC(DB_STRM, 5), unsigned long)
+#define STRM_ISSUE             _IOW(DB, DB_IOC(DB_STRM, 6), unsigned long)
+#define STRM_OPEN              _IOWR(DB, DB_IOC(DB_STRM, 7), unsigned long)
+#define STRM_RECLAIM           _IOWR(DB, DB_IOC(DB_STRM, 8), unsigned long)
+#define STRM_REGISTERNOTIFY    _IOWR(DB, DB_IOC(DB_STRM, 9), unsigned long)
+#define STRM_SELECT            _IOWR(DB, DB_IOC(DB_STRM, 10), unsigned long)
+
+/* CMM Module */
+#define CMM_ALLOCBUF           _IO(DB, DB_IOC(DB_CMM, 0))      /* Not Impl'd */
+#define CMM_FREEBUF            _IO(DB, DB_IOC(DB_CMM, 1))      /* Not Impl'd */
+#define CMM_GETHANDLE          _IOR(DB, DB_IOC(DB_CMM, 2), unsigned long)
+#define CMM_GETINFO            _IOR(DB, DB_IOC(DB_CMM, 3), unsigned long)
+
 #endif                         /* WCDIOCTL_ */
diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index 02def74..39e3110 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -144,6 +144,9 @@
 #define MAX_STREAMS     16
 #define MAX_BUFS       64

+/* Used to get dspbridge ioctl table */
+#define DB_GET_IOC_TABLE(cmd)  (DB_GET_MODULE(cmd) >> DB_MODULE_SHIFT)
+
 /* Device IOCtl function pointer */
 struct WCD_Cmd {
        u32(*fxn)(union Trapped_Args *args, void *pr_ctxt);
@@ -157,72 +160,96 @@ static struct GT_Mask WCD_debugMask = { NULL, NULL };     /* Core VxD Mask */
 static u32 WCD_cRefs;

 /*
- *  Function table.
+ *  Function tables.
  *  The order of these functions MUST be the same as the order of the command
  *  numbers defined in wcdioctl.h  This is how an IOCTL number in user mode
  *  turns into a function call in kernel mode.
  */
-static struct WCD_Cmd WCD_cmdTable[] = {
-       /* MGR module */
-       {MGRWRAP_EnumNode_Info, CMD_MGR_ENUMNODE_INFO_OFFSET},
-       {MGRWRAP_EnumProc_Info, CMD_MGR_ENUMPROC_INFO_OFFSET},
-       {MGRWRAP_RegisterObject, CMD_MGR_REGISTEROBJECT_OFFSET},
-       {MGRWRAP_UnregisterObject, CMD_MGR_UNREGISTEROBJECT_OFFSET},
-       {MGRWRAP_WaitForBridgeEvents, CMD_MGR_WAIT_OFFSET},
+
+/* MGR wrapper functions */
+static struct WCD_Cmd mgr_cmd[] = {
+       {MGRWRAP_EnumNode_Info},                /* MGR_ENUMNODE_INFO */
+       {MGRWRAP_EnumProc_Info},                /* MGR_ENUMPROC_INFO */
+       {MGRWRAP_RegisterObject},               /* MGR_REGISTEROBJECT */
+       {MGRWRAP_UnregisterObject},             /* MGR_UNREGISTEROBJECT */
+       {MGRWRAP_WaitForBridgeEvents},          /* MGR_WAIT */
 #ifndef RES_CLEANUP_DISABLE
-       {MGRWRAP_GetProcessResourcesInfo, CMD_MGR_RESOUCES_OFFSET},
+       {MGRWRAP_GetProcessResourcesInfo},      /* MGR_GET_PROC_RES */
+#else
+       {NULL},
 #endif
-       /* PROC Module */
-       {PROCWRAP_Attach, CMD_PROC_ATTACH_OFFSET},
-       {PROCWRAP_Ctrl, CMD_PROC_CTRL_OFFSET},
-       {PROCWRAP_Detach, CMD_PROC_DETACH_OFFSET},
-       {PROCWRAP_EnumNode_Info, CMD_PROC_ENUMNODE_OFFSET},
-       {PROCWRAP_EnumResources, CMD_PROC_ENUMRESOURCES_OFFSET},
-       {PROCWRAP_GetState, CMD_PROC_GETSTATE_OFFSET},
-       {PROCWRAP_GetTrace, CMD_PROC_GETTRACE_OFFSET},
-       {PROCWRAP_Load, CMD_PROC_LOAD_OFFSET},
-       {PROCWRAP_RegisterNotify, CMD_PROC_REGISTERNOTIFY_OFFSET},
-       {PROCWRAP_Start, CMD_PROC_START_OFFSET},
-       {PROCWRAP_ReserveMemory, CMD_PROC_RSVMEM_OFFSET},
-       {PROCWRAP_UnReserveMemory, CMD_PROC_UNRSVMEM_OFFSET},
-       {PROCWRAP_Map, CMD_PROC_MAPMEM_OFFSET},
-       {PROCWRAP_UnMap, CMD_PROC_UNMAPMEM_OFFSET},
-       {PROCWRAP_FlushMemory, CMD_PROC_FLUSHMEMORY_OFFSET},
-       {PROCWRAP_Stop, CMD_PROC_STOP_OFFSET},
-       {PROCWRAP_InvalidateMemory, CMD_PROC_INVALIDATEMEMORY_OFFSET},
-       /* NODE Module */
-       {NODEWRAP_Allocate, CMD_NODE_ALLOCATE_OFFSET},
-       {NODEWRAP_AllocMsgBuf, CMD_NODE_ALLOCMSGBUF_OFFSET},
-       {NODEWRAP_ChangePriority, CMD_NODE_CHANGEPRIORITY_OFFSET},
-       {NODEWRAP_Connect, CMD_NODE_CONNECT_OFFSET},
-       {NODEWRAP_Create, CMD_NODE_CREATE_OFFSET},
-       {NODEWRAP_Delete, CMD_NODE_DELETE_OFFSET},
-       {NODEWRAP_FreeMsgBuf, CMD_NODE_FREEMSGBUF_OFFSET},
-       {NODEWRAP_GetAttr, CMD_NODE_GETATTR_OFFSET},
-       {NODEWRAP_GetMessage, CMD_NODE_GETMESSAGE_OFFSET},
-       {NODEWRAP_Pause, CMD_NODE_PAUSE_OFFSET},
-       {NODEWRAP_PutMessage, CMD_NODE_PUTMESSAGE_OFFSET},
-       {NODEWRAP_RegisterNotify, CMD_NODE_REGISTERNOTIFY_OFFSET},
-       {NODEWRAP_Run, CMD_NODE_RUN_OFFSET},
-       {NODEWRAP_Terminate, CMD_NODE_TERMINATE_OFFSET},
-       {NODEWRAP_GetUUIDProps, CMD_NODE_GETUUIDPROPS_OFFSET},
-       /* STRM wrapper functions */
-       {STRMWRAP_AllocateBuffer, CMD_STRM_ALLOCATEBUFFER_OFFSET},
-       {STRMWRAP_Close, CMD_STRM_CLOSE_OFFSET},
-       {STRMWRAP_FreeBuffer, CMD_STRM_FREEBUFFER_OFFSET},
-       {STRMWRAP_GetEventHandle, CMD_STRM_GETEVENTHANDLE_OFFSET},
-       {STRMWRAP_GetInfo, CMD_STRM_GETINFO_OFFSET},
-       {STRMWRAP_Idle, CMD_STRM_IDLE_OFFSET},
-       {STRMWRAP_Issue, CMD_STRM_ISSUE_OFFSET},
-       {STRMWRAP_Open, CMD_STRM_OPEN_OFFSET},
-       {STRMWRAP_Reclaim, CMD_STRM_RECLAIM_OFFSET},
-       {STRMWRAP_RegisterNotify, CMD_STRM_REGISTERNOTIFY_OFFSET},
-       {STRMWRAP_Select, CMD_STRM_SELECT_OFFSET},
-       /* CMM module */
-       {CMMWRAP_CallocBuf, CMD_CMM_ALLOCBUF_OFFSET},
-       {CMMWRAP_FreeBuf, CMD_CMM_FREEBUF_OFFSET},
-       {CMMWRAP_GetHandle, CMD_CMM_GETHANDLE_OFFSET},
-       {CMMWRAP_GetInfo, CMD_CMM_GETINFO_OFFSET}
+};
+
+/* PROC wrapper functions */
+static struct WCD_Cmd proc_cmd[] = {
+       {PROCWRAP_Attach},                      /* PROC_ATTACH */
+       {PROCWRAP_Ctrl},                        /* PROC_CTRL */
+       {PROCWRAP_Detach},                      /* PROC_DETACH */
+       {PROCWRAP_EnumNode_Info},               /* PROC_ENUMNODE */
+       {PROCWRAP_EnumResources},               /* PROC_ENUMRESOURCES */
+       {PROCWRAP_GetState},                    /* PROC_GET_STATE */
+       {PROCWRAP_GetTrace},                    /* PROC_GET_TRACE */
+       {PROCWRAP_Load},                        /* PROC_LOAD */
+       {PROCWRAP_RegisterNotify},              /* PROC_REGISTERNOTIFY */
+       {PROCWRAP_Start},                       /* PROC_START */
+       {PROCWRAP_ReserveMemory},               /* PROC_RSVMEM */
+       {PROCWRAP_UnReserveMemory},             /* PROC_UNRSVMEM */
+       {PROCWRAP_Map},                         /* PROC_MAPMEM */
+       {PROCWRAP_UnMap},                       /* PROC_UNMAPMEM */
+       {PROCWRAP_FlushMemory},                 /* PROC_FLUSHMEMORY */
+       {PROCWRAP_Stop},                        /* PROC_STOP */
+       {PROCWRAP_InvalidateMemory},            /* PROC_INVALIDATEMEMORY */
+};
+
+/* NODE wrapper functions */
+static struct WCD_Cmd node_cmd[] = {
+       {NODEWRAP_Allocate},                    /* NODE_ALLOCATE */
+       {NODEWRAP_AllocMsgBuf},                 /* NODE_ALLOCMSGBUF */
+       {NODEWRAP_ChangePriority},              /* NODE_CHANGEPRIORITY */
+       {NODEWRAP_Connect},                     /* NODE_CONNECT */
+       {NODEWRAP_Create},                      /* NODE_CREATE */
+       {NODEWRAP_Delete},                      /* NODE_DELETE */
+       {NODEWRAP_FreeMsgBuf},                  /* NODE_FREEMSGBUF */
+       {NODEWRAP_GetAttr},                     /* NODE_GETATTR */
+       {NODEWRAP_GetMessage},                  /* NODE_GETMESSAGE */
+       {NODEWRAP_Pause},                       /* NODE_PAUSE */
+       {NODEWRAP_PutMessage},                  /* NODE_PUTMESSAGE */
+       {NODEWRAP_RegisterNotify},              /* NODE_REGISTERNOTIFY */
+       {NODEWRAP_Run},                         /* NODE_RUN */
+       {NODEWRAP_Terminate},                   /* NODE_TERMINATE */
+       {NODEWRAP_GetUUIDProps},                /* NODE_GETUUIDPROPS */
+};
+
+/* STRM wrapper functions */
+static struct WCD_Cmd strm_cmd[] = {
+       {STRMWRAP_AllocateBuffer},              /* STRM_ALLOCATEBUFFER */
+       {STRMWRAP_Close},                       /* STRM_CLOSE */
+       {STRMWRAP_FreeBuffer},                  /* STRM_FREEBUFFER */
+       {STRMWRAP_GetEventHandle},              /* STRM_GETEVENTHANDLE */
+       {STRMWRAP_GetInfo},                     /* STRM_GETINFO */
+       {STRMWRAP_Idle},                        /* STRM_IDLE */
+       {STRMWRAP_Issue},                       /* STRM_ISSUE */
+       {STRMWRAP_Open},                        /* STRM_OPEN */
+       {STRMWRAP_Reclaim},                     /* STRM_RECLAIM */
+       {STRMWRAP_RegisterNotify},              /* STRM_REGISTERNOTIFY */
+       {STRMWRAP_Select},                      /* STRM_SELECT */
+};
+
+/* CMM wrapper functions */
+static struct WCD_Cmd cmm_cmd[] = {
+       {CMMWRAP_CallocBuf},                    /* CMM_ALLOCBUF */
+       {CMMWRAP_FreeBuf},                      /* CMM_FREEBUF */
+       {CMMWRAP_GetHandle},                    /* CMM_GETHANDLE */
+       {CMMWRAP_GetInfo},                      /* CMM_GETINFO */
+};
+
+/* Array used to store ioctl table sizes. It can hold up to 8 entries */
+static u8 size_cmd[] = {
+       ARRAY_SIZE(mgr_cmd),
+       ARRAY_SIZE(proc_cmd),
+       ARRAY_SIZE(node_cmd),
+       ARRAY_SIZE(strm_cmd),
+       ARRAY_SIZE(cmm_cmd),
 };

 static inline void __cp_fm_usr(void *to, const void __user *from,
@@ -273,13 +300,56 @@ static inline void __cp_to_usr(void __user *to, const void *from,
 inline DSP_STATUS WCD_CallDevIOCtl(u32 cmd, union Trapped_Args *args,
                                    u32 *result, void *pr_ctxt)
 {
-       if (cmd < ARRAY_SIZE(WCD_cmdTable)) {
-               /* make the fxn call via the cmd table */
-               *result = (*WCD_cmdTable[cmd].fxn) (args, pr_ctxt);
-               return DSP_SOK;
+       u32 (*ioctl_cmd)(union Trapped_Args *args, void *pr_ctxt) = NULL;
+       int i;
+
+       if (_IOC_TYPE(cmd) != DB) {
+               pr_err("%s: Incompatible dspbridge ioctl number\n", __func__);
+               goto err;
+       }
+
+       if (DB_GET_IOC_TABLE(cmd) > ARRAY_SIZE(size_cmd)) {
+               pr_err("%s: undefined ioctl module\n", __func__);
+               goto err;
+       }
+
+       /* Check the size of the required cmd table */
+       i = DB_GET_IOC(cmd);
+       if (i > size_cmd[DB_GET_IOC_TABLE(cmd)]) {
+               pr_err("%s: requested ioctl %d out of bounds for table %d\n",
+                                       __func__, i, DB_GET_IOC_TABLE(cmd));
+               goto err;
+       }
+
+       switch (DB_GET_MODULE(cmd)) {
+       case DB_MGR:
+               ioctl_cmd = mgr_cmd[i].fxn;
+               break;
+       case DB_PROC:
+               ioctl_cmd = proc_cmd[i].fxn;
+               break;
+       case DB_NODE:
+               ioctl_cmd = node_cmd[i].fxn;
+               break;
+       case DB_STRM:
+               ioctl_cmd = strm_cmd[i].fxn;
+               break;
+       case DB_CMM:
+               ioctl_cmd = cmm_cmd[i].fxn;
+               break;
+       }
+
+       if (!ioctl_cmd) {
+               pr_err("%s: requested ioctl not defined\n", __func__);
+               goto err;
+       } else {
+               *result = (*ioctl_cmd)(args, pr_ctxt);
        }

-       return DSP_EINVALIDARG;
+       return DSP_SOK;
+
+err:
+       return -EINVAL;
 }

 /*
diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c
index efce35d..78ecec4 100644
--- a/drivers/dsp/bridge/rmgr/drv_interface.c
+++ b/drivers/dsp/bridge/rmgr/drv_interface.c
@@ -611,9 +611,6 @@ static long bridge_ioctl(struct file *filp, unsigned int code,

        GT_0trace(driverTrace, GT_ENTER, " -> driver_ioctl\n");

-       /* Deduct one for the CMD_BASE. */
-       code = (code - 1);
-
        status = copy_from_user(&pBufIn, (union Trapped_Args *)args,
                                sizeof(union Trapped_Args));

--
1.6.2.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* RE: [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap
  2010-01-12  1:00 ` [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap Omar Ramirez Luna
  2010-01-12  1:00   ` [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration Omar Ramirez Luna
@ 2010-01-13 23:57   ` Ramirez Luna, Omar
  1 sibling, 0 replies; 18+ messages in thread
From: Ramirez Luna, Omar @ 2010-01-13 23:57 UTC (permalink / raw)
  To: linux-omap
  Cc: Tony Lindgren, Menon, Nishanth, Hiroshi Doyu, Ameya Palande,
	Felipe Contreras

>From: Ramirez Luna, Omar
>Sent: Monday, January 11, 2010 7:01 PM
>To: linux-omap
>Cc: Ramirez Luna, Omar; Tony Lindgren; Menon, Nishanth; Hiroshi Doyu; Ameya Palande; Felipe Contreras
>Subject: [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap
>
>Use ioremap() instead of using IO_ADDRESS macro to make it generic.
>
>Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
>---
> drivers/dsp/bridge/services/clk.c |   19 +++++++++++++------
> 1 files changed, 13 insertions(+), 6 deletions(-)
>

Pushed to dspbridge

- omar

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration
  2010-01-12  1:00   ` [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration Omar Ramirez Luna
  2010-01-12  1:00     ` [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated Omar Ramirez Luna
@ 2010-01-14  0:22     ` Ramirez Luna, Omar
  1 sibling, 0 replies; 18+ messages in thread
From: Ramirez Luna, Omar @ 2010-01-14  0:22 UTC (permalink / raw)
  To: linux-omap; +Cc: Menon, Nishanth, Hiroshi Doyu, Ameya Palande, Felipe Contreras

>From: Ramirez Luna, Omar
>Sent: Monday, January 11, 2010 7:01 PM
>To: linux-omap
>Cc: Ramirez Luna, Omar; Menon, Nishanth; Hiroshi Doyu; Ameya Palande; Felipe Contreras
>Subject: [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration
>
>Rename ssi_sysconfig variable and replace the usage of magic
>numbers while updating SSI configuration.
>
>Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
>---
> drivers/dsp/bridge/services/clk.c |   12 ++++++++----
> 1 files changed, 8 insertions(+), 4 deletions(-)
>

Pushed to dspbridge

- omar

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated
  2010-01-12  1:00     ` [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated Omar Ramirez Luna
  2010-01-12  1:00       ` [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check Omar Ramirez Luna
@ 2010-01-14  0:23       ` Ramirez Luna, Omar
  1 sibling, 0 replies; 18+ messages in thread
From: Ramirez Luna, Omar @ 2010-01-14  0:23 UTC (permalink / raw)
  To: linux-omap; +Cc: Menon, Nishanth, Hiroshi Doyu, Ameya Palande, Felipe Contreras

>From: Ramirez Luna, Omar
>Sent: Monday, January 11, 2010 7:01 PM
>To: linux-omap
>Cc: Ramirez Luna, Omar; Menon, Nishanth; Hiroshi Doyu; Ameya Palande; Felipe Contreras
>Subject: [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated
>
>Mark unused ioctls as deprecated for future removal
>and print an error message whenever they are used.
>
>Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
>---
> arch/arm/plat-omap/include/dspbridge/wcdioctl.h |   11 ++++--
> drivers/dsp/bridge/pmgr/wcd.c                   |   38 +++++++++--------------
> 2 files changed, 22 insertions(+), 27 deletions(-)
>

Pushed to dspbridge

- omar

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check
  2010-01-12  1:00       ` [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check Omar Ramirez Luna
  2010-01-12  1:00         ` [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl Omar Ramirez Luna
@ 2010-01-14  0:23         ` Ramirez Luna, Omar
  1 sibling, 0 replies; 18+ messages in thread
From: Ramirez Luna, Omar @ 2010-01-14  0:23 UTC (permalink / raw)
  To: linux-omap; +Cc: Menon, Nishanth, Hiroshi Doyu, Ameya Palande, Felipe Contreras

>From: Ramirez Luna, Omar
>Sent: Monday, January 11, 2010 7:01 PM
>To: linux-omap
>Cc: Ramirez Luna, Omar; Menon, Nishanth; Hiroshi Doyu; Ameya Palande; Felipe Contreras
>Subject: [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check
>
>This patch removes the runtime check of device
>ioctl array.
>
>Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
>---
> drivers/dsp/bridge/pmgr/wcd.c |    6 ------
> 1 files changed, 0 insertions(+), 6 deletions(-)
>

Pushed to dspbridge

- omar

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl
  2010-01-12  1:00         ` [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl Omar Ramirez Luna
  2010-01-12  1:00           ` [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Omar Ramirez Luna
@ 2010-01-14  0:23           ` Ramirez Luna, Omar
  1 sibling, 0 replies; 18+ messages in thread
From: Ramirez Luna, Omar @ 2010-01-14  0:23 UTC (permalink / raw)
  To: linux-omap; +Cc: Menon, Nishanth, Hiroshi Doyu, Ameya Palande, Felipe Contreras

>From: Ramirez Luna, Omar
>Sent: Monday, January 11, 2010 7:01 PM
>To: linux-omap
>Cc: Ramirez Luna, Omar; Menon, Nishanth; Hiroshi Doyu; Ameya Palande; Felipe Contreras
>Subject: [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl
>
>Trivial cleanup, rename pResult to result for WCD_CallDevIOCtl
>
>Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
>---
> drivers/dsp/bridge/pmgr/wcd.c |    4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>

Pushed to dspbridge

- omar

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls
  2010-01-12  1:00           ` [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Omar Ramirez Luna
  2010-01-12  1:00             ` [PATCH v3 7/7] DSPBRIDGE: remove WCD_Cmd structure Omar Ramirez Luna
  2010-01-12  1:09             ` [RESEND][PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Ramirez Luna, Omar
@ 2010-01-14  0:24             ` Ramirez Luna, Omar
  2 siblings, 0 replies; 18+ messages in thread
From: Ramirez Luna, Omar @ 2010-01-14  0:24 UTC (permalink / raw)
  To: linux-omap; +Cc: Menon, Nishanth, Hiroshi Doyu, Ameya Palande, Felipe Contreras

>From: Ramirez Luna, Omar
>Sent: Monday, January 11, 2010 7:01 PM
>To: linux-omap
>Cc: Ramirez Luna, Omar; Menon, Nishanth; Hiroshi Doyu; Ameya Palande; Felipe Contreras
>Subject: [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls
>
>- Use standard convention to define ioctls.
>
>Currently 0xDB is used as identifier for dspbridge.
>
>Discussion:
>http://marc.info/?l=linux-omap&m=126297631603035&w=2
>
>WARNING:
>An update in api ioctl definitions is required, usually replacing
>to a new libbridge (with ioctl patch) should be enough. Other
>clients (not using libbridge) need to update their ioctl numbers
>manually.
>
>Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
>---
> arch/arm/plat-omap/include/dspbridge/wcdioctl.h |  181 ++++++++++++---------
> drivers/dsp/bridge/pmgr/wcd.c                   |  200 +++++++++++++++--------
> drivers/dsp/bridge/rmgr/drv_interface.c         |    3 -
> 3 files changed, 237 insertions(+), 147 deletions(-)
>

Pushed to dspbridge

- omar

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 0/7] misc patches (for ioctl and ssi)
  2010-01-12  1:00 [PATCH v3 0/7] misc patches (for ioctl and ssi) Omar Ramirez Luna
  2010-01-12  1:00 ` [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap Omar Ramirez Luna
@ 2010-01-15 13:06 ` Ameya Palande
  2010-01-16  2:04   ` Ramirez Luna, Omar
  1 sibling, 1 reply; 18+ messages in thread
From: Ameya Palande @ 2010-01-15 13:06 UTC (permalink / raw)
  To: Omar Ramirez Luna
  Cc: linux-omap, Nishanth Menon, Doyu Hiroshi (Nokia-D/Helsinki),
	Contreras Felipe

Hi Omar,

On Tue, 2010-01-12 at 02:00 +0100, ext Omar Ramirez Luna wrote:
> Ioctl numbers has changed, this will require an update on libbridge and clients accesing directly to the driver
> 
> - IO_ADDRESS is replaced for ioremap.
> 
> *v3
> - modified:
> 	DSPBRIDGE: replace IO_ADDRESS with ioremap, checking
> 	the result of ioremap
> 	(http://marc.info/?l=linux-omap&m=126324914710445&w=2).
> 	DSPBRIDGE: Use _IOxx macro to define ioctls (as per Nishanth comments)
> - new patch:
>   	DSPBRIDGE: remove WCD_Cmd structure
>   	
> *v2
> - dropped from the series:
> 	DSPBRIDGE: Increased DMM size to 256MB
> 	DSPBRIDGE: sysfs entry for global driver state
> - will be kept in bridge-pm
> 	DSPBRIDGE: Use dspbridge to initialize platform data
> 	DSPBRIDGE: change to cpufreq_register_notifier for OPP changes
> 	DSPBRIDGE: Fix header locations mach to plat

Where is the bridge-pm repository?
I am trying to compile dspbridge branch with HEAD commit as: DSPBRIDGE:
Use _IOxx macro to define ioctls. But compilation fails because of
following missing commit:

DSPBRIDGE: Fix header locations mach to plat

Can you move this commit from bridge-pm to dspbridge so that dspbridge
is in compilable state?

Thanks!

Cheers,
Ameya.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH v3 0/7] misc patches (for ioctl and ssi)
  2010-01-15 13:06 ` [PATCH v3 0/7] misc patches (for ioctl and ssi) Ameya Palande
@ 2010-01-16  2:04   ` Ramirez Luna, Omar
  0 siblings, 0 replies; 18+ messages in thread
From: Ramirez Luna, Omar @ 2010-01-16  2:04 UTC (permalink / raw)
  To: Ameya Palande
  Cc: linux-omap, Menon, Nishanth, Doyu Hiroshi (Nokia-D/Helsinki),
	Contreras Felipe

Hi Ameya,

>Hi Omar,
>
>On Tue, 2010-01-12 at 02:00 +0100, ext Omar Ramirez Luna wrote:
>> Ioctl numbers has changed, this will require an update on libbridge 
>> and clients accesing directly to the driver
>> 
>> - IO_ADDRESS is replaced for ioremap.
>> 
>> *v3
>> - modified:
>> 	DSPBRIDGE: replace IO_ADDRESS with ioremap, checking
>> 	the result of ioremap
>> 	(http://marc.info/?l=linux-omap&m=126324914710445&w=2).
>> 	DSPBRIDGE: Use _IOxx macro to define ioctls (as per Nishanth 
>> comments)
>> - new patch:
>>   	DSPBRIDGE: remove WCD_Cmd structure
>>   	
>> *v2
>> - dropped from the series:
>> 	DSPBRIDGE: Increased DMM size to 256MB
>> 	DSPBRIDGE: sysfs entry for global driver state
>> - will be kept in bridge-pm
>> 	DSPBRIDGE: Use dspbridge to initialize platform data
>> 	DSPBRIDGE: change to cpufreq_register_notifier for OPP changes
>> 	DSPBRIDGE: Fix header locations mach to plat
>
>Where is the bridge-pm repository?
>I am trying to compile dspbridge branch with HEAD commit as: DSPBRIDGE:
>Use _IOxx macro to define ioctls. But compilation fails because of following
>missing commit:
>
>DSPBRIDGE: Fix header locations mach to plat
>
>Can you move this commit from bridge-pm to dspbridge so that dspbridge is
>in compilable state?

This will break any attempt to compile dspbridge as is on LO.

I have created dspbridge-pm, however patch set to compile this branch has just
been sent as nobody reviewed it yet.

For the patches please refer to: http://marc.info/?l=linux-omap&m=126360672728600&w=2

Dspbridge-pm at dev.omapzoom.org
http://dev.omapzoom.org/?p=tidspbridge/kernel-dspbridge.git;a=shortlog;h=refs/heads/dspbridge-pm

The branch was created on top of pm-2.6.32.

Best Regards,

omar

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2010-01-16  2:04 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-12  1:00 [PATCH v3 0/7] misc patches (for ioctl and ssi) Omar Ramirez Luna
2010-01-12  1:00 ` [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap Omar Ramirez Luna
2010-01-12  1:00   ` [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration Omar Ramirez Luna
2010-01-12  1:00     ` [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated Omar Ramirez Luna
2010-01-12  1:00       ` [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check Omar Ramirez Luna
2010-01-12  1:00         ` [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl Omar Ramirez Luna
2010-01-12  1:00           ` [PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Omar Ramirez Luna
2010-01-12  1:00             ` [PATCH v3 7/7] DSPBRIDGE: remove WCD_Cmd structure Omar Ramirez Luna
2010-01-12  1:09               ` Nishanth Menon
2010-01-12  1:09             ` [RESEND][PATCH v3 6/7] DSPBRIDGE: Use _IOxx macro to define ioctls Ramirez Luna, Omar
2010-01-14  0:24             ` [PATCH " Ramirez Luna, Omar
2010-01-14  0:23           ` [PATCH v3 5/7] DSPBRIDGE: Rename pResult to result for WCD_CallDevIOCtl Ramirez Luna, Omar
2010-01-14  0:23         ` [PATCH v3 4/7] DSPBRIDGE: remove ioctl runtime check Ramirez Luna, Omar
2010-01-14  0:23       ` [PATCH v3 3/7] DSPBRIDGE: Mark unused ioctls as deprecated Ramirez Luna, Omar
2010-01-14  0:22     ` [PATCH v3 2/7] DSPBRIDGE: Replace magic numbers in SSI configuration Ramirez Luna, Omar
2010-01-13 23:57   ` [PATCH v3 1/7] DSPBRIDGE: replace IO_ADDRESS with ioremap Ramirez Luna, Omar
2010-01-15 13:06 ` [PATCH v3 0/7] misc patches (for ioctl and ssi) Ameya Palande
2010-01-16  2:04   ` Ramirez Luna, Omar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox