[dahdi-commits] dahdi/linux.git branch "master" updated.
SVN commits to the DAHDI project
dahdi-commits at lists.digium.com
Mon Dec 2 16:25:10 CST 2013
branch "master" has been updated
via 3707ee713ee4869f44db9c4b2db83f35e49f6636 (commit)
from f5d3b35d7bd8cad3b01eefeb1e46252cd19c072f (commit)
Summary of changes:
drivers/dahdi/wcaxx-base.c | 42 +++++++++++++++++++-----------------------
1 file changed, 19 insertions(+), 23 deletions(-)
- Log -----------------------------------------------------------------
commit 3707ee713ee4869f44db9c4b2db83f35e49f6636
Author: Shaun Ruffell <sruffell at digium.com>
Date: Mon Dec 2 16:20:05 2013 -0600
Revert "wcaxx: Use startup/shutdown callbacks to protect access to channel registers."
This reverts commit 1cf7d9b08c892404791b25eff6a743af2a660428.
It turns out this change was not necessary.
Signed-off-by: Shaun Ruffell <sruffell at digium.com>
diff --git a/drivers/dahdi/wcaxx-base.c b/drivers/dahdi/wcaxx-base.c
index 6fe67ce..b0fa8c6 100644
--- a/drivers/dahdi/wcaxx-base.c
+++ b/drivers/dahdi/wcaxx-base.c
@@ -33,7 +33,6 @@
#include <linux/moduleparam.h>
#include <linux/firmware.h>
#include <linux/crc32.h>
-#include <linux/interrupt.h>
#include <stdbool.h>
@@ -1987,7 +1986,8 @@ static void wcaxx_handle_receive(struct wcxb *xb, void *_frame)
wc->module_poll_time = wc->framecount + MODULE_POLL_TIME_MS;
}
- if (!test_bit(DAHDI_FLAGBIT_RUNNING, &wc->span.flags))
+ /* TODO: This protection needs to be thought about. */
+ if (!test_bit(DAHDI_FLAGBIT_REGISTERED, &wc->span.flags))
return;
for (j = 0; j < DAHDI_CHUNKSIZE; j++) {
@@ -2012,7 +2012,8 @@ static void wcaxx_handle_transmit(struct wcxb *xb, void *_frame)
wcxb_spi_handle_interrupt(wc->master);
- if (!test_bit(DAHDI_FLAGBIT_RUNNING, &wc->span.flags))
+ /* TODO: This protection needs to be thought about. */
+ if (!test_bit(DAHDI_FLAGBIT_REGISTERED, &wc->span.flags))
return;
_dahdi_transmit(&wc->span);
@@ -3383,41 +3384,36 @@ wcaxx_chanconfig(struct file *file, struct dahdi_chan *chan, int sigtype)
}
/*
- * wcaxx_span_shutdown - Called when span is unassigned or shutdown.
- * @span: The span that is shutdown
+ * wcaxx_assigned - Called when span is assigned.
+ * @span: The span that is now assigned.
*
- */
-static int wcaxx_span_shutdown(struct dahdi_span *span)
-{
- struct wcaxx *wc = container_of(span, struct wcaxx, span);
- clear_bit(DAHDI_FLAGBIT_RUNNING, &span->flags);
- synchronize_irq(wc->xb.pdev->irq);
- return 0;
-}
-
-/*
- * wcaxx_span_startup - Called when span is unassigned or shutdown.
- * @span: The span that is shutdown
+ * This function is called by the core of DAHDI after the span number and
+ * channel numbers have been assigned.
*
*/
-static int wcaxx_span_startup(struct file *file, struct dahdi_span *span)
+static void wcaxx_assigned(struct dahdi_span *span)
{
- set_bit(DAHDI_FLAGBIT_RUNNING, &span->flags);
- return 0;
-}
+ struct dahdi_span *s;
+ struct dahdi_device *ddev = span->parent;
+ struct wcaxx *wc = NULL;
+ list_for_each_entry(s, &ddev->spans, device_node) {
+ wc = container_of(s, struct wcaxx, span);
+ if (!test_bit(DAHDI_FLAGBIT_REGISTERED, &s->flags))
+ return;
+ }
+}
static const struct dahdi_span_ops wcaxx_span_ops = {
.owner = THIS_MODULE,
.hooksig = wcaxx_hooksig,
- .shutdown = wcaxx_span_shutdown,
- .startup = wcaxx_span_startup,
.open = wcaxx_open,
.close = wcaxx_close,
.ioctl = wcaxx_ioctl,
.watchdog = wcaxx_watchdog,
.chanconfig = wcaxx_chanconfig,
.dacs = wcaxx_dacs,
+ .assigned = wcaxx_assigned,
#ifdef VPM_SUPPORT
.echocan_create = wcaxx_echocan_create,
.echocan_name = wcaxx_echocan_name,
-----------------------------------------------------------------------
--
dahdi/linux.git
More information about the dahdi-commits
mailing list