From dfaeb24d717abd2a9398ac89f88b59ac9f91441d Mon Sep 17 00:00:00 2001 From: Russell King Date: Sun, 11 Sep 2016 10:10:30 +0100 Subject: 3c589_cs 16-bit pcmcia fix Signed-off-by: Russell King --- drivers/net/ethernet/3com/3c589_cs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/ethernet/3com/3c589_cs.c b/drivers/net/ethernet/3com/3c589_cs.c index 09816e84314d..00f790cd6efe 100644 --- a/drivers/net/ethernet/3com/3c589_cs.c +++ b/drivers/net/ethernet/3com/3c589_cs.c @@ -578,7 +578,11 @@ static netdev_tx_t el3_start_xmit(struct sk_buff *skb, outw(skb->len, ioaddr + TX_FIFO); outw(0x00, ioaddr + TX_FIFO); /* ... and the packet rounded to a doubleword. */ +#if 0 outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2); +#else + outsw(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2 << 1); +#endif if (inw(ioaddr + TX_FREE) <= 1536) { netif_stop_queue(dev); @@ -858,8 +862,13 @@ static int el3_rx(struct net_device *dev) pkt_len, rx_status); if (skb != NULL) { skb_reserve(skb, 2); +#if 0 insl(ioaddr+RX_FIFO, skb_put(skb, pkt_len), (pkt_len+3)>>2); +#else + insw(ioaddr+RX_FIFO, skb_put(skb, pkt_len), + (pkt_len+3)>>2 << 1); +#endif skb->protocol = eth_type_trans(skb, dev); netif_rx(skb); dev->stats.rx_packets++; -- cgit