struct slvl_device
{
struct z8530_channel *chan;
- struct ppp_device netdev;
+ struct ppp_device pppdev;
int channel;
};
return 0;
}
+static int sealevel_attach(struct net_device *dev)
+{
+ struct slvl_device *sv = dev->priv;
+ sppp_attach(&sv->pppdev);
+ return 0;
+}
+
+static void sealevel_detach(struct net_device *dev)
+{
+ sppp_detach(dev);
+}
static void slvl_setup(struct net_device *d)
{
d->open = sealevel_open;
d->stop = sealevel_close;
+ d->init = sealevel_attach;
+ d->uninit = sealevel_detach;
d->hard_start_xmit = sealevel_queue_xmit;
d->get_stats = sealevel_get_stats;
d->set_multicast_list = NULL;
return NULL;
sv = d->priv;
- sv->netdev.dev = d;
+ sv->pppdev.dev = d;
d->base_addr = iobase;
d->irq = irq;
- sppp_attach(&sv->netdev);
return sv;
}
dev->irq=irq;
dev->chanA.private=&b->dev[0];
dev->chanB.private=&b->dev[1];
- dev->chanA.netdevice=b->dev[0]->netdev.dev;
- dev->chanB.netdevice=b->dev[1]->netdev.dev;
+ dev->chanA.netdevice=b->dev[0]->pppdev.dev;
+ dev->chanB.netdevice=b->dev[1]->pppdev.dev;
dev->chanA.dev=dev;
dev->chanB.dev=dev;
enable_irq(irq);
- if (register_netdev(b->dev[0]->netdev.dev))
+ if (register_netdev(b->dev[0]->pppdev.dev))
goto dmafail2;
- if (register_netdev(b->dev[1]->netdev.dev))
+ if (register_netdev(b->dev[1]->pppdev.dev))
goto fail_unit;
z8530_describe(dev, "I/O", iobase);
return b;
fail_unit:
- unregister_netdev(b->dev[0]->netdev.dev);
+ unregister_netdev(b->dev[0]->pppdev.dev);
dmafail2:
free_dma(dev->chanA.rxdma);
fail:
free_irq(irq, dev);
fail1_1:
- free_netdev(b->dev[1]->netdev.dev);
+ free_netdev(b->dev[1]->pppdev.dev);
fail1_0:
- free_netdev(b->dev[0]->netdev.dev);
+ free_netdev(b->dev[0]->pppdev.dev);
fail2:
kfree(b);
fail3:
for(u=0; u<2; u++)
{
- struct net_device *d = b->dev[u]->netdev.dev;
- sppp_detach(d);
-
+ struct net_device *d = b->dev[u]->pppdev.dev;
unregister_netdev(d);
free_netdev(d);
}