diff options
author | Omar Ramirez Luna <omar.ramirez@ti.com> | 2009-07-12 21:32:15 -0500 |
---|---|---|
committer | Hari Kanigeri <h-kanigeri2@ti.com> | 2009-11-06 18:01:26 -0600 |
commit | 49bdd9e34aed72d06bc66c7dda3c6ceb001fae9d (patch) | |
tree | 1feac16efa543dbd4a91009f2b19badadfba129c /drivers | |
parent | 39c0bf60856616d2866ec3334c4507eae1a6a089 (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.c | 10 | ||||
-rw-r--r--[-rwxr-xr-x] | drivers/dsp/bridge/rmgr/drv_interface.c | 3 |
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)); |