net_device.{base_addr, irq} removal update
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest39 patches 23 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/39 | sungem: stop using net_device.{base_addr, irq}.drivers/ | +0 | 0 replies | |
| 2/39 | tehuti: stop using net_device.{base_addr, irq}.drivers/ | +0 | 0 replies | |
| 3/39 | forcedeth: stop using net_device.{base_addr, irq}.drivers/ | +0 | 0 replies | |
| 4/39 | atl1c: stop using net_device.{base_addr, irq}.drivers/ | +1 | 0 replies | |
| 5/39 | via-rhine: stop using net_device.{base_addr, irq}.drivers/ | +6 | 0 replies | |
| 6/39 | hamachi: stop using net_device.{base_addr, irq}.drivers/ | +3 | 0 replies | |
| 7/39 | via-velocity: stop using net_device.{base_addr, irq}.drivers/ | +2 | 0 replies | |
| 8/39 | sundance: stop using net_device.{base_addr, irq}.drivers/ | +5 | 0 replies | |
| 9/39 | vxge: stop using net_device.{base_addr, irq}.drivers/ | +7 | 0 replies | |
| 10/39 | fealnx: stop using net_device.{base_addr, irq}.drivers/ | +8 | 1 reply | |
| 11/39 | atl1e: stop using net_device.{base_addr, irq}.drivers/ | +6 | 0 replies | |
| 12/39 | s2io: stop using net_device.{base_addr, irq}.drivers/ | +5 | 0 replies | |
| 13/39 | 8139cp: stop using net_device.{base_addr, irq}.drivers/ | +11 | 0 replies | |
| 14/39 | yellowfin: stop using net_device.{base_addr, irq}.drivers/ | +14 | 0 replies | |
| 15/39 | starfire: stop using net_device.{base_addr, irq}.drivers/ | +5 | 0 replies | |
| 16/39 | starfire: remove deprecated options.drivers/ | +6 | 0 replies | |
| 17/39 | bnx2: stop using net_device.{base_addr, irq}.drivers/ | +14 | 1 reply | |
| 18/39 | winbond840: stop using net_device.{base_addr, irq}.drivers/ | +8 | 0 replies | |
| 19/39 | sc92031: stop using net_device.{base_addr, irq}drivers/ | +11 | 0 replies | |
| 20/39 | sis190: stop using net_device.{base_addr, irq}drivers/ | +11 | 0 replies | |
| 21/39 | tulip_core: stop using net_device.{base_addr, irq}.drivers/ | +16 | 1 reply | |
| 22/39 | sunhme: stop using net_device.{base_addr, irq}.drivers/ drivers/ | +10 | 0 replies | |
| 23/39 | uli526x: fix regions leak in driver probe error path.drivers/ | +20 | 1 reply | |
| 24/39 | xircom_cb: fix device probe error path.drivers/ | +34 | 1 reply | |
| 25/39 | xircom_cb: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/ | +124 | 1 reply | |
| 26/39 | de2104x: stop using net_device.{base_addr, irq}.drivers/ | +16 | 1 reply | |
| 27/39 | smsc9420: stop using net_device.{base_addr, irq}.drivers/ | +23 | 1 reply | |
| 28/39 | natsemi: stop using net_device.{base_addr, irq}.drivers/ | +39 | 9 replies | |
| 29/39 | 8139too: dev->{base_addr, irq} removal.drivers/ | +56 | 0 replies | |
| 30/39 | dl2k: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/ drivers/ | +209 | 0 replies | |
| 31/39 | uli526x: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/ | +202 | 1 reply | |
| 32/39 | epic100: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/ | +201 | 1 reply | |
| 33/39 | dmfe: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/ | +153 | 1 reply | |
| 34/39 | sis900: stop using net_device.{base_addr, irq} and convert to __iomem.drivers/ | +201 | 0 replies | |
| 35/39 | myri10ge: stop using net_device.{base_addr, irq}.drivers/ | +2 | 1 reply | |
| 36/39 | rrunner: stop using net_device.{base_addr, irq}.drivers/ | +35 | 0 replies | |
| 37/39 | ipw2200: stop using net_device.{base_addr, irq}.drivers/ | +0 | 0 replies | |
| 38/39 | ipw2100: stop using net_device.base_addr.drivers/ drivers/ | +39 | 0 replies | |
| 39/39 | ipw2100: remove useless tests in the PCI device remove path.drivers/ | +26 | 0 replies |
Reviews trailers per patch
7 of 39 patches have a Reviewed-by or Acked-by.
| Patch | Andrew Gallatin | Michael Chan | Grant 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/39 | A-b | ||
| 18/39 | |||
| 19/39 | |||
| 20/39 | |||
| 21/39 | Ack-by | ||
| 22/39 | |||
| 23/39 | Ack-by | ||
| 24/39 | A-b | ||
| 25/39 | A-b | ||
| 26/39 | A-b | ||
| 27/39 | |||
| 28/39 | |||
| 29/39 | |||
| 30/39 | |||
| 31/39 | A-b | ||
| 32/39 | |||
| 33/39 | A-b | ||
| 34/39 | |||
| 35/39 | A-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.
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)
---------------------------------------------------------------------
6165c337223fb787abc2dfc1f8c5605ec3ba9950a37b4503ec92e71e5bba6f64ffd2b524deab1b843865105f32477233bcbaec6d335bd1ea261b6ef961deffedec0c150a7c09085ca91146d881a3e48ea5a6d0922ea55d7c8e7792633135e8cb94ccd1c2ece290b1c52d06f3e336eb2677a7f374b1ec803683b453d5ea2df18d0af1a760e458c5b649415bfd6b7afbabfb5dc03aca2fea47cae8db27239bb5890a3928f4342bab3bf0b2eb63fe71cecace548e993fb93f6502cb93284bc6e6eec6ffb36456cef37a31158379894d7abc5a76f282130dff7402a071b8d13055fe45a281c97ec85454ca8e1c2bc9932166722b2708e6b621a33fe8f778ea35e1f0ddb4636a3cebeb3c55c12a033d30603baf34d449df75d2c1d8cb2b1097a9c64778dc1ab9bb33bcf5bf62bfc7271dcd170006b9d55eb555b2e79e22c1fa86e0a05a61e7c690fce53cd37eddc9808134bc0e6b9837f1d8b45bae9746b74531bb9c5eacc022183df6e343487f61a41077ec5cf8587248eb502f5d9be785d97db1700b0c2498bd0a80fd7dee03a8c38dcf5e2f236cba12a738e3ba82bf49e43047013d1f913e61119e9efbb8710948a1d88147c10090af0b42ae3958bafae0bfb262eda364adebf21aebb25af69ad4f8c16cc10a675dcdc3973be8d9bd722d90aa0a923387c00c92b368ae7906952817cbd1d014fe4c671aa01c99a80822e918777b86f4b18b83fd999dc7e9d5247826d4d38802a4c01e96299ec883436b6a332e692c558b86ffcb124c5b3a269de66b5e37887dbdbee66f11ad4c1ba842e89b284ccf50da707db239c57d31d1d3fdc73e22b27ed9c46fc1da655a6c96842f5ca982949538ce74a9d687c684707ec0defd6f6abf4b10dee5c9ea29bcd8581d99e3fd59190a37ba3016b2bcfcdc901b921fb2ced718e55dba46ed9674eae504c8545ed06f9122c04d543d7b9e3259ac12529c5780881ffd18497450bea20cb581457262a49dac7f66edf3fcbb6aa9e728b59b6b8e6e7dc86a9103970db98c0b9cb44e5640c2fc7d49f20cb9a3bc4328e68a159692648e364341c8560cb3215c2055fc4f79fef91ed7c9e337785d25
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
@@ -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.