diff options
author | Shaun Ruffell <sruffell@digium.com> | 2008-10-10 22:38:44 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2008-10-10 22:38:44 +0000 |
commit | bec5a7d023adf009bcb996f068e2cf743dfabfa6 (patch) | |
tree | 44da8a97921a40c308184bded5f1f7a6eeef1094 | |
parent | 04b68a34b071c18348335d379d9a6b5ee15c174f (diff) |
- Ensure that the source format is considered when selecting a transcoder.
- When a command is to be retried, turn off the TX_COMPLETE flag before
resubmitting it to the hardware. This should elimate some of the warnings
printed to the kernel log in the wctc4xxp_transmit_cmd function.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@5084 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r-- | drivers/dahdi/dahdi_transcode.c | 2 | ||||
-rw-r--r-- | drivers/dahdi/wctc4xxp/base.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/dahdi/dahdi_transcode.c b/drivers/dahdi/dahdi_transcode.c index 92120a3..9ce07c9 100644 --- a/drivers/dahdi/dahdi_transcode.c +++ b/drivers/dahdi/dahdi_transcode.c @@ -212,7 +212,7 @@ __find_free_channel(struct list_head *list, const struct dahdi_transcoder_format unsigned int match = 0; list_for_each_entry(tc, list, node) { - if ((tc->dstfmts & fmts->dstfmt)) { + if ((tc->dstfmts & fmts->dstfmt) && (tc->srcfmts & fmts->srcfmt)) { /* We found a transcoder that can handle our formats. * Now look for an available channel. */ match = 1; diff --git a/drivers/dahdi/wctc4xxp/base.c b/drivers/dahdi/wctc4xxp/base.c index 634568f..86f9d12 100644 --- a/drivers/dahdi/wctc4xxp/base.c +++ b/drivers/dahdi/wctc4xxp/base.c @@ -2846,6 +2846,7 @@ wctc4xxp_watchdog(unsigned long data) /* Move this to the local list because we're * going to resend it once we free the locks */ list_move_tail(&cmd->node, &cmds_to_retry); + cmd->flags &= ~(TX_COMPLETE); } else { /* The command is still sitting on the tx * descriptor ring. We don't want to move it |