*/
+#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/skbuff.h>
he_writel(he_dev, 0x0, GRP_54_MAP);
he_writel(he_dev, 0x0, GRP_76_MAP);
- if (request_irq(he_dev->pci_dev->irq, he_irq_handler, IRQF_DISABLED|IRQF_SHARED, DEV_LABEL, he_dev)) {
+ if (request_irq(he_dev->pci_dev->irq, he_irq_handler, SA_INTERRUPT|SA_SHIRQ, DEV_LABEL, he_dev)) {
hprintk("irq %d already in use\n", he_dev->pci_dev->irq);
return -EINVAL;
}
return 0;
}
-static int __devinit
+static int __init
he_start(struct atm_dev *dev)
{
struct he_dev *he_dev;
#ifdef notdef
ATM_SKB(skb)->vcc = vcc;
#endif
- spin_unlock(&he_dev->global_lock);
vcc->push(vcc, skb);
- spin_lock(&he_dev->global_lock);
atomic_inc(&vcc->stats->rx);
TPDRQ_MASK(he_readl(he_dev, TPDRQ_B_H)));
if (new_tail == he_dev->tpdrq_head) {
- int slot;
-
hprintk("tpdrq full (cid 0x%x)\n", cid);
/*
* FIXME
* after service_tbrq, service the backlog
* for now, we just drop the pdu
*/
- for (slot = 0; slot < TPD_MAXIOV; ++slot) {
- if (tpd->iovec[slot].addr)
- pci_unmap_single(he_dev->pci_dev,
- tpd->iovec[slot].addr,
- tpd->iovec[slot].len & TPD_LEN_MASK,
- PCI_DMA_TODEVICE);
- }
if (tpd->skb) {
if (tpd->vcc->pop)
tpd->vcc->pop(tpd->vcc, tpd->skb);