Commit a44ca244 authored by Hiroshi DOYU's avatar Hiroshi DOYU Committed by Juha Yrjola

ARM: OMAP: DSPGW: cleanup

- cleanup whitespaces
- fix some build errors
Signed-off-by: default avatarHiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: default avatarJuha Yrjola <juha.yrjola@solidboot.com>
parent 848a8f94
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -98,10 +98,10 @@ struct mem_sync_struct { ...@@ -98,10 +98,10 @@ struct mem_sync_struct {
/* struct mbcmd and union mbcmd_hw must be compatible */ /* struct mbcmd and union mbcmd_hw must be compatible */
struct mbcmd { struct mbcmd {
u32 data:16; u32 data:16;
u32 cmd_l:8; u32 cmd_l:8;
u32 cmd_h:7; u32 cmd_h:7;
u32 seq:1; u32 seq:1;
}; };
#define MBCMD_INIT(h, l, d) { \ #define MBCMD_INIT(h, l, d) { \
...@@ -111,9 +111,9 @@ struct mbcmd { ...@@ -111,9 +111,9 @@ struct mbcmd {
} }
struct mb_exarg { struct mb_exarg {
u8 tid; u8 tid;
int argc; int argc;
u16 *argv; u16 *argv;
}; };
extern struct mbx *mbx_dsp; extern struct mbx *mbx_dsp;
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -100,6 +100,7 @@ static const struct cmdinfo ...@@ -100,6 +100,7 @@ static const struct cmdinfo
cif_err = { "ERR", CMD_L_TYPE_SUBCMD, mbx_err }, cif_err = { "ERR", CMD_L_TYPE_SUBCMD, mbx_err },
cif_dbg = { "DBG", CMD_L_TYPE_NULL, mbx_dbg }; cif_dbg = { "DBG", CMD_L_TYPE_NULL, mbx_dbg };
#define MBX_CMD_MAX 0x80
const struct cmdinfo *cmdinfo[MBX_CMD_MAX] = { const struct cmdinfo *cmdinfo[MBX_CMD_MAX] = {
[MBX_CMD_DSP_WDSND] = &cif_wdsnd, [MBX_CMD_DSP_WDSND] = &cif_wdsnd,
[MBX_CMD_DSP_WDREQ] = &cif_wdreq, [MBX_CMD_DSP_WDREQ] = &cif_wdreq,
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -128,7 +128,7 @@ static int misc_mbcmd_response(struct mbcmd *mb, int argc, int match_cmd_l_flag) ...@@ -128,7 +128,7 @@ static int misc_mbcmd_response(struct mbcmd *mb, int argc, int match_cmd_l_flag)
(misc_mb_wait.cmd_h != mb->cmd_h) || (misc_mb_wait.cmd_h != mb->cmd_h) ||
(match_cmd_l_flag && (misc_mb_wait.cmd_l != mb->cmd_l))) { (match_cmd_l_flag && (misc_mb_wait.cmd_l != mb->cmd_l))) {
const struct cmdinfo *ci = cmdinfo[mb->cmd_h]; const struct cmdinfo *ci = cmdinfo[mb->cmd_h];
char cmdstr[32]; char cmdstr[32];
if (ci->cmd_l_type == CMD_L_TYPE_SUBCMD) if (ci->cmd_l_type == CMD_L_TYPE_SUBCMD)
sprintf(cmdstr, "%s:%s", ci->name, subcmd_name(mb)); sprintf(cmdstr, "%s:%s", ci->name, subcmd_name(mb));
...@@ -173,7 +173,7 @@ static int misc_mbcmd_response(struct mbcmd *mb, int argc, int match_cmd_l_flag) ...@@ -173,7 +173,7 @@ static int misc_mbcmd_response(struct mbcmd *mb, int argc, int match_cmd_l_flag)
static int dsp_regread(enum dsp_space_e space, u16 adr, u16 *val) static int dsp_regread(enum dsp_space_e space, u16 adr, u16 *val)
{ {
u8 cmd_l = (space == SPACE_MEM) ? REGRW_MEMR : REGRW_IOR; u8 cmd_l = (space == SPACE_MEM) ? REGRW_MEMR : REGRW_IOR;
int ret; int ret;
ret = misc_mbcompose_send_and_wait(REGRW, cmd_l, adr, val); ret = misc_mbcompose_send_and_wait(REGRW, cmd_l, adr, val);
if ((ret < 0) && (ret != -EINTR)) if ((ret < 0) && (ret != -EINTR))
...@@ -356,7 +356,7 @@ again: ...@@ -356,7 +356,7 @@ again:
goto again; goto again;
} }
break; break;
/* /*
* suspend / resume * suspend / resume
* DSP is not reset within this code, but done in omap_pm_suspend. * DSP is not reset within this code, but done in omap_pm_suspend.
...@@ -392,7 +392,7 @@ again: ...@@ -392,7 +392,7 @@ again:
} }
break; break;
case CFGSTAT_RESUME: case CFGSTAT_RESUME:
if (cfgstat != CFGSTAT_SUSPEND) { if (cfgstat != CFGSTAT_SUSPEND) {
printk(KERN_WARNING printk(KERN_WARNING
...@@ -403,7 +403,7 @@ again: ...@@ -403,7 +403,7 @@ again:
} }
st_req = CFGSTAT_READY; st_req = CFGSTAT_READY;
break; break;
default: default:
BUG(); BUG();
...@@ -725,7 +725,7 @@ void mbx_dspcfg(struct mbcmd *mb) ...@@ -725,7 +725,7 @@ void mbx_dspcfg(struct mbcmd *mb)
return; return;
#ifdef OLD_BINARY_SUPPORT #ifdef OLD_BINARY_SUPPORT
else if ((mbx_revision == MBREV_3_0) || else if ((mbx_revision == MBREV_3_0) ||
(mbx_revision == MBREV_3_2)) { (mbx_revision == MBREV_3_2)) {
printk(KERN_WARNING printk(KERN_WARNING
"mbx: ***** old DSP binary *****\n" "mbx: ***** old DSP binary *****\n"
" Please update your DSP application.\n"); " Please update your DSP application.\n");
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -109,7 +109,7 @@ void dsp_ctl_core_exit(void) ...@@ -109,7 +109,7 @@ void dsp_ctl_core_exit(void)
for (i = 0; i < ARRAY_SIZE(dev_list); i++) { for (i = 0; i < ARRAY_SIZE(dev_list); i++) {
class_device_destroy(dsp_ctl_class, class_device_destroy(dsp_ctl_class,
MKDEV(OMAP_DSP_CTL_MAJOR, MKDEV(OMAP_DSP_CTL_MAJOR,
dev_list[i].minor)); dev_list[i].minor));
} }
class_destroy(dsp_ctl_class); class_destroy(dsp_ctl_class);
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
* by Paul Mundt <paul.mundt@nokia.com> * by Paul Mundt <paul.mundt@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
#include "../mailbox_hw.h" #include "../mailbox_hw.h"
#include "dsp.h" #include "dsp.h"
#include "ioctl.h" #include "ioctl.h"
#include "ipbuf.h"
#ifdef CONFIG_ARCH_OMAP2 #ifdef CONFIG_ARCH_OMAP2
#define IOMAP_VAL 0x3f #define IOMAP_VAL 0x3f
...@@ -592,7 +593,7 @@ static int exmap_set_armmmu(unsigned long virt, unsigned long phys, ...@@ -592,7 +593,7 @@ static int exmap_set_armmmu(unsigned long virt, unsigned long phys,
} }
/* XXX: T.Kobayashi /* XXX: T.Kobayashi
* A process can have old mappings. if we want to clear a pmd, * A process can have old mappings. if we want to clear a pmd,
* we need to do it for all proceeses that use the old mapping. * we need to do it for all proceeses that use the old mapping.
*/ */
#if 0 #if 0
...@@ -787,7 +788,7 @@ int dsp_address_validate(void *p, size_t len, char *fmt, ...) ...@@ -787,7 +788,7 @@ int dsp_address_validate(void *p, size_t len, char *fmt, ...)
} }
/* /*
* exmap_use(), unuse(): * exmap_use(), unuse():
* when the mapped area is exported to user space with mmap, * when the mapped area is exported to user space with mmap,
* the usecount is incremented. * the usecount is incremented.
* while the usecount > 0, that area can't be released. * while the usecount > 0, that area can't be released.
...@@ -1401,8 +1402,8 @@ static void exmap_flush(void) ...@@ -1401,8 +1402,8 @@ static void exmap_flush(void)
#endif /* CONFIG_FB */ #endif /* CONFIG_FB */
#ifdef CONFIG_FB_OMAP_LCDC_EXTERNAL #ifdef CONFIG_FB_OMAP_LCDC_EXTERNAL
static int omapfb_notifier_cb(struct omapfb_notifier_block *omapfb_nb, static int omapfb_notifier_cb(struct notifier_block *omapfb_nb,
unsigned long event, struct omapfb_device *fbdev) unsigned long event, void *fbi)
{ {
/* XXX */ /* XXX */
printk("omapfb_notifier_cb(): event = %s\n", printk("omapfb_notifier_cb(): event = %s\n",
...@@ -2007,8 +2008,7 @@ static void fbupd_response(void *arg) ...@@ -2007,8 +2008,7 @@ static void fbupd_response(void *arg)
{ {
int status; int status;
status = dsp_mbsend(MBCMD(KFUNC), OMAP_DSP_MBCMD_KFUNC_FBCTL, status = mbcompose_send(KFUNC, KFUNC_FBCTL, FBCTL_UPD);
OMAP_DSP_MBCMD_FBCTL_UPD);
if (status < 0) { if (status < 0) {
/* FIXME: DSP is busy !! */ /* FIXME: DSP is busy !! */
printk(KERN_ERR printk(KERN_ERR
...@@ -2031,8 +2031,8 @@ void mbx_fbctl_upd(void) ...@@ -2031,8 +2031,8 @@ void mbx_fbctl_upd(void)
volatile unsigned short *buf = ipbuf_sys_da->d; volatile unsigned short *buf = ipbuf_sys_da->d;
/* FIXME: try count sometimes exceeds 1000. */ /* FIXME: try count sometimes exceeds 1000. */
if (sync_with_dsp(&ipbuf_sys_da->s, OMAP_DSP_TID_ANON, 5000) < 0) { if (sync_with_dsp(&ipbuf_sys_da->s, TID_ANON, 5000) < 0) {
printk(KERN_ERR "mbx: FBCTL:UPD - IPBUF sync failed!\n"); printk(KERN_ERR "mbox: FBCTL:UPD - IPBUF sync failed!\n");
return; return;
} }
win.x = buf[0]; win.x = buf[0];
...@@ -2048,7 +2048,7 @@ void mbx_fbctl_upd(void) ...@@ -2048,7 +2048,7 @@ void mbx_fbctl_upd(void)
return; return;
} }
//printk("calling omapfb_update_window_async()\n"); //printk("calling omapfb_update_window_async()\n");
omapfb_update_window_async(&win, fbupd_cb, NULL); omapfb_update_window_async(registered_fb[1], &win, fbupd_cb, NULL);
} }
#else /* CONFIG_FB_OMAP_LCDC_EXTERNAL */ #else /* CONFIG_FB_OMAP_LCDC_EXTERNAL */
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -157,7 +157,7 @@ int ipbuf_sys_config(void *p, enum arm_dsp_dir_e dir) ...@@ -157,7 +157,7 @@ int ipbuf_sys_config(void *p, enum arm_dsp_dir_e dir)
ipbuf_sys_da = p; ipbuf_sys_da = p;
else else
ipbuf_sys_ad = p; ipbuf_sys_ad = p;
return 0; return 0;
} }
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -61,18 +61,18 @@ struct ipbuf_head { ...@@ -61,18 +61,18 @@ struct ipbuf_head {
extern struct ipbcfg ipbcfg; extern struct ipbcfg ipbcfg;
extern struct ipbuf_sys *ipbuf_sys_da, *ipbuf_sys_ad; extern struct ipbuf_sys *ipbuf_sys_da, *ipbuf_sys_ad;
#define ipb_bsycnt_inc(ipbcfg) \ #define ipb_bsycnt_inc(ipbcfg) \
do { \ do { \
disable_mbx_irq(mbx_dsp); \ disable_mbx_irq(mbx_dsp); \
(ipbcfg)->bsycnt++; \ (ipbcfg)->bsycnt++; \
enable_mbx_irq(mbx_dsp); \ enable_mbx_irq(mbx_dsp); \
} while(0) } while(0)
#define ipb_bsycnt_dec(ipbcfg) \ #define ipb_bsycnt_dec(ipbcfg) \
do { \ do { \
disable_mbx_irq(mbx_dsp); \ disable_mbx_irq(mbx_dsp); \
(ipbcfg)->bsycnt--; \ (ipbcfg)->bsycnt--; \
enable_mbx_irq(mbx_dsp); \ enable_mbx_irq(mbx_dsp); \
} while(0) } while(0)
#define dsp_mem_enable_ipbuf() dsp_mem_enable(ipbcfg.base) #define dsp_mem_enable_ipbuf() dsp_mem_enable(ipbcfg.base)
...@@ -84,23 +84,23 @@ struct ipblink { ...@@ -84,23 +84,23 @@ struct ipblink {
u16 tail; u16 tail;
}; };
#define IPBLINK_INIT { \ #define IPBLINK_INIT { \
.lock = SPIN_LOCK_UNLOCKED, \ .lock = SPIN_LOCK_UNLOCKED, \
.top = BID_NULL, \ .top = BID_NULL, \
.tail = BID_NULL, \ .tail = BID_NULL, \
} }
#define INIT_IPBLINK(link) \ #define INIT_IPBLINK(link) \
do { \ do { \
spin_lock_init(&(link)->lock); \ spin_lock_init(&(link)->lock); \
(link)->top = BID_NULL; \ (link)->top = BID_NULL; \
(link)->tail = BID_NULL; \ (link)->tail = BID_NULL; \
} while(0) } while(0)
#define RESET_IPBLINK(link) \ #define RESET_IPBLINK(link) \
do { \ do { \
(link)->top = BID_NULL; \ (link)->top = BID_NULL; \
(link)->tail = BID_NULL; \ (link)->tail = BID_NULL; \
} while(0) } while(0)
#define ipblink_empty(link) ((link)->top == BID_NULL) #define ipblink_empty(link) ((link)->top == BID_NULL)
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -114,7 +114,7 @@ struct taskdev { ...@@ -114,7 +114,7 @@ struct taskdev {
long state; long state;
struct rw_semaphore state_sem; struct rw_semaphore state_sem;
wait_queue_head_t state_wait_q; wait_queue_head_t state_wait_q;
struct mutex usecount_mutex; struct mutex usecount_lock;
unsigned int usecount; unsigned int usecount;
char name[TNM_LEN]; char name[TNM_LEN];
struct file_operations fops; struct file_operations fops;
...@@ -315,7 +315,7 @@ static int devstate_write_lock_timeout(struct taskdev *dev, long devstate, ...@@ -315,7 +315,7 @@ static int devstate_write_lock_timeout(struct taskdev *dev, long devstate,
down_write(&dev->state_sem); down_write(&dev->state_sem);
if (dev->state & devstate) if (dev->state & devstate)
return 0; return 0;
add_wait_queue(&dev->state_wait_q, &wait); add_wait_queue(&dev->state_wait_q, &wait);
do { do {
set_current_state(TASK_INTERRUPTIBLE); set_current_state(TASK_INTERRUPTIBLE);
...@@ -344,22 +344,23 @@ static int devstate_write_lock_and_test(struct taskdev *dev, long devstate) ...@@ -344,22 +344,23 @@ static int devstate_write_lock_and_test(struct taskdev *dev, long devstate)
down_write(&dev->state_sem); down_write(&dev->state_sem);
if (dev->state & devstate) /* success */ if (dev->state & devstate) /* success */
return 1; return 1;
/* failure */ /* failure */
up_write(&dev->state_sem); up_write(&dev->state_sem);
return -1; return -1;
} }
static int taskdev_lock_interruptible(struct taskdev *dev, struct mutex *mutex) static int taskdev_lock_interruptible(struct taskdev *dev,
struct mutex *lock)
{ {
int ret; int ret;
if (has_taskdev_lock(dev)) if (has_taskdev_lock(dev))
ret = mutex_lock_interruptible(mutex); ret = mutex_lock_interruptible(lock);
else { else {
if ((ret = mutex_lock_interruptible(&dev->lock)) != 0) if ((ret = mutex_lock_interruptible(&dev->lock)) != 0)
return ret; return ret;
ret = mutex_lock_interruptible(mutex); ret = mutex_lock_interruptible(lock);
mutex_unlock(&dev->lock); mutex_unlock(&dev->lock);
} }
...@@ -367,23 +368,23 @@ static int taskdev_lock_interruptible(struct taskdev *dev, struct mutex *mutex) ...@@ -367,23 +368,23 @@ static int taskdev_lock_interruptible(struct taskdev *dev, struct mutex *mutex)
} }
static int taskdev_lock_and_statelock_attached(struct taskdev *dev, static int taskdev_lock_and_statelock_attached(struct taskdev *dev,
struct mutex *mutex) struct mutex *lock)
{ {
int ret; int ret;
if (!devstate_read_lock_and_test(dev, TASKDEV_ST_ATTACHED)) if (!devstate_read_lock_and_test(dev, TASKDEV_ST_ATTACHED))
return -ENODEV; return -ENODEV;
if ((ret = taskdev_lock_interruptible(dev, mutex)) != 0) if ((ret = taskdev_lock_interruptible(dev, lock)) != 0)
devstate_read_unlock(dev); devstate_read_unlock(dev);
return ret; return ret;
} }
static __inline__ void taskdev_unlock_and_stateunlock(struct taskdev *dev, static __inline__ void taskdev_unlock_and_stateunlock(struct taskdev *dev,
struct mutex *mutex) struct mutex *lock)
{ {
mutex_unlock(mutex); mutex_unlock(lock);
devstate_read_unlock(dev); devstate_read_unlock(dev);
} }
...@@ -430,7 +431,7 @@ static int taskdev_set_fifosz(struct taskdev *dev, unsigned long sz) ...@@ -430,7 +431,7 @@ static int taskdev_set_fifosz(struct taskdev *dev, unsigned long sz)
} }
if ((sz == 0) || (sz & 1)) { if ((sz == 0) || (sz & 1)) {
printk(KERN_ERR "omapdsp: illegal buffer size! (%ld)\n" printk(KERN_ERR "omapdsp: illegal buffer size! (%ld)\n"
"it must be even and non-zero value.\n", sz); "it must be even and non-zero value.\n", sz);
return -EINVAL; return -EINVAL;
} }
...@@ -528,7 +529,7 @@ static int dsp_task_config(struct dsptask *task, u8 tid) ...@@ -528,7 +529,7 @@ static int dsp_task_config(struct dsptask *task, u8 tid)
ret = -EINVAL; ret = -EINVAL;
goto fail_out; goto fail_out;
} }
/* mmap buffer configuration check */ /* mmap buffer configuration check */
if ((task->map_length > 0) && if ((task->map_length > 0) &&
((!is_aligned((unsigned long)task->map_base, PAGE_SIZE)) || ((!is_aligned((unsigned long)task->map_base, PAGE_SIZE)) ||
...@@ -1324,7 +1325,7 @@ static int dsp_task_ioctl(struct inode *inode, struct file *file, ...@@ -1324,7 +1325,7 @@ static int dsp_task_ioctl(struct inode *inode, struct file *file,
ret = taskdev_unlock(dev); ret = taskdev_unlock(dev);
break; break;
case TASK_IOCTL_BFLSH: case TASK_IOCTL_BFLSH:
if (taskdev_lock_and_statelock_attached(dev, &dev->read_mutex)) if (taskdev_lock_and_statelock_attached(dev, &dev->read_mutex))
return -ENODEV; return -ENODEV;
ret = taskdev_flush_buf(dev); ret = taskdev_flush_buf(dev);
...@@ -1469,7 +1470,7 @@ static int dsp_task_open(struct inode *inode, struct file *file) ...@@ -1469,7 +1470,7 @@ static int dsp_task_open(struct inode *inode, struct file *file)
return -ENODEV; return -ENODEV;
restart: restart:
mutex_lock(&dev->usecount_mutex); mutex_lock(&dev->usecount_lock);
down_write(&dev->state_sem); down_write(&dev->state_sem);
/* state can be NOTASK, ATTACHED/FREEZED, KILLING, GARBAGE or INVALID here. */ /* state can be NOTASK, ATTACHED/FREEZED, KILLING, GARBAGE or INVALID here. */
...@@ -1481,15 +1482,16 @@ restart: ...@@ -1481,15 +1482,16 @@ restart:
case TASKDEV_ST_INVALID: case TASKDEV_ST_INVALID:
up_write(&dev->state_sem); up_write(&dev->state_sem);
mutex_unlock(&dev->usecount_mutex); mutex_unlock(&dev->usecount_lock);
return -ENODEV; return -ENODEV;
case TASKDEV_ST_FREEZED: case TASKDEV_ST_FREEZED:
case TASKDEV_ST_KILLING: case TASKDEV_ST_KILLING:
case TASKDEV_ST_GARBAGE: case TASKDEV_ST_GARBAGE:
case TASKDEV_ST_DELREQ:
/* on the kill process. wait until it becomes NOTASK. */ /* on the kill process. wait until it becomes NOTASK. */
up_write(&dev->state_sem); up_write(&dev->state_sem);
mutex_unlock(&dev->usecount_mutex); mutex_unlock(&dev->usecount_lock);
if (devstate_write_lock(dev, TASKDEV_ST_NOTASK) < 0) if (devstate_write_lock(dev, TASKDEV_ST_NOTASK) < 0)
return -EINTR; return -EINTR;
devstate_write_unlock(dev); devstate_write_unlock(dev);
...@@ -1505,7 +1507,7 @@ restart: ...@@ -1505,7 +1507,7 @@ restart:
TASKDEV_ST_ADDFAIL) < 0) { TASKDEV_ST_ADDFAIL) < 0) {
/* cancelled */ /* cancelled */
if (!devstate_write_lock_and_test(dev, TASKDEV_ST_ADDREQ)) { if (!devstate_write_lock_and_test(dev, TASKDEV_ST_ADDREQ)) {
mutex_unlock(&dev->usecount_mutex); mutex_unlock(&dev->usecount_lock);
/* out of control ??? */ /* out of control ??? */
return -EINTR; return -EINTR;
} }
...@@ -1533,7 +1535,7 @@ attached: ...@@ -1533,7 +1535,7 @@ attached:
proc_list_add(&dev->proc_list_lock, &dev->proc_list, current, file); proc_list_add(&dev->proc_list_lock, &dev->proc_list, current, file);
file->f_op = &dev->fops; file->f_op = &dev->fops;
up_write(&dev->state_sem); up_write(&dev->state_sem);
mutex_unlock(&dev->usecount_mutex); mutex_unlock(&dev->usecount_lock);
#ifdef DSP_PTE_FREE /* not used currently. */ #ifdef DSP_PTE_FREE /* not used currently. */
dsp_map_update(current); dsp_map_update(current);
...@@ -1544,7 +1546,7 @@ attached: ...@@ -1544,7 +1546,7 @@ attached:
change_out: change_out:
wake_up_interruptible_all(&dev->state_wait_q); wake_up_interruptible_all(&dev->state_wait_q);
up_write(&dev->state_sem); up_write(&dev->state_sem);
mutex_unlock(&dev->usecount_mutex); mutex_unlock(&dev->usecount_lock);
return ret; return ret;
} }
...@@ -1561,10 +1563,10 @@ static int dsp_task_release(struct inode *inode, struct file *file) ...@@ -1561,10 +1563,10 @@ static int dsp_task_release(struct inode *inode, struct file *file)
taskdev_unlock(dev); taskdev_unlock(dev);
proc_list_del(&dev->proc_list_lock, &dev->proc_list, current, file); proc_list_del(&dev->proc_list_lock, &dev->proc_list, current, file);
mutex_lock(&dev->usecount_mutex); mutex_lock(&dev->usecount_lock);
if (--dev->usecount > 0) { if (--dev->usecount > 0) {
/* other processes are using this device. no state change. */ /* other processes are using this device. no state change. */
mutex_unlock(&dev->usecount_mutex); mutex_unlock(&dev->usecount_lock);
return 0; return 0;
} }
...@@ -1594,7 +1596,7 @@ static int dsp_task_release(struct inode *inode, struct file *file) ...@@ -1594,7 +1596,7 @@ static int dsp_task_release(struct inode *inode, struct file *file)
} }
up_write(&dev->state_sem); up_write(&dev->state_sem);
mutex_unlock(&dev->usecount_mutex); mutex_unlock(&dev->usecount_lock);
return 0; return 0;
} }
...@@ -1806,7 +1808,7 @@ static int taskdev_init(struct taskdev *dev, char *name, unsigned char minor) ...@@ -1806,7 +1808,7 @@ static int taskdev_init(struct taskdev *dev, char *name, unsigned char minor)
dev->name[TNM_LEN-1] = '\0'; dev->name[TNM_LEN-1] = '\0';
dev->state = (minor < n_task) ? TASKDEV_ST_ATTACHED : TASKDEV_ST_NOTASK; dev->state = (minor < n_task) ? TASKDEV_ST_ATTACHED : TASKDEV_ST_NOTASK;
dev->usecount = 0; dev->usecount = 0;
mutex_init(&dev->usecount_mutex); mutex_init(&dev->usecount_lock);
memcpy(&dev->fops, &dsp_task_fops, sizeof(struct file_operations)); memcpy(&dev->fops, &dsp_task_fops, sizeof(struct file_operations));
dev->dev.parent = &dsp_device.dev; dev->dev.parent = &dsp_device.dev;
...@@ -1876,7 +1878,7 @@ static int taskdev_attach_task(struct taskdev *dev, struct dsptask *task) ...@@ -1876,7 +1878,7 @@ static int taskdev_attach_task(struct taskdev *dev, struct dsptask *task)
/* rcvbyp_bk */ dsp_task_write_bk; /* rcvbyp_bk */ dsp_task_write_bk;
dev->wsz = rcvtyp_acv(ttyp) ? 0 : /* active */ dev->wsz = rcvtyp_acv(ttyp) ? 0 : /* active */
rcvtyp_wd(ttyp) ? 2 : /* passive word */ rcvtyp_wd(ttyp) ? 2 : /* passive word */
ipbcfg.lsz*2; /* passive block */ ipbcfg.lsz*2; /* passive block */
if (task->map_length) if (task->map_length)
dev->fops.mmap = dsp_task_mmap; dev->fops.mmap = dsp_task_mmap;
...@@ -1965,9 +1967,9 @@ static int dsp_tadd(struct taskdev *dev, dsp_long_t adr) ...@@ -1965,9 +1967,9 @@ static int dsp_tadd(struct taskdev *dev, dsp_long_t adr)
ret = -EINTR; ret = -EINTR;
goto fail_out; goto fail_out;
} }
cfg_tid = TID_ANON; cfg_tid = TID_ANON;
cfg_cmd = MBX_CMD_DSP_TADD; cfg_cmd = MBX_CMD_DSP_TADD;
arg.tid = TID_ANON; arg.tid = TID_ANON;
arg.argc = 2; arg.argc = 2;
arg.argv = argv; arg.argv = argv;
...@@ -1976,10 +1978,10 @@ static int dsp_tadd(struct taskdev *dev, dsp_long_t adr) ...@@ -1976,10 +1978,10 @@ static int dsp_tadd(struct taskdev *dev, dsp_long_t adr)
ret = -EBUSY; ret = -EBUSY;
goto fail_out; goto fail_out;
} }
dsp_mbcmd_send_and_wait_exarg(&mb, &arg, &cfg_wait_q); mbcompose_send_and_wait_exarg(TADD, 0, 0, &arg, &cfg_wait_q);
tid = cfg_tid; tid = cfg_tid;
cfg_tid = OMAP_DSP_TID_ANON; cfg_tid = TID_ANON;
cfg_cmd = 0; cfg_cmd = 0;
mutex_unlock(&cfg_lock); mutex_unlock(&cfg_lock);
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
...@@ -238,7 +238,7 @@ static __inline__ int mbsync_irq_save(struct mbx *mbx, unsigned long *flags, ...@@ -238,7 +238,7 @@ static __inline__ int mbsync_irq_save(struct mbx *mbx, unsigned long *flags,
#elif defined(CONFIG_ARCH_OMAP2) #elif defined(CONFIG_ARCH_OMAP2)
static __inline__ int mbsync_irq_save(struct mbx *mbx, unsigned long *flags) static __inline__ int mbsync_irq_save(struct mbx *mbx, unsigned long *flags)
{ {
long current_state; long current_state;
DECLARE_WAITQUEUE(wait, current); DECLARE_WAITQUEUE(wait, current);
do { do {
...@@ -247,7 +247,7 @@ static __inline__ int mbsync_irq_save(struct mbx *mbx, unsigned long *flags) ...@@ -247,7 +247,7 @@ static __inline__ int mbsync_irq_save(struct mbx *mbx, unsigned long *flags)
return 0; return 0;
/* /*
* mailbox is busy. * mailbox is busy.
*/ */
local_irq_restore(*flags); local_irq_restore(*flags);
enable_notfull_irq(mbx); enable_notfull_irq(mbx);
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
* Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com> * Contact: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation. * version 2 as published by the Free Software Foundation.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment