Skip to content

net_device.{base_addr, irq} removal update

Francois Romieu netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest39 patches 23 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/39sungem: stop using net_device.{base_addr, irq}.drivers/net/ethernet/sun/sungem.c+0 -20 replies
2/39tehuti: stop using net_device.{base_addr, irq}.drivers/net/ethernet/tehuti/tehuti.c+0 -40 replies
3/39forcedeth: stop using net_device.{base_addr, irq}.drivers/net/ethernet/nvidia/forcedeth.c+0 -50 replies
4/39atl1c: stop using net_device.{base_addr, irq}.drivers/net/ethernet/atheros/atl1c/atl1c_main.c+1 -40 replies
5/39via-rhine: stop using net_device.{base_addr, irq}.drivers/net/ethernet/via/via-rhine.c+6 -60 replies
6/39hamachi: stop using net_device.{base_addr, irq}.drivers/net/ethernet/packetengines/hamachi.c+3 -80 replies
7/39via-velocity: stop using net_device.{base_addr, irq}.drivers/net/ethernet/via/via-velocity.c+2 -70 replies
8/39sundance: stop using net_device.{base_addr, irq}.drivers/net/ethernet/dlink/sundance.c+5 -70 replies
9/39vxge: stop using net_device.{base_addr, irq}.drivers/net/ethernet/neterion/vxge/vxge-main.c+7 -110 replies
10/39fealnx: stop using net_device.{base_addr, irq}.drivers/net/ethernet/fealnx.c+8 -91 reply
11/39atl1e: stop using net_device.{base_addr, irq}.drivers/net/ethernet/atheros/atl1e/atl1e_main.c+6 -110 replies
12/39s2io: stop using net_device.{base_addr, irq}.drivers/net/ethernet/neterion/s2io.c+5 -90 replies
13/398139cp: stop using net_device.{base_addr, irq}.drivers/net/ethernet/realtek/8139cp.c+11 -100 replies
14/39yellowfin: stop using net_device.{base_addr, irq}.drivers/net/ethernet/packetengines/yellowfin.c+14 -180 replies
15/39starfire: stop using net_device.{base_addr, irq}.drivers/net/ethernet/adaptec/starfire.c+5 -90 replies
16/39starfire: remove deprecated options.drivers/net/ethernet/adaptec/starfire.c+6 -340 replies
17/39bnx2: stop using net_device.{base_addr, irq}.drivers/net/ethernet/broadcom/bnx2.c+14 -271 reply
18/39winbond840: stop using net_device.{base_addr, irq}.drivers/net/ethernet/dec/tulip/winbond-840.c+8 -90 replies
19/39sc92031: stop using net_device.{base_addr, irq}drivers/net/ethernet/silan/sc92031.c+11 -230 replies
20/39sis190: stop using net_device.{base_addr, irq}drivers/net/ethernet/sis/sis190.c+11 -150 replies
21/39tulip_core: stop using net_device.{base_addr, irq}.drivers/net/ethernet/dec/tulip/tulip_core.c+16 -111 reply
22/39sunhme: stop using net_device.{base_addr, irq}.drivers/net/ethernet/sun/sunhme.c drivers/net/ethernet/sun/sunhme.h+10 -110 replies
23/39uli526x: fix regions leak in driver probe error path.drivers/net/ethernet/dec/tulip/uli526x.c+20 -281 reply
24/39xircom_cb: fix device probe error path.drivers/net/ethernet/dec/tulip/xircom_cb.c+34 -191 reply
25/39xircom_cb: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/net/ethernet/dec/tulip/xircom_cb.c+124 -1031 reply
26/39de2104x: stop using net_device.{base_addr, irq}.drivers/net/ethernet/dec/tulip/de2104x.c+16 -181 reply
27/39smsc9420: stop using net_device.{base_addr, irq}.drivers/net/ethernet/smsc/smsc9420.c+23 -251 reply
28/39natsemi: stop using net_device.{base_addr, irq}.drivers/net/ethernet/natsemi/natsemi.c+39 -289 replies
29/398139too: dev->{base_addr, irq} removal.drivers/net/ethernet/realtek/8139too.c+56 -800 replies
30/39dl2k: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/net/ethernet/dlink/dl2k.c drivers/net/ethernet/dlink/dl2k.h+209 -2260 replies
31/39uli526x: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/net/ethernet/dec/tulip/uli526x.c+202 -1951 reply
32/39epic100: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/net/ethernet/smsc/epic100.c+201 -2021 reply
33/39dmfe: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/net/ethernet/dec/tulip/dmfe.c+153 -1421 reply
34/39sis900: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/net/ethernet/sis/sis900.c+201 -1740 replies
35/39myri10ge: stop using net_device.{base_addr, irq}.drivers/net/ethernet/myricom/myri10ge/myri10ge.c+2 -51 reply
36/39rrunner: stop using net_device.{base_addr, irq}.drivers/net/hippi/rrunner.c+35 -470 replies
37/39ipw2200: stop using net_device.{base_addr, irq}.drivers/net/wireless/ipw2x00/ipw2200.c+0 -40 replies
38/39ipw2100: stop using net_device.base_addr.drivers/net/wireless/ipw2x00/ipw2100.c drivers/net/wireless/ipw2x00/ipw2100.h+39 -390 replies
39/39ipw2100: remove useless tests in the PCI device remove path.drivers/net/wireless/ipw2x00/ipw2100.c+26 -300 replies

Reviews trailers per patch

7 of 39 patches have a Reviewed-by or Acked-by.

PatchAndrew GallatinMichael ChanGrant Grundler
1/39
2/39
3/39
4/39
5/39
6/39
7/39
8/39
9/39
10/39
11/39
12/39
13/39
14/39
15/39
16/39
17/39A-b
18/39
19/39
20/39
21/39Ack-by
22/39
23/39Ack-by
24/39A-b
25/39A-b
26/39A-b
27/39
28/39
29/39
30/39
31/39A-b
32/39
33/39A-b
34/39
35/39A-b
36/39
37/39
38/39
39/39

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v1 thread

Cover letter [PATCH net-next #2 00/39] net_device.{base_addr, irq} removal update

The branch 'davem-next.base_addr.removal' is available in repository

git://violet.fr.zoreil.com/romieu/linux davem-next.base_addr.removal

with the changes below.

Changes since #1 (2012/03/15)

- display the PCI resource address in the bnx2 driver as suggested by Michael Chan. It is done as well where things have been moved to mapped addresses, namely sc92031, epic100 and rrunner. I have not done it where net_device.base_addr already contained a mapped address.

- convert drivers to io{read/write} in place of inl/out #define. Minimal comments keep trace of the nature of the committed PCI bar range when it gets remapped. It applies to dl2k, dmfe, epic100, uli526x, xircom_cb

- reworked the chip dependent uli526x phy operations to minimize conditional registers offsets and parameters. void (__iomem) * are too easy to abuse.

- added myri10ge, rrunner, ipw2100, ipw2200

Patches previously acked by Grant Grundler have been modified by ioread and iowrite changes. A compressed diff from the former version of the relevant files is included below. I have moved version #1 of the branch to davem-next.base_addr.removal-20120315 for those who want to diff themselves. If there are no further changes, I'll rebase and send a single pull request for the series including Grant's Acked-by once he says it is ok.

Distance from 'davem-next' (73a0d907301ece200d32b4e8ba2da2ca296b507f)
---------------------------------------------------------------------

6165c337223fb787abc2dfc1f8c5605ec3ba9950
a37b4503ec92e71e5bba6f64ffd2b524deab1b84
3865105f32477233bcbaec6d335bd1ea261b6ef9
61deffedec0c150a7c09085ca91146d881a3e48e
a5a6d0922ea55d7c8e7792633135e8cb94ccd1c2
ece290b1c52d06f3e336eb2677a7f374b1ec8036
83b453d5ea2df18d0af1a760e458c5b649415bfd
6b7afbabfb5dc03aca2fea47cae8db27239bb589
0a3928f4342bab3bf0b2eb63fe71cecace548e99
3fb93f6502cb93284bc6e6eec6ffb36456cef37a
31158379894d7abc5a76f282130dff7402a071b8
d13055fe45a281c97ec85454ca8e1c2bc9932166
722b2708e6b621a33fe8f778ea35e1f0ddb4636a
3cebeb3c55c12a033d30603baf34d449df75d2c1
d8cb2b1097a9c64778dc1ab9bb33bcf5bf62bfc7
271dcd170006b9d55eb555b2e79e22c1fa86e0a0
5a61e7c690fce53cd37eddc9808134bc0e6b9837
f1d8b45bae9746b74531bb9c5eacc022183df6e3
43487f61a41077ec5cf8587248eb502f5d9be785
d97db1700b0c2498bd0a80fd7dee03a8c38dcf5e
2f236cba12a738e3ba82bf49e43047013d1f913e
61119e9efbb8710948a1d88147c10090af0b42ae
3958bafae0bfb262eda364adebf21aebb25af69a
d4f8c16cc10a675dcdc3973be8d9bd722d90aa0a
923387c00c92b368ae7906952817cbd1d014fe4c
671aa01c99a80822e918777b86f4b18b83fd999d
c7e9d5247826d4d38802a4c01e96299ec883436b
6a332e692c558b86ffcb124c5b3a269de66b5e37
887dbdbee66f11ad4c1ba842e89b284ccf50da70
7db239c57d31d1d3fdc73e22b27ed9c46fc1da65
5a6c96842f5ca982949538ce74a9d687c684707e
c0defd6f6abf4b10dee5c9ea29bcd8581d99e3fd
59190a37ba3016b2bcfcdc901b921fb2ced718e5
5dba46ed9674eae504c8545ed06f9122c04d543d
7b9e3259ac12529c5780881ffd18497450bea20c
b581457262a49dac7f66edf3fcbb6aa9e728b59b
6b8e6e7dc86a9103970db98c0b9cb44e5640c2fc
7d49f20cb9a3bc4328e68a159692648e364341c8
560cb3215c2055fc4f79fef91ed7c9e337785d25

Diffstat
--------

 drivers/net/ethernet/adaptec/starfire.c          |   54 +--
 drivers/net/ethernet/atheros/atl1c/atl1c_main.c  |    5 +-
 drivers/net/ethernet/atheros/atl1e/atl1e_main.c  |   17 +-
 drivers/net/ethernet/broadcom/bnx2.c             |   41 +--
 drivers/net/ethernet/dec/tulip/de2104x.c         |   34 +-
 drivers/net/ethernet/dec/tulip/dmfe.c            |  295 ++++++++-------
 drivers/net/ethernet/dec/tulip/tulip_core.c      |   27 +-
 drivers/net/ethernet/dec/tulip/uli526x.c         |  443 +++++++++++-----------
 drivers/net/ethernet/dec/tulip/winbond-840.c     |   17 +-
 drivers/net/ethernet/dec/tulip/xircom_cb.c       |  280 ++++++++------
 drivers/net/ethernet/dlink/dl2k.c                |  416 ++++++++++----------
 drivers/net/ethernet/dlink/dl2k.h                |   19 +-
 drivers/net/ethernet/dlink/sundance.c            |   12 +-
 drivers/net/ethernet/fealnx.c                    |   17 +-
 drivers/net/ethernet/myricom/myri10ge/myri10ge.c |    7 +-
 drivers/net/ethernet/natsemi/natsemi.c           |   67 ++--
 drivers/net/ethernet/neterion/s2io.c             |   14 +-
 drivers/net/ethernet/neterion/vxge/vxge-main.c   |   18 +-
 drivers/net/ethernet/nvidia/forcedeth.c          |    5 -
 drivers/net/ethernet/packetengines/hamachi.c     |   11 +-
 drivers/net/ethernet/packetengines/yellowfin.c   |   32 +-
 drivers/net/ethernet/realtek/8139cp.c            |   21 +-
 drivers/net/ethernet/realtek/8139too.c           |  136 +++----
 drivers/net/ethernet/silan/sc92031.c             |   34 +--
 drivers/net/ethernet/sis/sis190.c                |   26 +-
 drivers/net/ethernet/sis/sis900.c                |  375 ++++++++++---------
 drivers/net/ethernet/smsc/epic100.c              |  403 ++++++++++----------
 drivers/net/ethernet/smsc/smsc9420.c             |   48 ++--
 drivers/net/ethernet/sun/sungem.c                |    2 -
 drivers/net/ethernet/sun/sunhme.c                |   20 +-
 drivers/net/ethernet/sun/sunhme.h                |    1 +
 drivers/net/ethernet/tehuti/tehuti.c             |    4 -
 drivers/net/ethernet/via/via-rhine.c             |   12 +-
 drivers/net/ethernet/via/via-velocity.c          |    9 +-
 drivers/net/hippi/rrunner.c                      |   82 ++---
 drivers/net/wireless/ipw2x00/ipw2100.c           |  131 +++----
 drivers/net/wireless/ipw2x00/ipw2100.h           |    1 +
 drivers/net/wireless/ipw2x00/ipw2200.c           |    4 -
 38 files changed, 1527 insertions(+), 1613 deletions(-)

Shortlog
--------

Francois Romieu (39):
sungem: stop using net_device.{base_addr, irq}.
tehuti: stop using net_device.{base_addr, irq}.
forcedeth: stop using net_device.{base_addr, irq}.
atl1c: stop using net_device.{base_addr, irq}.
via-rhine: stop using net_device.{base_addr, irq}.
hamachi: stop using net_device.{base_addr, irq}.
via-velocity: stop using net_device.{base_addr, irq}.
sundance: stop using net_device.{base_addr, irq}.
vxge: stop using net_device.{base_addr, irq}.
fealnx: stop using net_device.{base_addr, irq}.
atl1e: stop using net_device.{base_addr, irq}.
s2io: stop using net_device.{base_addr, irq}.
8139cp: stop using net_device.{base_addr, irq}.
yellowfin: stop using net_device.{base_addr, irq}.
starfire: stop using net_device.{base_addr, irq}.
starfire: remove deprecated options.
bnx2: stop using net_device.{base_addr, irq}.
winbond840: stop using net_device.{base_addr, irq}.
sc92031: stop using net_device.{base_addr, irq}
sis190: stop using net_device.{base_addr, irq}
tulip_core: stop using net_device.{base_addr, irq}.
sunhme: stop using net_device.{base_addr, irq}.
uli526x: fix regions leak in driver probe error path.
xircom_cb: fix device probe error path.
xircom_cb: stop using net_device.{base_addr, irq} and convert to __iomem.
de2104x: stop using net_device.{base_addr, irq}.
smsc9420: stop using net_device.{base_addr, irq}.
natsemi: stop using net_device.{base_addr, irq}.
8139too: dev->{base_addr, irq} removal.
dl2k: stop using net_device.{base_addr, irq} and convert to __iomem.
uli526x: stop using net_device.{base_addr, irq} and convert to __iomem.
epic100: stop using net_device.{base_addr, irq} and convert to __iomem.
dmfe: stop using net_device.{base_addr, irq} and convert to __iomem.
sis900: stop using net_device.{base_addr, irq} and convert to __iomem.
myri10ge: stop using net_device.{base_addr, irq}.
rrunner: stop using net_device.{base_addr, irq}.
ipw2200: stop using net_device.{base_addr, irq}.
ipw2100: stop using net_device.base_addr.
ipw2100: remove useless tests in the PCI device remove path.

drivers/net/ethernet/dec/tulip/dmfe.c +81 -86
index a1b5914..0ef5b68 100644
@@ -150,6 +150,12 @@
 #define DMFE_TX_TIMEOUT ((3*HZ)/2)	/* tx packet time-out time 1.5 s" */
 #define DMFE_TX_KICK 	(HZ/2)	/* tx packet Kick-out time 0.5 s" */
 
+#define dw32(reg, val)	iowrite32(val, ioaddr + (reg))
+#define dw16(reg, val)	iowrite16(val, ioaddr + (reg))
+#define dr32(reg)	ioread32(ioaddr + (reg))
+#define dr16(reg)	ioread16(ioaddr + (reg))
+#define dr8(reg)	ioread8(ioaddr + (reg))
+
 #define DMFE_DBUG(dbug_now, msg, value)			\
 	do {						\
 		if (dmfe_debug || (dbug_now))		\
@@ -178,20 +184,6 @@
 
 #define SROM_V41_CODE   0x14
 
-#define outl		iowrite32
-#define outw		iowrite16
-#define inl		ioread32
-#define inw		ioread16
-#define inb		ioread8
-
-#define SROM_CLK_WRITE(data, ioaddr) \
-	outl(data|CR9_SROM_READ|CR9_SRCS,ioaddr); \
-	udelay(5); \
-	outl(data|CR9_SROM_READ|CR9_SRCS|CR9_SRCLK,ioaddr); \
-	udelay(5); \
-	outl(data|CR9_SROM_READ|CR9_SRCS,ioaddr); \
-	udelay(5);
-
 #define __CHK_IO_SIZE(pci_id, dev_rev) \
  (( ((pci_id)==PCI_DM9132_ID) || ((dev_rev) >= 0x30) ) ? \
 	DM9102A_IO_SIZE: DM9102_IO_SIZE)
@@ -631,9 +623,9 @@ static void dmfe_init_dm910x(struct DEVICE *dev)
 	DMFE_DBUG(0, "dmfe_init_dm910x()", 0);
 
 	/* Reset DM910x MAC controller */
-	outl(DM910X_RESET, ioaddr + DCR0);	/* RESET MAC */
+	dw32(DCR0, DM910X_RESET);	/* RESET MAC */
 	udelay(100);
-	outl(db->cr0_data, ioaddr + DCR0);
+	dw32(DCR0, db->cr0_data);
 	udelay(5);
 
 	/* Phy addr : DM910(A)2/DM9132/9801, phy address = 1 */
@@ -644,12 +636,12 @@ static void dmfe_init_dm910x(struct DEVICE *dev)
 	db->media_mode = dmfe_media_mode;
 
 	/* RESET Phyxcer Chip by GPR port bit 7 */
-	outl(0x180, ioaddr + DCR12);		/* Let bit 7 output port */
+	dw32(DCR12, 0x180);		/* Let bit 7 output port */
 	if (db->chip_id == PCI_DM9009_ID) {
-		outl(0x80, ioaddr + DCR12);	/* Issue RESET signal */
+		dw32(DCR12, 0x80);	/* Issue RESET signal */
 		mdelay(300);			/* Delay 300 ms */
 	}
-	outl(0x0, ioaddr + DCR12);	/* Clear RESET signal */
+	dw32(DCR12, 0x0);	/* Clear RESET signal */
 
 	/* Process Phyxcer Media Mode */
 	if ( !(db->media_mode & 0x10) )	/* Force 1M mode */
@@ -673,10 +665,10 @@ static void dmfe_init_dm910x(struct DEVICE *dev)
 
 	/* Init CR7, interrupt active bit */
 	db->cr7_data = CR7_DEFAULT;
-	outl(db->cr7_data, ioaddr + DCR7);
+	dw32(DCR7, db->cr7_data);
 
 	/* Init CR15, Tx jabber and Rx watchdog timer */
-	outl(db->cr15_data, ioaddr + DCR15);
+	dw32(DCR15, db->cr15_data);
 
 	/* Enable DM910X Tx/Rx function */
 	db->cr6_data |= CR6_RXSC | CR6_TXSC | 0x40000;
@@ -719,7 +711,7 @@ static netdev_tx_t dmfe_start_xmit(struct sk_buff *skb,
 	}
 
 	/* Disable NIC interrupt */
-	outl(0, ioaddr + DCR7);
+	dw32(DCR7, 0);
 
 	/* transmit this packet */
 	txptr = db->tx_insert_ptr;
@@ -733,11 +725,11 @@ static netdev_tx_t dmfe_start_xmit(struct sk_buff *skb,
 	if ( (!db->tx_queue_cnt) && (db->tx_packet_cnt < TX_MAX_SEND_CNT) ) {
 		txptr->tdes0 = cpu_to_le32(0x80000000);	/* Set owner bit */
 		db->tx_packet_cnt++;			/* Ready to send */
-		outl(0x1, ioaddr + DCR1);	/* Issue Tx polling */
+		dw32(DCR1, 0x1);			/* Issue Tx polling */
 		dev->trans_start = jiffies;		/* saved time stamp */
 	} else {
 		db->tx_queue_cnt++;			/* queue TX packet */
-		outl(0x1, ioaddr + DCR1);	/* Issue Tx polling */
+		dw32(DCR1, 0x1);			/* Issue Tx polling */
 	}
 
 	/* Tx resource check */
@@ -746,7 +738,7 @@ static netdev_tx_t dmfe_start_xmit(struct sk_buff *skb,
 
 	/* Restore CR7 to enable interrupt */
 	spin_unlock_irqrestore(&db->lock, flags);
-	outl(db->cr7_data, ioaddr + DCR7);
+	dw32(DCR7, db->cr7_data);
 
 	/* free this SKB */
 	dev_kfree_skb(skb);
@@ -774,7 +766,7 @@ static int dmfe_stop(struct DEVICE *dev)
 	del_timer_sync(&db->timer);
 
 	/* Reset & stop DM910X board */
-	outl(DM910X_RESET, ioaddr + DCR0);
+	dw32(DCR0, DM910X_RESET);
 	udelay(5);
 	phy_write(ioaddr, db->phy_addr, 0, 0x8000, db->chip_id);
 
@@ -814,15 +806,15 @@ static irqreturn_t dmfe_interrupt(int irq, void *dev_id)
 	spin_lock_irqsave(&db->lock, flags);
 
 	/* Got DM910X status */
-	db->cr5_data = inl(ioaddr + DCR5);
-	outl(db->cr5_data, ioaddr + DCR5);
+	db->cr5_data = dr32(DCR5);
+	dw32(DCR5, db->cr5_data);
 	if ( !(db->cr5_data & 0xc1) ) {
 		spin_unlock_irqrestore(&db->lock, flags);
 		return IRQ_HANDLED;
 	}
 
 	/* Disable all interrupt in CR7 to solve the interrupt edge problem */
-	outl(0, ioaddr + DCR7);
+	dw32(DCR7, 0);
 
 	/* Check system status */
 	if (db->cr5_data & 0x2000) {
@@ -854,7 +846,7 @@ static irqreturn_t dmfe_interrupt(int irq, void *dev_id)
 	}
 
 	/* Restore CR7 to enable interrupt mask */
-	outl(db->cr7_data, ioaddr + DCR7);
+	dw32(DCR7, db->cr7_data);
 
 	spin_unlock_irqrestore(&db->lock, flags);
 	return IRQ_HANDLED;
@@ -939,7 +931,7 @@ static void dmfe_free_tx_pkt(struct DEVICE *dev, struct dmfe_board_info * db)
 		txptr->tdes0 = cpu_to_le32(0x80000000);	/* Set owner bit */
 		db->tx_packet_cnt++;			/* Ready to send */
 		db->tx_queue_cnt--;
-		outl(0x1, ioaddr + DCR1);		/* Issue Tx polling */
+		dw32(DCR1, 0x1);			/* Issue Tx polling */
 		dev->trans_start = jiffies;		/* saved time stamp */
 	}
 
@@ -1177,7 +1169,7 @@ static void dmfe_timer(unsigned long data)
 		db->dm910x_chk_mode = 0x4;
 
 	/* Dynamic reset DM910X : system error or transmit time-out */
-	tmp_cr8 = inl(db->ioaddr + DCR8);
+	tmp_cr8 = dr32(DCR8);
 	if ( (db->interval_rx_cnt==0) && (tmp_cr8) ) {
 		db->reset_cr8++;
 		db->wait_reset = 1;
@@ -1187,7 +1179,7 @@ static void dmfe_timer(unsigned long data)
 	/* TX polling kick monitor */
 	if ( db->tx_packet_cnt &&
 	     time_after(jiffies, dev_trans_start(dev) + DMFE_TX_KICK) ) {
-		outl(0x1, ioaddr + DCR1);   /* Tx polling again */
+		dw32(DCR1, 0x1);   /* Tx polling again */
 
 		/* TX Timeout */
 		if (time_after(jiffies, dev_trans_start(dev) + DMFE_TX_TIMEOUT) ) {
@@ -1210,9 +1202,9 @@ static void dmfe_timer(unsigned long data)
 
 	/* Link status check, Dynamic media type change */
 	if (db->chip_id == PCI_DM9132_ID)
-		tmp_cr12 = inb(db->ioaddr + DCR9 + 3);	/* DM9132 */
+		tmp_cr12 = dr8(DCR9 + 3);	/* DM9132 */
 	else
-		tmp_cr12 = inb(db->ioaddr + DCR12);	/* DM9102/DM9102A */
+		tmp_cr12 = dr8(DCR12);		/* DM9102/DM9102A */
 
 	if ( ((db->chip_id == PCI_DM9102_ID) &&
 		(db->chip_revision == 0x30)) ||
@@ -1308,8 +1300,8 @@ static void dmfe_dynamic_reset(struct net_device *dev)
 	/* Sopt MAC controller */
 	db->cr6_data &= ~(CR6_RXSC | CR6_TXSC);	/* Disable Tx/Rx */
 	update_cr6(db->cr6_data, ioaddr);
-	outl(0, ioaddr + DCR7);		/* Disable Interrupt */
-	outl(inl(ioaddr + DCR5), ioaddr + DCR5);
+	dw32(DCR7, 0);				/* Disable Interrupt */
+	dw32(DCR5, dr32(DCR5));
 
 	/* Disable upper layer interface */
 	netif_stop_queue(dev);
@@ -1391,7 +1383,7 @@ static void dmfe_descriptor_init(struct net_device *dev)
 	/* tx descriptor start pointer */
 	db->tx_insert_ptr = db->first_tx_desc;
 	db->tx_remove_ptr = db->first_tx_desc;
-	outl(db->first_tx_desc_dma, ioaddr + DCR4);     /* TX DESC address */
+	dw32(DCR4, db->first_tx_desc_dma);     /* TX DESC address */
 
 	/* rx descriptor start pointer */
 	db->first_rx_desc = (void *)db->first_tx_desc +
@@ -1401,7 +1393,7 @@ static void dmfe_descriptor_init(struct net_device *dev)
 			sizeof(struct tx_desc) * TX_DESC_CNT;
 	db->rx_insert_ptr = db->first_rx_desc;
 	db->rx_ready_ptr = db->first_rx_desc;
-	outl(db->first_rx_desc_dma, ioaddr + DCR3);	/* RX DESC address */
+	dw32(DCR3, db->first_rx_desc_dma);		/* RX DESC address */
 
 	/* Init Transmit chain */
 	tmp_buf = db->buf_pool_start;
@@ -1448,9 +1440,9 @@ static void update_cr6(u32 cr6_data, void __iomem *ioaddr)
 	u32 cr6_tmp;
 
 	cr6_tmp = cr6_data & ~0x2002;           /* stop Tx/Rx */
-	outl(cr6_tmp, ioaddr + DCR6);
+	dw32(DCR6, cr6_tmp);
 	udelay(5);
-	outl(cr6_data, ioaddr + DCR6);
+	dw32(DCR6, cr6_data);
 	udelay(5);
 }
 
@@ -1463,22 +1455,16 @@ static void update_cr6(u32 cr6_data, void __iomem *ioaddr)
 static void dm9132_id_table(struct net_device *dev)
 {
 	struct dmfe_board_info *db = netdev_priv(dev);
-	void __iomem *ioaddr = db->ioaddr + 0xc0;		/* ID Table */
+	void __iomem *ioaddr = db->ioaddr + 0xc0;
+	u16 *addrptr = (u16 *)dev->dev_addr;
 	struct netdev_hw_addr *ha;
-	u16 * addrptr;
-	u32 hash_val;
 	u16 i, hash_table[4];
 
-	DMFE_DBUG(0, "dm9132_id_table()", 0);
-
 	/* Node address */
-	addrptr = (u16 *) dev->dev_addr;
-	outw(addrptr[0], ioaddr);
-	ioaddr += 4;
-	outw(addrptr[1], ioaddr);
-	ioaddr += 4;
-	outw(addrptr[2], ioaddr);
-	ioaddr += 4;
+	for (i = 0; i < 3; i++) {
+		dw16(0, addrptr[i]);
+		ioaddr += 4;
+	}
 
 	/* Clear Hash Table */
 	memset(hash_table, 0, sizeof(hash_table));
@@ -1488,13 +1474,14 @@ static void dm9132_id_table(struct net_device *dev)
 
 	/* the multicast address in Hash Table : 64 bits */
 	netdev_for_each_mc_addr(ha, dev) {
-		hash_val = cal_CRC((char *) ha->addr, 6, 0) & 0x3f;
+		u32 hash_val = cal_CRC((char *)ha->addr, 6, 0) & 0x3f;
+
 		hash_table[hash_val / 16] |= (u16) 1 << (hash_val % 16);
 	}
 
 	/* Write the hash table to MAC MD table */
 	for (i = 0; i < 4; i++, ioaddr += 4)
-		outw(hash_table[i], ioaddr);
+		dw16(0, hash_table[i]);
 }
 
 
@@ -1554,7 +1541,7 @@ static void send_filter_frame(struct net_device *dev)
 		db->tx_packet_cnt++;
 		txptr->tdes0 = cpu_to_le32(0x80000000);
 		update_cr6(db->cr6_data | 0x2000, ioaddr);
-		outl(0x1, ioaddr + DCR1);	/* Issue Tx polling */
+		dw32(DCR1, 0x1);	/* Issue Tx polling */
 		update_cr6(db->cr6_data, ioaddr);
 		dev->trans_start = jiffies;
 	} else
@@ -1590,43 +1577,55 @@ static void allocate_rx_buffer(struct net_device *dev)
 	db->rx_insert_ptr = rxptr;
 }
 
+static void srom_clk_write(void __iomem *ioaddr, u32 data)
+{
+	static const u32 cmd[] = {
+		CR9_SROM_READ | CR9_SRCS,
+		CR9_SROM_READ | CR9_SRCS | CR9_SRCLK,
+		CR9_SROM_READ | CR9_SRCS
+	};
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(cmd); i++) {
+		dw32(DCR9, data | cmd[i]);
+		udelay(5);
+	}
+}
 
 /*
  *	Read one word data from the serial ROM
  */
-
 static u16 read_srom_word(void __iomem *ioaddr, int offset)
 {
-	void __iomem *cr9_ioaddr = ioaddr + DCR9;
+	u16 srom_data;
 	int i;
-	u16 srom_data = 0;
 
-	outl(CR9_SROM_READ, cr9_ioaddr);
-	outl(CR9_SROM_READ | CR9_SRCS, cr9_ioaddr);
+	dw32(DCR9, CR9_SROM_READ);
+	dw32(DCR9, CR9_SROM_READ | CR9_SRCS);
 
 	/* Send the Read Command 110b */
-	SROM_CLK_WRITE(SROM_DATA_1, cr9_ioaddr);
-	SROM_CLK_WRITE(SROM_DATA_1, cr9_ioaddr);
-	SROM_CLK_WRITE(SROM_DATA_0, cr9_ioaddr);
+	srom_clk_write(ioaddr, SROM_DATA_1);
+	srom_clk_write(ioaddr, SROM_DATA_1);
+	srom_clk_write(ioaddr, SROM_DATA_0);
 
 	/* Send the offset */
 	for (i = 5; i >= 0; i--) {
 		srom_data = (offset & (1 << i)) ? SROM_DATA_1 : SROM_DATA_0;
-		SROM_CLK_WRITE(srom_data, cr9_ioaddr);
+		srom_clk_write(ioaddr, srom_data);
 	}
 
-	outl(CR9_SROM_READ | CR9_SRCS, cr9_ioaddr);
+	dw32(DCR9, CR9_SROM_READ | CR9_SRCS);
 
 	for (i = 16; i > 0; i--) {
-		outl(CR9_SROM_READ | CR9_SRCS | CR9_SRCLK, cr9_ioaddr);
+		dw32(DCR9, CR9_SROM_READ | CR9_SRCS | CR9_SRCLK);
 		udelay(5);
 		srom_data = (srom_data << 1) |
-				((inl(cr9_ioaddr) & CR9_CRDOUT) ? 1 : 0);
-		outl(CR9_SROM_READ | CR9_SRCS, cr9_ioaddr);
+				((dr32(DCR9) & CR9_CRDOUT) ? 1 : 0);
+		dw32(DCR9, CR9_SROM_READ | CR9_SRCS);
 		udelay(5);
 	}
 
-	outl(CR9_SROM_READ, cr9_ioaddr);
+	dw32(DCR9, CR9_SROM_READ);
 	return srom_data;
 }
 
@@ -1782,16 +1781,15 @@ static void dmfe_process_mode(struct dmfe_board_info *db)
  *	Write a word to Phy register
  */
 
-static void phy_write(void __iomem *iobase, u8 phy_addr, u8 offset,
+static void phy_write(void __iomem *ioaddr, u8 phy_addr, u8 offset,
 		      u16 phy_data, u32 chip_id)
 {
 	u16 i;
 
 	if (chip_id == PCI_DM9132_ID) {
-		outw(phy_data, iobase + 0x80 + offset * 4);
+		dw16(0x80 + offset * 4, phy_data);
 	} else {
 		/* DM9102/DM9102A Chip */
-		void __iomem *ioaddr = iobase + DCR9;
 
 		/* Send 33 synchronization clock to Phy controller */
 		for (i = 0; i < 35; i++)
@@ -1831,19 +1829,16 @@ static void phy_write(void __iomem *iobase, u8 phy_addr, u8 offset,
  *	Read a word data from phy register
  */
 
-static u16 phy_read(void __iomem *iobase, u8 phy_addr, u8 offset, u32 chip_id)
+static u16 phy_read(void __iomem *ioaddr, u8 phy_addr, u8 offset, u32 chip_id)
 {
-	void __iomem *ioaddr;
 	int i;
 	u16 phy_data;
 
 	if (chip_id == PCI_DM9132_ID) {
 		/* DM9132 Chip */
-		ioaddr = iobase + 0x80 + offset * 4;
-		phy_data = inw(ioaddr);
+		phy_data = dr16(0x80 + offset * 4);
 	} else {
 		/* DM9102/DM9102A Chip */
-		ioaddr = iobase + DCR9;
 
 		/* Send 33 synchronization clock to Phy controller */
 		for (i = 0; i < 35; i++)
@@ -1887,11 +1882,11 @@ static u16 phy_read(void __iomem *iobase, u8 phy_addr, u8 offset, u32 chip_id)
 
 static void phy_write_1bit(void __iomem *ioaddr, u32 phy_data)
 {
-	outl(phy_data, ioaddr);			/* MII Clock Low */
+	dw32(DCR9, phy_data);		/* MII Clock Low */
 	udelay(1);
-	outl(phy_data | MDCLKH, ioaddr);	/* MII Clock High */
+	dw32(DCR9, phy_data | MDCLKH);	/* MII Clock High */
 	udelay(1);
-	outl(phy_data, ioaddr);			/* MII Clock Low */
+	dw32(DCR9, phy_data);		/* MII Clock Low */
 	udelay(1);
 }
 
@@ -1904,10 +1899,10 @@ static u16 phy_read_1bit(void __iomem *ioaddr)
 {
 	u16 phy_data;
 
-	outl(0x50000, ioaddr);
+	dw32(DCR9, 0x50000);
 	udelay(1);
-	phy_data = ( inl(ioaddr) >> 19 ) & 0x1;
-	outl(0x40000, ioaddr);
+	phy_data = (dr32(DCR9) >> 19) & 0x1;
+	dw32(DCR9, 0x40000);
 	udelay(1);
 
 	return phy_data;
@@ -2121,8 +2116,8 @@ static int dmfe_suspend(struct pci_dev *pci_dev, pm_message_t state)
 	update_cr6(db->cr6_data, ioaddr);
 
 	/* Disable Interrupt */
-	outl(0, ioaddr + DCR7);
-	outl(inl(ioaddr + DCR5), ioaddr + DCR5);
+	dw32(DCR7, 0);
+	dw32(DCR5, dr32(DCR5));
 
 	/* Fre RX buffers */
 	dmfe_free_rxbuffer(db);
drivers/net/ethernet/dec/tulip/uli526x.c +167 -168

722 lines not on this page · raw message

drivers/net/ethernet/dec/tulip/xircom_cb.c +108 -98

504 lines not on this page · raw message

Signature · 3 lines
Ueimor

Will code drivers for food.