[dahdi-commits] dahdi/linux.git branch "master" updated.
SVN commits to the DAHDI project
dahdi-commits at lists.digium.com
Thu Dec 26 17:06:11 CST 2013
branch "master" has been updated
via e6b16eace164d4b7edbeaf415965870fb7445cf9 (commit)
from 3933ffd3505374ce8850fee067ad3949dc552d49 (commit)
Summary of changes:
drivers/dahdi/dahdi-base.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
- Log -----------------------------------------------------------------
commit e6b16eace164d4b7edbeaf415965870fb7445cf9
Author: Shaun Ruffell <sruffell at digium.com>
Date: Mon Dec 23 15:55:36 2013 -0600
dahdi: Move clearing of DAHDI_ALARM_NOTOPEN to __dahdi_assign_span().
Previously this was in __dahdi_init_span(). The problem was that
__dahdi_init_span() was only called when a spans' line mode was being changed.
Therefore it was possible to unassign and resassign an analog span and leave it
stuck in the 'NOP' alarm state.
It also make the setting / clearing of DAHDI_ALARM_NOTOPEN symetrical about span
unassignment / assignment in addition to updating the alarm states on all the
channels on the span via the dahdi_alarm_notify() function.
This is a better version of commit 496f81777323d309bd5c32afc2186bdc0055e5be.
Signed-off-by: Shaun Ruffell <sruffell at digium.com>
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c
index 6d61dad..908001a 100644
--- a/drivers/dahdi/dahdi-base.c
+++ b/drivers/dahdi/dahdi-base.c
@@ -7188,13 +7188,6 @@ static void __dahdi_init_span(struct dahdi_span *span)
spin_lock_init(&span->lock);
clear_bit(DAHDI_FLAGBIT_REGISTERED, &span->flags);
- /* DAHDI_ALARM_NOTOPEN can be set when a span is disabled, i.e. via
- * sysfs, so when the span is being initialized again before
- * reassignment we should make sure it's cleared. This eliminates the
- * need for board drivers to re-report their alarm states on span
- * reassignment. */
- span->alarms &= ~DAHDI_ALARM_NOTOPEN;
-
if (!span->deflaw) {
module_printk(KERN_NOTICE, "Span %s didn't specify default "
"law. Assuming mulaw, please fix driver!\n",
@@ -7255,6 +7248,7 @@ static int _dahdi_assign_span(struct dahdi_span *span, unsigned int spanno,
{
int res = 0;
unsigned int x;
+ unsigned long flags;
if (!span || !span->ops || !span->ops->owner)
return -EFAULT;
@@ -7266,6 +7260,16 @@ static int _dahdi_assign_span(struct dahdi_span *span, unsigned int spanno,
return -EINVAL;
}
+ /* DAHDI_ALARM_NOTOPEN can be set when a span is disabled, i.e. via
+ * sysfs, so when the span is being reassigned we should make sure it's
+ * cleared. This eliminates the need for board drivers to re-report
+ * their alarm states on span reassignment. */
+
+ spin_lock_irqsave(&span->lock, flags);
+ span->alarms &= ~DAHDI_ALARM_NOTOPEN;
+ dahdi_alarm_notify(span);
+ spin_unlock_irqrestore(&span->lock, flags);
+
if (span->ops->enable_hw_preechocan ||
span->ops->disable_hw_preechocan) {
if ((NULL == span->ops->enable_hw_preechocan) ||
-----------------------------------------------------------------------
--
dahdi/linux.git
More information about the dahdi-commits
mailing list