summaryrefslogtreecommitdiff
path: root/ztcodec_dte
diff options
context:
space:
mode:
authorkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-02-07 20:44:29 +0000
committerkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-02-07 20:44:29 +0000
commit6b5a137f0dced59236504e7210587e9afcac79ff (patch)
tree5740faf317adbc655741b34ca924894e3195a508 /ztcodec_dte
parent614a39ced8799b3ec63cc738ee7dda095a6ea74c (diff)
Merged revisions 2111 via svnmerge from
https://origsvn.digium.com/svn/zaptel/branches/1.4 ................ r2111 | kpfleming | 2007-02-07 14:36:52 -0600 (Wed, 07 Feb 2007) | 11 lines Merged revisions 2110 via svnmerge from https://origsvn.digium.com/svn/zaptel/branches/1.2 ........ r2110 | kpfleming | 2007-02-07 14:29:22 -0600 (Wed, 07 Feb 2007) | 3 lines build XPP on the kernels that Xorcom says are OK to build on update workqueue usage to conform to kernel 2.6.20 API ........ ................ git-svn-id: http://svn.digium.com/svn/zaptel/trunk@2112 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'ztcodec_dte')
-rw-r--r--ztcodec_dte/base.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/ztcodec_dte/base.c b/ztcodec_dte/base.c
index 296f504..abbfbd1 100644
--- a/ztcodec_dte/base.c
+++ b/ztcodec_dte/base.c
@@ -353,8 +353,6 @@ struct wcdte {
struct zt_transcoder *udecode;
};
-static void dte_wque_run(struct wcdte *wc);
-
struct wcdte_desc {
char *name;
int flags;
@@ -1103,8 +1101,15 @@ static void wcdte_init_descriptors(struct wcdte *wc)
}
}
-static void dte_wque_run(struct wcdte *wc)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+static void dte_wque_run(struct work_struct *work)
+{
+ struct wcdte *wc = container_of(work, struct wcdte, dte_work);
+#else
+static void dte_wque_run(void *work_data)
{
+ struct wcdte *wc = work_data;
+#endif
int res;
if (wc->wqueints & 0x00000040) {
@@ -1123,7 +1128,7 @@ static void dte_wque_run(struct wcdte *wc)
}
}
-static irqreturn_t wcdte_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+ZAP_IRQ_HANDLER(wcdte_interrupt)
{
struct wcdte *wc = dev_id;
unsigned int ints;
@@ -1653,7 +1658,12 @@ static int __devinit wcdte_init_one(struct pci_dev *pdev, const struct pci_devic
/* Initialize the work queue */
wc->dte_wq = create_workqueue("tc400b");
- INIT_WORK(&wc->dte_work, (void (*)(void *))dte_wque_run, wc);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+ INIT_WORK(&wc->dte_work, dte_wque_run);
+#else
+ INIT_WORK(&wc->dte_work, dte_wque_run, wc);
+#endif
+
#ifdef HOTPLUG_FIRMWARE
if ((request_firmware(&firmware, dte_firmware, &wc->dev->dev) != 0) || !firmware) {
printk("TC400B: firmware %s not available from userspace\n", dte_firmware);
@@ -1673,7 +1683,7 @@ static int __devinit wcdte_init_one(struct pci_dev *pdev, const struct pci_devic
else
min_numchannels = g729_numchannels;
- /* Setup Encoders nad Decoders */
+ /* Setup Encoders and Decoders */
if (!mode || strlen(mode) < 4)
{