summaryrefslogtreecommitdiff
path: root/drivers/dahdi/voicebus/GpakCust.h
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2009-05-07 19:42:00 +0000
committerShaun Ruffell <sruffell@digium.com>2009-05-07 19:42:00 +0000
commita6ebb39e2f623929944d953bb80ae77862732b1c (patch)
tree36dca124131d143ec53896bfabd092dbeb47573d /drivers/dahdi/voicebus/GpakCust.h
parent86856e80af24bcfaa4829d8d8d90c937a86e6c3f (diff)
voicebus: Create workqueue for each vpmadt032 instance.
Depending on the system latency, the deferred work for the vpmadt032 can take up to 200ms. This change allows each vpmadt032 to use its own workqueue, and not the global system workqueue. This prevents vpm operations from blocking the main system workqueue for extended periods. This restores the behavior to the way it was before the common vpmadt032 code was moved out of the wctdm24xxp and wcte12xp drivers. DAHDI-260 voicebus-squash: Adding the wq name. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6572 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/voicebus/GpakCust.h')
-rw-r--r--drivers/dahdi/voicebus/GpakCust.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/dahdi/voicebus/GpakCust.h b/drivers/dahdi/voicebus/GpakCust.h
index 72cfdd4..bdb9cfb 100644
--- a/drivers/dahdi/voicebus/GpakCust.h
+++ b/drivers/dahdi/voicebus/GpakCust.h
@@ -107,6 +107,7 @@ struct vpmadt032 {
void *context;
const struct dahdi_span *span;
struct work_struct work;
+ struct workqueue_struct *wq;
int dspid;
struct semaphore sem;
unsigned long control;
@@ -124,6 +125,8 @@ struct vpmadt032 {
unsigned char curtone[MAX_CHANNELS_PER_SPAN];
struct vpmadt032_options options;
void (*setchanconfig_from_state)(struct vpmadt032 *vpm, int channel, struct GpakChannelConfig *chanconfig);
+ /* This must be last */
+ char wq_name[0];
};
struct voicebus;
@@ -134,7 +137,8 @@ struct dahdi_echocan_state;
char vpmadt032tone_to_zaptone(GpakToneCodes_t tone);
int vpmadt032_init(struct vpmadt032 *vpm, struct voicebus *vb);
-struct vpmadt032 *vpmadt032_alloc(struct vpmadt032_options *options);
+struct vpmadt032 *vpmadt032_alloc(struct vpmadt032_options *options,
+ const char *board_name);
void vpmadt032_free(struct vpmadt032 *vpm);
int vpmadt032_echocan_create(struct vpmadt032 *vpm, int channo,
struct dahdi_echocanparams *ecp, struct dahdi_echocanparam *p);