From 6c8bc5060f29f556ff2a00cb2a2a7dc3beb135ee Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Wed, 8 Sep 2010 14:04:03 +0300 Subject: Move span callbacs to a separate structure r8985 and r8986 moved most of the span operation callbacks from the dahdi_span itself to a separate struct. That struct is typically allocated statically by the driver. --- drivers/dahdi/opvxa1200.c | 16 ++++++++++------ drivers/dahdi/wcopenpci.c | 16 ++++++++++------ drivers/dahdi/zaphfc/base.c | 26 +++++++++++++++----------- 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)); -- cgit v1.2.3