git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was manufactured by cvs2svn to create tag
[linux-2.6.git]
/
drivers
/
isdn
/
capi
/
kcapi.c
diff --git
a/drivers/isdn/capi/kcapi.c
b/drivers/isdn/capi/kcapi.c
index
e3f603c
..
8d58cfd
100644
(file)
--- a/
drivers/isdn/capi/kcapi.c
+++ b/
drivers/isdn/capi/kcapi.c
@@
-24,8
+24,6
@@
#include <linux/capi.h>
#include <linux/kernelcapi.h>
#include <linux/init.h>
#include <linux/capi.h>
#include <linux/kernelcapi.h>
#include <linux/init.h>
-#include <linux/moduleparam.h>
-#include <linux/delay.h>
#include <asm/uaccess.h>
#include <linux/isdn/capicmd.h>
#include <linux/isdn/capiutil.h>
#include <asm/uaccess.h>
#include <linux/isdn/capicmd.h>
#include <linux/isdn/capiutil.h>
@@
-42,7
+40,7
@@
static int showcapimsgs = 0;
MODULE_DESCRIPTION("CAPI4Linux: kernel CAPI layer");
MODULE_AUTHOR("Carsten Paeth");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("CAPI4Linux: kernel CAPI layer");
MODULE_AUTHOR("Carsten Paeth");
MODULE_LICENSE("GPL");
-
module_param(showcapimsgs, uint, 0
);
+
MODULE_PARM(showcapimsgs, "i"
);
/* ------------------------------------------------------------- */
/* ------------------------------------------------------------- */
@@
-150,10
+148,7
@@
static void register_appl(struct capi_ctr *card, u16 applid, capi_register_param
{
card = capi_ctr_get(card);
{
card = capi_ctr_get(card);
- if (card)
- card->register_appl(card, applid, rparam);
- else
- printk(KERN_WARNING "%s: cannot get card resources\n", __FUNCTION__);
+ card->register_appl(card, applid, rparam);
}
}
@@
-176,15
+171,10
@@
static void notify_up(u32 contr)
if (showcapimsgs & 1) {
printk(KERN_DEBUG "kcapi: notify up contr %d\n", contr);
}
if (showcapimsgs & 1) {
printk(KERN_DEBUG "kcapi: notify up contr %d\n", contr);
}
- if (!card) {
- printk(KERN_WARNING "%s: invalid contr %d\n", __FUNCTION__, contr);
- return;
- }
+
for (applid = 1; applid <= CAPI_MAXAPPL; applid++) {
ap = get_capi_appl_by_nr(applid);
for (applid = 1; applid <= CAPI_MAXAPPL; applid++) {
ap = get_capi_appl_by_nr(applid);
- if (!ap || ap->release_in_progress) continue;
- register_appl(card, applid, &ap->rparam);
- if (ap->callback && !ap->release_in_progress)
+ if (ap && ap->callback && !ap->release_in_progress)
ap->callback(KCI_CONTRUP, contr, &card->profile);
}
}
ap->callback(KCI_CONTRUP, contr, &card->profile);
}
}
@@
-327,8
+317,19
@@
EXPORT_SYMBOL(capi_ctr_handle_message);
void capi_ctr_ready(struct capi_ctr * card)
{
void capi_ctr_ready(struct capi_ctr * card)
{
+ u16 appl;
+ struct capi20_appl *ap;
+
card->cardstate = CARD_RUNNING;
card->cardstate = CARD_RUNNING;
+ down(&controller_sem);
+ for (appl = 1; appl <= CAPI_MAXAPPL; appl++) {
+ ap = get_capi_appl_by_nr(appl);
+ if (!ap || ap->release_in_progress) continue;
+ register_appl(card, appl, &ap->rparam);
+ }
+ up(&controller_sem);
+
printk(KERN_NOTICE "kcapi: card %d \"%s\" ready.\n",
card->cnr, card->name);
printk(KERN_NOTICE "kcapi: card %d \"%s\" ready.\n",
card->cnr, card->name);
@@
-830,7
+831,8
@@
static int old_capi_manufacturer(unsigned int cmd, void __user *data)
while (card->cardstate != CARD_RUNNING) {
while (card->cardstate != CARD_RUNNING) {
- msleep_interruptible(100); /* 0.1 sec */
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ/10); /* 0.1 sec */
if (signal_pending(current)) {
capi_ctr_put(card);
if (signal_pending(current)) {
capi_ctr_put(card);
@@
-854,7
+856,8
@@
static int old_capi_manufacturer(unsigned int cmd, void __user *data)
while (card->cardstate > CARD_DETECTED) {
while (card->cardstate > CARD_DETECTED) {
- msleep_interruptible(100); /* 0.1 sec */
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ/10); /* 0.1 sec */
if (signal_pending(current))
return -EINTR;
if (signal_pending(current))
return -EINTR;