summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorOmar Ramirez Luna <omar.ramirez@ti.com>2009-07-12 21:32:15 -0500
committerHari Kanigeri <h-kanigeri2@ti.com>2009-11-06 18:01:26 -0600
commit49bdd9e34aed72d06bc66c7dda3c6ceb001fae9d (patch)
tree1feac16efa543dbd4a91009f2b19badadfba129c /drivers
parent39c0bf60856616d2866ec3334c4507eae1a6a089 (diff)
DSPBRIDGE: change ioctl base number
For newer kernels the ioctl numbers have changed, passing ioctl number 1 or 2, will call kernel functions inside the ioctl syscall switch. This patch changes the base number for bridge ioctls to start on 101. For this to work, the same change has to be propagated to bridge API. This patch should be temporary until the _IOx kernel calls are used to define ioctl numbers withing bridge driver. Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/dsp/bridge/pmgr/wcd.c10
-rw-r--r--[-rwxr-xr-x]drivers/dsp/bridge/rmgr/drv_interface.c3
2 files changed, 7 insertions, 6 deletions
diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index 859043dea046..08d0854908b7 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -256,7 +256,10 @@ static struct WCD_Cmd WCD_cmdTable[] = {
inline DSP_STATUS WCD_CallDevIOCtl(u32 cmd, union Trapped_Args *args,
u32 *pResult)
{
- if ((cmd < (sizeof(WCD_cmdTable) / sizeof(struct WCD_Cmd)))) {
+ int cmdtable = sizeof(WCD_cmdTable) / sizeof(struct WCD_Cmd);
+ cmd -= CMD_BASE;
+
+ if (cmd < cmdtable) {
/* make the fxn call via the cmd table */
*pResult = (*WCD_cmdTable[cmd].fxn) (args);
return DSP_SOK;
@@ -307,9 +310,10 @@ bool WCD_Init(void)
#ifdef DEBUG
/* runtime check of Device IOCtl array. */
u32 i;
- for (i = 1; i < (sizeof(WCD_cmdTable) / sizeof(struct WCD_Cmd)); i++)
- DBC_Assert(WCD_cmdTable[i - 1].dwIndex == i);
+ int cmdtable = sizeof(WCD_cmdTable) / sizeof(struct WCD_Cmd);
+ for (i = 0; i < cmdtable; i++)
+ DBC_Assert(WCD_cmdTable[i].dwIndex == i + CMD_BASE);
#endif
if (WCD_cRefs == 0) {
/* initialize all SERVICES modules */
diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c
index 9779cd4517e7..f62007399c75 100755..100644
--- a/drivers/dsp/bridge/rmgr/drv_interface.c
+++ b/drivers/dsp/bridge/rmgr/drv_interface.c
@@ -688,9 +688,6 @@ static int bridge_ioctl(struct inode *ip, 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));