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 --- |