diff options
| -rw-r--r-- | drivers/net/sunhme.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c index c20a3bd21bb2..9cc13dd8a821 100644 --- a/drivers/net/sunhme.c +++ b/drivers/net/sunhme.c | |||
| @@ -1281,7 +1281,7 @@ static void happy_meal_init_rings(struct happy_meal *hp) | |||
| 1281 | skb->dev = dev; | 1281 | skb->dev = dev; |
| 1282 | 1282 | ||
| 1283 | /* Because we reserve afterwards. */ | 1283 | /* Because we reserve afterwards. */ |
| 1284 | skb_put(skb, (ETH_FRAME_LEN + RX_OFFSET)); | 1284 | skb_put(skb, (ETH_FRAME_LEN + RX_OFFSET + 4)); |
| 1285 | hme_write_rxd(hp, &hb->happy_meal_rxd[i], | 1285 | hme_write_rxd(hp, &hb->happy_meal_rxd[i], |
| 1286 | (RXFLAG_OWN | ((RX_BUF_ALLOC_SIZE - RX_OFFSET) << 16)), | 1286 | (RXFLAG_OWN | ((RX_BUF_ALLOC_SIZE - RX_OFFSET) << 16)), |
| 1287 | hme_dma_map(hp, skb->data, RX_BUF_ALLOC_SIZE, DMA_FROMDEVICE)); | 1287 | hme_dma_map(hp, skb->data, RX_BUF_ALLOC_SIZE, DMA_FROMDEVICE)); |
| @@ -1700,6 +1700,11 @@ static int happy_meal_init(struct happy_meal *hp) | |||
| 1700 | HMD(("tx old[%08x] and rx [%08x] ON!\n", | 1700 | HMD(("tx old[%08x] and rx [%08x] ON!\n", |
| 1701 | hme_read32(hp, bregs + BMAC_TXCFG), | 1701 | hme_read32(hp, bregs + BMAC_TXCFG), |
| 1702 | hme_read32(hp, bregs + BMAC_RXCFG))); | 1702 | hme_read32(hp, bregs + BMAC_RXCFG))); |
| 1703 | |||
| 1704 | /* Set larger TX/RX size to allow for 802.1q */ | ||
| 1705 | hme_write32(hp, bregs + BMAC_TXMAX, ETH_FRAME_LEN + 8); | ||
| 1706 | hme_write32(hp, bregs + BMAC_RXMAX, ETH_FRAME_LEN + 8); | ||
| 1707 | |||
| 1703 | hme_write32(hp, bregs + BMAC_TXCFG, | 1708 | hme_write32(hp, bregs + BMAC_TXCFG, |
| 1704 | hme_read32(hp, bregs + BMAC_TXCFG) | BIGMAC_TXCFG_ENABLE); | 1709 | hme_read32(hp, bregs + BMAC_TXCFG) | BIGMAC_TXCFG_ENABLE); |
| 1705 | hme_write32(hp, bregs + BMAC_RXCFG, | 1710 | hme_write32(hp, bregs + BMAC_RXCFG, |
| @@ -2039,7 +2044,7 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev) | |||
| 2039 | hme_dma_unmap(hp, dma_addr, RX_BUF_ALLOC_SIZE, DMA_FROMDEVICE); | 2044 | hme_dma_unmap(hp, dma_addr, RX_BUF_ALLOC_SIZE, DMA_FROMDEVICE); |
| 2040 | hp->rx_skbs[elem] = new_skb; | 2045 | hp->rx_skbs[elem] = new_skb; |
| 2041 | new_skb->dev = dev; | 2046 | new_skb->dev = dev; |
| 2042 | skb_put(new_skb, (ETH_FRAME_LEN + RX_OFFSET)); | 2047 | skb_put(new_skb, (ETH_FRAME_LEN + RX_OFFSET + 4)); |
| 2043 | hme_write_rxd(hp, this, | 2048 | hme_write_rxd(hp, this, |
| 2044 | (RXFLAG_OWN|((RX_BUF_ALLOC_SIZE-RX_OFFSET)<<16)), | 2049 | (RXFLAG_OWN|((RX_BUF_ALLOC_SIZE-RX_OFFSET)<<16)), |
| 2045 | hme_dma_map(hp, new_skb->data, RX_BUF_ALLOC_SIZE, DMA_FROMDEVICE)); | 2050 | hme_dma_map(hp, new_skb->data, RX_BUF_ALLOC_SIZE, DMA_FROMDEVICE)); |
| @@ -2809,8 +2814,8 @@ static int __devinit happy_meal_sbus_probe_one(struct sbus_dev *sdev, int is_qfe | |||
| 2809 | dev->watchdog_timeo = 5*HZ; | 2814 | dev->watchdog_timeo = 5*HZ; |
| 2810 | dev->ethtool_ops = &hme_ethtool_ops; | 2815 | dev->ethtool_ops = &hme_ethtool_ops; |
| 2811 | 2816 | ||
| 2812 | /* Happy Meal can do it all... except VLAN. */ | 2817 | /* Happy Meal can do it all... */ |
| 2813 | dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_VLAN_CHALLENGED; | 2818 | dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM; |
| 2814 | 2819 | ||
| 2815 | dev->irq = sdev->irqs[0]; | 2820 | dev->irq = sdev->irqs[0]; |
| 2816 | 2821 | ||
| @@ -3143,8 +3148,8 @@ static int __devinit happy_meal_pci_probe(struct pci_dev *pdev, | |||
| 3143 | dev->irq = pdev->irq; | 3148 | dev->irq = pdev->irq; |
| 3144 | dev->dma = 0; | 3149 | dev->dma = 0; |
| 3145 | 3150 | ||
| 3146 | /* Happy Meal can do it all... except VLAN. */ | 3151 | /* Happy Meal can do it all... */ |
| 3147 | dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_VLAN_CHALLENGED; | 3152 | dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM; |
| 3148 | 3153 | ||
| 3149 | #if defined(CONFIG_SBUS) && defined(CONFIG_PCI) | 3154 | #if defined(CONFIG_SBUS) && defined(CONFIG_PCI) |
| 3150 | /* Hook up PCI register/dma accessors. */ | 3155 | /* Hook up PCI register/dma accessors. */ |
