dnet.c (9edd576d89a5b6d3e136d7dcab654d887c0d25b7) dnet.c (f2cedb63df14342ad40a8b5b324fc5d94a60b665)
1/*
2 * Dave DNET Ethernet Controller driver
3 *
4 * Copyright (C) 2008 Dave S.r.l. <www.dave.eu>
5 * Copyright (C) 2009 Ilya Yanok, Emcraft Systems Ltd, <yanok@emcraft.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as

--- 407 unchanged lines hidden (view full) ---

416
417 cmd_word = dnet_readl(bp, RX_LEN_FIFO);
418 pkt_len = cmd_word & 0xFFFF;
419
420 if (cmd_word & 0xDF180000)
421 printk(KERN_ERR "%s packet receive error %x\n",
422 __func__, cmd_word);
423
1/*
2 * Dave DNET Ethernet Controller driver
3 *
4 * Copyright (C) 2008 Dave S.r.l. <www.dave.eu>
5 * Copyright (C) 2009 Ilya Yanok, Emcraft Systems Ltd, <yanok@emcraft.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as

--- 407 unchanged lines hidden (view full) ---

416
417 cmd_word = dnet_readl(bp, RX_LEN_FIFO);
418 pkt_len = cmd_word & 0xFFFF;
419
420 if (cmd_word & 0xDF180000)
421 printk(KERN_ERR "%s packet receive error %x\n",
422 __func__, cmd_word);
423
424 skb = dev_alloc_skb(pkt_len + 5);
424 skb = netdev_alloc_skb(dev, pkt_len + 5);
425 if (skb != NULL) {
426 /* Align IP on 16 byte boundaries */
427 skb_reserve(skb, 2);
428 /*
429 * 'skb_put()' points to the start of sk_buff
430 * data area.
431 */
432 data_ptr = (unsigned int *)skb_put(skb, pkt_len);

--- 416 unchanged lines hidden (view full) ---

849 if (!request_mem_region(mem_base, mem_size, DRV_NAME)) {
850 dev_err(&pdev->dev, "no memory region available\n");
851 err = -EBUSY;
852 goto err_out;
853 }
854
855 err = -ENOMEM;
856 dev = alloc_etherdev(sizeof(*bp));
425 if (skb != NULL) {
426 /* Align IP on 16 byte boundaries */
427 skb_reserve(skb, 2);
428 /*
429 * 'skb_put()' points to the start of sk_buff
430 * data area.
431 */
432 data_ptr = (unsigned int *)skb_put(skb, pkt_len);

--- 416 unchanged lines hidden (view full) ---

849 if (!request_mem_region(mem_base, mem_size, DRV_NAME)) {
850 dev_err(&pdev->dev, "no memory region available\n");
851 err = -EBUSY;
852 goto err_out;
853 }
854
855 err = -ENOMEM;
856 dev = alloc_etherdev(sizeof(*bp));
857 if (!dev) {
858 dev_err(&pdev->dev, "etherdev alloc failed, aborting.\n");
857 if (!dev)
859 goto err_out_release_mem;
858 goto err_out_release_mem;
860 }
861
862 /* TODO: Actually, we have some interesting features... */
863 dev->features |= 0;
864
865 bp = netdev_priv(dev);
866 bp->dev = dev;
867
868 platform_set_drvdata(pdev, dev);

--- 23 unchanged lines hidden (view full) ---

892 dev->base_addr = (unsigned long)bp->regs;
893
894 bp->capabilities = dnet_readl(bp, VERCAPS) & DNET_CAPS_MASK;
895
896 dnet_get_hwaddr(bp);
897
898 if (!is_valid_ether_addr(dev->dev_addr)) {
899 /* choose a random ethernet address */
859
860 /* TODO: Actually, we have some interesting features... */
861 dev->features |= 0;
862
863 bp = netdev_priv(dev);
864 bp->dev = dev;
865
866 platform_set_drvdata(pdev, dev);

--- 23 unchanged lines hidden (view full) ---

890 dev->base_addr = (unsigned long)bp->regs;
891
892 bp->capabilities = dnet_readl(bp, VERCAPS) & DNET_CAPS_MASK;
893
894 dnet_get_hwaddr(bp);
895
896 if (!is_valid_ether_addr(dev->dev_addr)) {
897 /* choose a random ethernet address */
900 random_ether_addr(dev->dev_addr);
898 eth_hw_addr_random(dev);
901 __dnet_set_hwaddr(bp);
902 }
903
904 err = register_netdev(dev);
905 if (err) {
906 dev_err(&pdev->dev, "Cannot register net device, aborting.\n");
907 goto err_out_free_irq;
908 }

--- 78 unchanged lines hidden ---
899 __dnet_set_hwaddr(bp);
900 }
901
902 err = register_netdev(dev);
903 if (err) {
904 dev_err(&pdev->dev, "Cannot register net device, aborting.\n");
905 goto err_out_free_irq;
906 }

--- 78 unchanged lines hidden ---