summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2016-09-11 10:10:30 +0100
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2025-04-04 15:01:44 +0100
commitcf3b7c35876e85312ebf8fbd00d604f627a6ba1c (patch)
tree04651f73cac0f6cb32edf786305038f3c1559b22
parent7d3218a66ea70ec7787225eb6afdb6fa9e0e3f38 (diff)
3c589_cs 16-bit pcmcia fix
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r--drivers/net/ethernet/3com/3c589_cs.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/3com/3c589_cs.c b/drivers/net/ethernet/3com/3c589_cs.c
index be58dac0502a..c35573bf5dbf 100644
--- a/drivers/net/ethernet/3com/3c589_cs.c
+++ b/drivers/net/ethernet/3com/3c589_cs.c
@@ -587,7 +587,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);
@@ -867,8 +871,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++;