|
|
|
|
@@ -3784,7 +3784,7 @@ static inline void t4_framer_interrupt(struct t4 *wc, int span)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef SUPPORT_GEN1
|
|
|
|
|
static irqreturn_t _t4_interrupt(int irq, void *dev_id)
|
|
|
|
|
DAHDI_IRQ_HANDLER(t4_interrupt)
|
|
|
|
|
{
|
|
|
|
|
struct t4 *wc = dev_id;
|
|
|
|
|
unsigned long flags;
|
|
|
|
|
@@ -3852,16 +3852,6 @@ static irqreturn_t _t4_interrupt(int irq, void *dev_id)
|
|
|
|
|
|
|
|
|
|
return IRQ_RETVAL(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DAHDI_IRQ_HANDLER(t4_interrupt)
|
|
|
|
|
{
|
|
|
|
|
irqreturn_t ret;
|
|
|
|
|
unsigned long flags;
|
|
|
|
|
local_irq_save(flags);
|
|
|
|
|
ret = _t4_interrupt(irq, dev_id);
|
|
|
|
|
local_irq_restore(flags);
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
static int t4_allocate_buffers(struct t4 *wc, int numbufs,
|
|
|
|
|
@@ -3979,7 +3969,7 @@ static void t4_isr_bh(unsigned long data)
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static irqreturn_t _t4_interrupt_gen2(int irq, void *dev_id)
|
|
|
|
|
DAHDI_IRQ_HANDLER(t4_interrupt_gen2)
|
|
|
|
|
{
|
|
|
|
|
struct t4 *wc = dev_id;
|
|
|
|
|
unsigned int status;
|
|
|
|
|
@@ -4175,16 +4165,6 @@ out:
|
|
|
|
|
return IRQ_RETVAL(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DAHDI_IRQ_HANDLER(t4_interrupt_gen2)
|
|
|
|
|
{
|
|
|
|
|
irqreturn_t ret;
|
|
|
|
|
unsigned long flags;
|
|
|
|
|
local_irq_save(flags);
|
|
|
|
|
ret = _t4_interrupt_gen2(irq, dev_id);
|
|
|
|
|
local_irq_restore(flags);
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef SUPPORT_GEN1
|
|
|
|
|
static int t4_reset_dma(struct t4 *wc)
|
|
|
|
|
{
|
|
|
|
|
@@ -5232,23 +5212,22 @@ t4_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
|
|
#ifdef SUPPORT_GEN1
|
|
|
|
|
if (request_irq(pdev->irq, (wc->devtype->flags & FLAG_2NDGEN) ?
|
|
|
|
|
t4_interrupt_gen2 : t4_interrupt,
|
|
|
|
|
DAHDI_IRQ_SHARED,
|
|
|
|
|
DAHDI_IRQ_SHARED_DISABLED,
|
|
|
|
|
(wc->numspans == 8) ? "wct8xxp" :
|
|
|
|
|
(wc->numspans == 2) ? "wct2xxp" :
|
|
|
|
|
"wct4xxp",
|
|
|
|
|
wc)) {
|
|
|
|
|
wc))
|
|
|
|
|
#else
|
|
|
|
|
if (!(wc->tspans[0]->spanflags & FLAG_2NDGEN)) {
|
|
|
|
|
dev_notice(&wc->dev->dev, "This driver does not "
|
|
|
|
|
"support 1st gen modules\n");
|
|
|
|
|
free_wc(wc);
|
|
|
|
|
return -ENODEV;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (request_irq(pdev->irq, t4_interrupt_gen2,
|
|
|
|
|
DAHDI_IRQ_SHARED, "t4xxp", wc)) {
|
|
|
|
|
if (!(wc->tspans[0]->spanflags & FLAG_2NDGEN)) {
|
|
|
|
|
dev_notice(&wc->dev->dev, "This driver does not "
|
|
|
|
|
"support 1st gen modules\n");
|
|
|
|
|
free_wc(wc);
|
|
|
|
|
return -ENODEV;
|
|
|
|
|
}
|
|
|
|
|
if (request_irq(pdev->irq, t4_interrupt_gen2, DAHDI_IRQ_SHARED_DISABLED, "t4xxp", wc))
|
|
|
|
|
#endif
|
|
|
|
|
dev_notice(&wc->dev->dev, "Unable to request IRQ %d\n",
|
|
|
|
|
{
|
|
|
|
|
dev_notice(&wc->dev->dev, "t4xxp: Unable to request IRQ %d\n",
|
|
|
|
|
pdev->irq);
|
|
|
|
|
free_wc(wc);
|
|
|
|
|
return -EIO;
|
|
|
|
|
|