Example #1
0
int init_module(void)
{
	struct net_device *dev;
	struct arcnet_local *lp;
	int err;

	dev = dev_alloc(device ? : "arc%d", &err);
	if (!dev)
		return err;
	lp = dev->priv = kmalloc(sizeof(struct arcnet_local), GFP_KERNEL);
	if (!lp)
		return -ENOMEM;
	memset(lp, 0, sizeof(struct arcnet_local));

	if (node && node != 0xff)
		dev->dev_addr[0] = node;

	lp->backplane = backplane;
	lp->clockp = clockp & 7;
	lp->clockm = clockm & 3;
	lp->timeout = timeout & 3;
	lp->hw.open_close_ll = com20020isa_open_close;

	dev->base_addr = io;
	dev->irq = irq;

	if (dev->irq == 2)
		dev->irq = 9;

	if (com20020isa_probe(dev))
		return -EIO;

	my_dev = dev;
	return 0;
}
Example #2
0
static int __init com20020_init(void)
{
    struct net_device *dev;
    struct arcnet_local *lp;

    dev = alloc_arcdev(device);
    if (!dev)
        return -ENOMEM;

    if (node && node != 0xff)
        dev->dev_addr[0] = node;

    lp = dev->priv;
    lp->backplane = backplane;
    lp->clockp = clockp & 7;
    lp->clockm = clockm & 3;
    lp->timeout = timeout & 3;
    lp->hw.owner = THIS_MODULE;

    dev->base_addr = io;
    dev->irq = irq;

    if (dev->irq == 2)
        dev->irq = 9;

    if (com20020isa_probe(dev)) {
        free_netdev(dev);
        return -EIO;
    }

    my_dev = dev;
    return 0;
}