summaryrefslogtreecommitdiff
path: root/drivers/dahdi/xpp/xpp_dahdi.c
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2011-11-02 17:05:38 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2011-11-02 17:05:38 +0000
commit6139ae072c2452bd97b5951ec0b4e12d85b93af6 (patch)
tree885c96af4e49066629c2f91dcded43ea87b288d6 /drivers/dahdi/xpp/xpp_dahdi.c
parent2009ce87cd47400f42d7cbf6b68ce472c485d93c (diff)
xpp: bugfix: clear NOTOPEN span alarm on assign
The NOTOPEN span alarm flag is set at span unassignment time. * It needs to be cleared when the span is reassigned. * That is: only if the span is actually connected. Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10302 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/xpp/xpp_dahdi.c')
-rw-r--r--drivers/dahdi/xpp/xpp_dahdi.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/dahdi/xpp/xpp_dahdi.c b/drivers/dahdi/xpp/xpp_dahdi.c
index 5dbca26..ccf7f38 100644
--- a/drivers/dahdi/xpp/xpp_dahdi.c
+++ b/drivers/dahdi/xpp/xpp_dahdi.c
@@ -945,6 +945,19 @@ int xpp_echocan_create(struct dahdi_chan *chan,
}
EXPORT_SYMBOL(xpp_echocan_create);
+void xpp_span_assigned(struct dahdi_span *span)
+{
+ struct phonedev *phonedev = container_of(span, struct phonedev, span);
+ xpd_t *xpd = container_of(phonedev, struct xpd, phonedev);
+
+ XPD_INFO(xpd, "Span assigned: %d\n", span->spanno);
+ if (xpd->card_present) {
+ span->alarms &= ~DAHDI_ALARM_NOTOPEN;
+ dahdi_alarm_notify(&phonedev->span);
+ }
+}
+EXPORT_SYMBOL(xpp_span_assigned);
+
static const struct dahdi_span_ops xpp_span_ops = {
.owner = THIS_MODULE,
.open = xpp_open,
@@ -953,6 +966,7 @@ static const struct dahdi_span_ops xpp_span_ops = {
.maint = xpp_maint,
.echocan_create = xpp_echocan_create,
.echocan_name = xpp_echocan_name,
+ .assigned = xpp_span_assigned,
};
static const struct dahdi_span_ops xpp_rbs_span_ops = {
@@ -964,6 +978,7 @@ static const struct dahdi_span_ops xpp_rbs_span_ops = {
.maint = xpp_maint,
.echocan_create = xpp_echocan_create,
.echocan_name = xpp_echocan_name,
+ .assigned = xpp_span_assigned,
};
void xpd_set_spanname(xpd_t *xpd)