summaryrefslogtreecommitdiff
path: root/drivers/dahdi/xpp/card_pri.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dahdi/xpp/card_pri.c')
-rw-r--r--drivers/dahdi/xpp/card_pri.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/dahdi/xpp/card_pri.c b/drivers/dahdi/xpp/card_pri.c
index b03ad02..4cdbe6f 100644
--- a/drivers/dahdi/xpp/card_pri.c
+++ b/drivers/dahdi/xpp/card_pri.c
@@ -1193,6 +1193,7 @@ static xpd_t *PRI_card_new(xbus_t *xbus, int unit, int subunit, const xproto_tab
return NULL;
}
#endif
+ xbus->sync_mode_default = SYNC_MODE_AB;
return xpd;
}
@@ -1827,6 +1828,18 @@ static void PRI_card_pcm_tospan(xbus_t *xbus, xpd_t *xpd, xpacket_t *pack)
spin_unlock_irqrestore(&xpd->lock, flags);
}
+int PRI_timing_priority(xbus_t *xbus, xpd_t *xpd)
+{
+ struct PRI_priv_data *priv;
+
+ priv = xpd->priv;
+ BUG_ON(!priv);
+ if (priv->layer1_up)
+ return xpd->timing_priority;
+ XPD_DBG(SYNC, xpd, "No timing priority (no layer1)\n");
+ return -ENOENT;
+}
+
/*---------------- PRI: HOST COMMANDS -------------------------------------*/
static /* 0x0F */ HOSTCMD(PRI, XPD_STATE, bool on)
@@ -1917,6 +1930,7 @@ static void layer1_state(xpd_t *xpd, byte data_low)
send_idlebits(xpd, 1);
}
xpd->span.alarms = alarms;
+ elect_syncer("LAYER1");
dahdi_alarm_notify(&xpd->span);
set_clocking(xpd);
}
@@ -2140,6 +2154,7 @@ static xproto_table_t PROTO_TABLE(PRI) = {
.card_pcm_recompute = PRI_card_pcm_recompute,
.card_pcm_fromspan = PRI_card_pcm_fromspan,
.card_pcm_tospan = PRI_card_pcm_tospan,
+ .card_timing_priority = PRI_timing_priority,
.card_ioctl = PRI_card_ioctl,
.card_close = PRI_card_close,
.card_register_reply = PRI_card_register_reply,