summaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hardware/eicon
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isdn/hardware/eicon')
-rw-r--r--drivers/isdn/hardware/eicon/divamnt.c7
-rw-r--r--drivers/isdn/hardware/eicon/divasi.c2
-rw-r--r--drivers/isdn/hardware/eicon/divasmain.c71
3 files changed, 38 insertions, 42 deletions
diff --git a/drivers/isdn/hardware/eicon/divamnt.c b/drivers/isdn/hardware/eicon/divamnt.c
index 1e85f743214..f1d464f1e10 100644
--- a/drivers/isdn/hardware/eicon/divamnt.c
+++ b/drivers/isdn/hardware/eicon/divamnt.c
@@ -14,7 +14,7 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/poll.h>
-#include <linux/smp_lock.h>
+#include <linux/mutex.h>
#include <asm/uaccess.h>
#include "platform.h"
@@ -22,6 +22,7 @@
#include "divasync.h"
#include "debug_if.h"
+static DEFINE_MUTEX(maint_mutex);
static char *main_revision = "$Revision: 1.32.6.10 $";
static int major;
@@ -130,7 +131,7 @@ static int maint_open(struct inode *ino, struct file *filep)
{
int ret;
- lock_kernel();
+ mutex_lock(&maint_mutex);
/* only one open is allowed, so we test
it atomically */
if (test_and_set_bit(0, &opened))
@@ -139,7 +140,7 @@ static int maint_open(struct inode *ino, struct file *filep)
filep->private_data = NULL;
ret = nonseekable_open(ino, filep);
}
- unlock_kernel();
+ mutex_unlock(&maint_mutex);
return ret;
}
diff --git a/drivers/isdn/hardware/eicon/divasi.c b/drivers/isdn/hardware/eicon/divasi.c
index f577719ab3f..42d3b834603 100644
--- a/drivers/isdn/hardware/eicon/divasi.c
+++ b/drivers/isdn/hardware/eicon/divasi.c
@@ -18,7 +18,6 @@
#include <linux/proc_fs.h>
#include <linux/skbuff.h>
#include <linux/seq_file.h>
-#include <linux/smp_lock.h>
#include <asm/uaccess.h>
#include "platform.h"
@@ -402,7 +401,6 @@ static unsigned int um_idi_poll(struct file *file, poll_table * wait)
static int um_idi_open(struct inode *inode, struct file *file)
{
- cycle_kernel_lock();
return (0);
}
diff --git a/drivers/isdn/hardware/eicon/divasmain.c b/drivers/isdn/hardware/eicon/divasmain.c
index fbbcb27fb68..ed9c5550679 100644
--- a/drivers/isdn/hardware/eicon/divasmain.c
+++ b/drivers/isdn/hardware/eicon/divasmain.c
@@ -21,7 +21,6 @@
#include <linux/list.h>
#include <linux/poll.h>
#include <linux/kmod.h>
-#include <linux/smp_lock.h>
#include "platform.h"
#undef ID_MASK
@@ -113,41 +112,40 @@ typedef struct _diva_os_thread_dpc {
This table should be sorted by PCI device ID
*/
static struct pci_device_id divas_pci_tbl[] = {
-/* Diva Server BRI-2M PCI 0xE010 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_MAESTRA,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_MAESTRA_PCI},
-/* Diva Server 4BRI-8M PCI 0xE012 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_MAESTRAQ,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_Q_8M_PCI},
-/* Diva Server 4BRI-8M 2.0 PCI 0xE013 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_MAESTRAQ_U,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_Q_8M_V2_PCI},
-/* Diva Server PRI-30M PCI 0xE014 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_MAESTRAP,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_P_30M_PCI},
-/* Diva Server PRI 2.0 adapter 0xE015 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_MAESTRAP_2,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_P_30M_V2_PCI},
-/* Diva Server Voice 4BRI-8M PCI 0xE016 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_4BRI_VOIP,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_VOICE_Q_8M_PCI},
-/* Diva Server Voice 4BRI-8M 2.0 PCI 0xE017 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_4BRI_2_VOIP,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI},
-/* Diva Server BRI-2M 2.0 PCI 0xE018 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_BRI2M_2,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_B_2M_V2_PCI},
-/* Diva Server Voice PRI 2.0 PCI 0xE019 */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_MAESTRAP_2_VOIP,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0,
- CARDTYPE_DIVASRV_VOICE_P_30M_V2_PCI},
-/* Diva Server 2FX 0xE01A */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_2F,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_B_2F_PCI},
-/* Diva Server Voice BRI-2M 2.0 PCI 0xE01B */
- {PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_BRI2M_2_VOIP,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI},
- {0,} /* 0 terminated list. */
+ /* Diva Server BRI-2M PCI 0xE010 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRA),
+ CARDTYPE_MAESTRA_PCI },
+ /* Diva Server 4BRI-8M PCI 0xE012 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAQ),
+ CARDTYPE_DIVASRV_Q_8M_PCI },
+ /* Diva Server 4BRI-8M 2.0 PCI 0xE013 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAQ_U),
+ CARDTYPE_DIVASRV_Q_8M_V2_PCI },
+ /* Diva Server PRI-30M PCI 0xE014 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAP),
+ CARDTYPE_DIVASRV_P_30M_PCI },
+ /* Diva Server PRI 2.0 adapter 0xE015 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAP_2),
+ CARDTYPE_DIVASRV_P_30M_V2_PCI },
+ /* Diva Server Voice 4BRI-8M PCI 0xE016 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_4BRI_VOIP),
+ CARDTYPE_DIVASRV_VOICE_Q_8M_PCI },
+ /* Diva Server Voice 4BRI-8M 2.0 PCI 0xE017 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_4BRI_2_VOIP),
+ CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI },
+ /* Diva Server BRI-2M 2.0 PCI 0xE018 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_BRI2M_2),
+ CARDTYPE_DIVASRV_B_2M_V2_PCI },
+ /* Diva Server Voice PRI 2.0 PCI 0xE019 */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRAP_2_VOIP),
+ CARDTYPE_DIVASRV_VOICE_P_30M_V2_PCI },
+ /* Diva Server 2FX 0xE01A */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_2F),
+ CARDTYPE_DIVASRV_B_2F_PCI },
+ /* Diva Server Voice BRI-2M 2.0 PCI 0xE01B */
+ { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_BRI2M_2_VOIP),
+ CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI },
+ { 0, } /* 0 terminated list. */
};
MODULE_DEVICE_TABLE(pci, divas_pci_tbl);
@@ -581,7 +579,6 @@ xdi_copy_from_user(void *os_handle, void *dst, const void __user *src, int lengt
*/
static int divas_open(struct inode *inode, struct file *file)
{
- cycle_kernel_lock();
return (0);
}