summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/dahdi/opvxa1200.c16
-rw-r--r--drivers/dahdi/wcopenpci.c16
-rw-r--r--drivers/dahdi/zaphfc/base.c26
3 files changed, 35 insertions, 23 deletions
diff --git a/drivers/dahdi/opvxa1200.c b/drivers/dahdi/opvxa1200.c
index 77a1e02..6254c65 100644
--- a/drivers/dahdi/opvxa1200.c
+++ b/drivers/dahdi/opvxa1200.c
@@ -2367,6 +2367,15 @@ static int wctdm_hooksig(struct dahdi_chan *chan, enum dahdi_txsig txsig)
return 0;
}
+static const struct dahdi_span_ops wctdm_span_ops = {
+ .owner = THIS_MODULE,
+ .hooksig = wctdm_hooksig,
+ .open = wctdm_open,
+ .close = wctdm_close,
+ .ioctl = wctdm_ioctl,
+ .watchdog = wctdm_watchdog
+};
+
static int wctdm_initialize(struct wctdm *wc)
{
int x;
@@ -2406,14 +2415,9 @@ static int wctdm_initialize(struct wctdm *wc)
}
wc->span.chans = wc->chans;
wc->span.channels = wc->max_cards; /*MAX_NUM_CARDS;*/
- wc->span.hooksig = wctdm_hooksig;
- wc->span.owner = THIS_MODULE;
wc->span.irq = wc->dev->irq;
- wc->span.open = wctdm_open;
- wc->span.close = wctdm_close;
wc->span.flags = DAHDI_FLAG_RBS;
- wc->span.ioctl = wctdm_ioctl;
- wc->span.watchdog = wctdm_watchdog;
+ wc->span.ops = &wctdm_span_ops;
init_waitqueue_head(&wc->span.maintq);
if (dahdi_register(&wc->span, 0)) {
diff --git a/drivers/dahdi/wcopenpci.c b/drivers/dahdi/wcopenpci.c
index 9e28279..e5567ca 100644
--- a/drivers/dahdi/wcopenpci.c
+++ b/drivers/dahdi/wcopenpci.c
@@ -1295,6 +1295,15 @@ static int openpci_hooksig(struct dahdi_chan *chan, enum dahdi_txsig txsig)
return 0;
} //}}}
+static const struct dahdi_span_ops openpci_span_ops = {
+ .owner = THIS_MODULE,
+ .hooksig = openpci_hooksig,
+ .open = openpci_open,
+ .close = openpci_close,
+ .ioctl = openpci_ioctl,
+ .watchdog = openpci_watchdog
+};
+
static int span_initialize(struct openpci *wc)
{ //{{{
int x;
@@ -1316,13 +1325,8 @@ static int span_initialize(struct openpci *wc)
wc->span.deflaw = DAHDI_LAW_MULAW;
wc->span.chans = wc->chans;
wc->span.channels = MAX_PORTS;
- wc->span.hooksig = openpci_hooksig;
- wc->span.owner = THIS_MODULE;
- wc->span.open = openpci_open;
- wc->span.close = openpci_close;
wc->span.flags = DAHDI_FLAG_RBS;
- wc->span.ioctl = openpci_ioctl;
- wc->span.watchdog = openpci_watchdog;
+ wc->span.ops = &openpci_span_ops;
init_waitqueue_head(&wc->span.maintq);
if (dahdi_register(&wc->span, 0)) {
diff --git a/drivers/dahdi/zaphfc/base.c b/drivers/dahdi/zaphfc/base.c
index 4db6736..0996b51 100644
--- a/drivers/dahdi/zaphfc/base.c
+++ b/drivers/dahdi/zaphfc/base.c
@@ -643,6 +643,20 @@ static int hfc_zap_spanconfig(struct dahdi_span *span,
return 0;
}
+static const struct dahdi_span_ops hfc_zap_span_ops = {
+ .owner = THIS_MODULE,
+ .chanconfig = hfc_zap_chanconfig,
+ .spanconfig = hfc_zap_spanconfig,
+ .startup = hfc_zap_startup,
+ .shutdown = hfc_zap_shutdown,
+ .maint = hfc_zap_maint,
+ .rbsbits = hfc_zap_rbsbits,
+ .open = hfc_zap_open,
+ .close = hfc_zap_close,
+ .ioctl = hfc_zap_ioctl,
+ .hdlc_hard_xmit = hfc_hdlc_hard_xmit
+};
+
static int hfc_zap_initialize(struct dahdi_hfc *hfccard)
{
struct hfc_card *hfctmp = hfccard->card;
@@ -656,18 +670,8 @@ static int hfc_zap_initialize(struct dahdi_hfc *hfccard)
hfctmp->nt_mode ? "NT" : "TE");
hfccard->span.spantype = hfctmp->nt_mode ? "NT" : "TE";
hfccard->span.manufacturer = "Cologne Chips";
- hfccard->span.spanconfig = hfc_zap_spanconfig;
- hfccard->span.owner = THIS_MODULE;
- hfccard->span.chanconfig = hfc_zap_chanconfig;
- hfccard->span.startup = hfc_zap_startup;
- hfccard->span.shutdown = hfc_zap_shutdown;
- hfccard->span.maint = hfc_zap_maint;
- hfccard->span.rbsbits = hfc_zap_rbsbits;
- hfccard->span.open = hfc_zap_open;
- hfccard->span.close = hfc_zap_close;
- hfccard->span.ioctl = hfc_zap_ioctl;
- hfccard->span.hdlc_hard_xmit = hfc_hdlc_hard_xmit;
hfccard->span.flags = 0;
+ hfccard->span.ops = &hfc_zap_span_ops;
hfccard->span.irq = hfctmp->pcidev->irq;
dahdi_copy_string(hfccard->span.devicetype, "HFC-S PCI-A ISDN",
sizeof(hfccard->span.devicetype));