net/8139too: use iomap interface
Subsystems (2)
PATCH 1/1 net/8139too: use iomap interface
Convert to iomap and add __iomem annotations.
drivers/net/8139too.c +87 -97
@@ -569,7 +569,7 @@ struct rtl_extra_stats { };struct rtl8139_private { -void *mmio_addr; +void __iomem *ioaddr;int drv_flags;struct pci_dev *pci_dev;u32 msg_enable;
@@ -614,7 +614,7 @@ MODULE_PARM_DESC (multicast_filter_limitMODULE_PARM_DESC (media,"8139too: Bits 4+9: force full duplex, bit 5: 100Mbps" );MODULE_PARM_DESC (full_duplex,"8139too: Force full duplex for board(s) (1)" ); -static int read_eeprom (void *ioaddr,int location,int addr_len); +static int read_eeprom (void __iomem *ioaddr,int location,int addr_len);static int rtl8139_open (struct net_device *dev);static int mdio_read (struct net_device *dev,int phy_id,int location); static void mdio_write (struct net_device *dev, int phy_id, int location,
@@ -640,44 +640,29 @@ static struct ethtool_ops rtl8139_ethtoo#ifdef USE_IO_OPS -#define RTL_R8 (reg) inb (((unsigned long)ioaddr) + (reg)) -#define RTL_R16 (reg) inw (((unsigned long)ioaddr) + (reg)) -#define RTL_R32 (reg) ((unsigned long) inl (((unsigned long)ioaddr) + (reg))) -#define RTL_W8 (reg, val8) outb ((val8), ((unsigned long)ioaddr) + (reg)) -#define RTL_W16 (reg, val16) outw ((val16), ((unsigned long)ioaddr) + (reg)) -#define RTL_W32 (reg, val32) outl ((val32), ((unsigned long)ioaddr) + (reg)) +#define RTL_W8 (reg, val8) iowrite8((val8), ioaddr + (reg)) +#define RTL_W16 (reg, val16) iowrite16((val16), ioaddr + (reg)) +#define RTL_W32 (reg, val32) iowrite32((val32), ioaddr + (reg))#define RTL_W8_F RTL_W8#define RTL_W16_F RTL_W16#define RTL_W32_F RTL_W32 -#undef readb -#undef readw -#undef readl -#undef writeb -#undef writew -#undef writel -#define readb (addr) inb((unsigned long)(addr)) -#define readw (addr) inw((unsigned long)(addr)) -#define readl (addr) inl((unsigned long)(addr)) -#define writeb (val,addr) outb((val),(unsigned long)(addr)) -#define writew (val,addr) outw((val),(unsigned long)(addr)) -#define writel (val,addr) outl((val),(unsigned long)(addr)) -#else +#else /* USE_IO_OPS */ /* write MMIO register, with flush */ /* Flush avoids rtl8139 bug w/ posted MMIO writes */ -#define RTL_W8_F (reg, val8) do { writeb ((val8), ioaddr + (reg)); readb (ioaddr + (reg)); } while (0) -#define RTL_W16_F (reg, val16) do { writew ((val16), ioaddr + (reg)); readw (ioaddr + (reg)); } while (0) -#define RTL_W32_F (reg, val32) do { writel ((val32), ioaddr + (reg)); readl (ioaddr + (reg)); } while (0) +#define RTL_W8_F (reg, val8) do { iowrite8((val8), ioaddr + (reg)); ioread8(ioaddr + (reg)); } while (0) +#define RTL_W16_F (reg, val16) do { iowrite16((val16), ioaddr + (reg)); ioread16(ioaddr + (reg)); } while (0) +#define RTL_W32_F (reg, val32) do { iowrite32((val32), ioaddr + (reg)); ioread32(ioaddr + (reg)); } while (0)#define MMIO_FLUSH_AUDIT_COMPLETE 1#if MMIO_FLUSH_AUDIT_COMPLETE /* write MMIO register */ -#define RTL_W8 (reg, val8) writeb ((val8), ioaddr + (reg)) -#define RTL_W16 (reg, val16) writew ((val16), ioaddr + (reg)) -#define RTL_W32 (reg, val32) writel ((val32), ioaddr + (reg)) +#define RTL_W8 (reg, val8) iowrite8((val8), ioaddr + (reg)) +#define RTL_W16 (reg, val16) iowrite16((val16), ioaddr + (reg)) +#define RTL_W32 (reg, val32) iowrite32((val32), ioaddr + (reg))#else
@@ -687,13 +672,13 @@ static struct ethtool_ops rtl8139_ethtoo#define RTL_W32 RTL_W32_F#endif /* MMIO_FLUSH_AUDIT_COMPLETE */ +#endif /* USE_IO_OPS */ -/* read MMIO register */ -#define RTL_R8 (reg) readb (ioaddr + (reg)) -#define RTL_R16 (reg) readw (ioaddr + (reg)) -#define RTL_R32 (reg) ((unsigned long) readl (ioaddr + (reg))) +/* read register */ +#define RTL_R8 (reg) ioread8(ioaddr + (reg)) +#define RTL_R16 (reg) ioread16(ioaddr + (reg)) +#define RTL_R32 (reg) ioread32(ioaddr + (reg)) -#endif /* USE_IO_OPS */ static const u16 rtl8139_intr_mask =
@@ -740,9 +725,11 @@ static void __rtl8139_cleanup_dev (strucassert (tp->pci_dev !=NULL ); pdev = tp->pci_dev; -#ifndef USE_IO_OPS -if (tp->mmio_addr) -iounmap (tp->mmio_addr); + if (tp->ioaddr) +#ifdef USE_IO_OPS +ioport_unmap (tp->ioaddr); +#else +iounmap (tp->ioaddr);#endif /* !USE_IO_OPS */ /* it's ok to call this even if we have no regions to free */
@@ -753,7 +740,7 @@ static void __rtl8139_cleanup_dev (struc } -static void rtl8139_chip_reset (void *ioaddr) +static void rtl8139_chip_reset (void __iomem *ioaddr) {int i;
@@ -773,7 +760,7 @@ static void rtl8139_chip_reset (void *iostatic int __devinit rtl8139_init_board (struct pci_dev *pdev,struct net_device **dev_out) { -void *ioaddr; +void __iomem *ioaddr;struct net_device *dev;struct rtl8139_private *tp;u8 tmp8;
@@ -855,9 +842,12 @@ static int __devinit rtl8139_init_boardpci_set_master (pdev);#ifdef USE_IO_OPS - ioaddr = (void *) pio_start; - dev->base_addr = pio_start; - tp->mmio_addr = ioaddr; + ioaddr =ioport_map (pio_start, pio_len); +if (ioaddr ==NULL ) { + printk(KERN_ERR PFX "%s: cannot remap PIO, aborting\n", pci_name(pdev)); + rc = -EIO ; + goto err_out; + } tp->regs_len = pio_len;#else /* ioremap MMIO region */
@@ -867,10 +857,10 @@ static int __devinit rtl8139_init_board rc = -EIO ; goto err_out; } - dev->base_addr = (long ) ioaddr; - tp->mmio_addr = ioaddr; tp->regs_len = mmio_len;#endif /* USE_IO_OPS */ + dev->base_addr = (unsigned long ) ioaddr; + tp->ioaddr = ioaddr;/* Bring old chips out of low-power mode. */ RTL_W8 (HltClk,'R' );
@@ -894,7 +884,7 @@ static int __devinit rtl8139_init_board/* if unknown chip, assume array element #0, original RTL-8139 in this case */ printk (KERN_DEBUG PFX "%s: unknown chip version, assuming RTL-8139\n", pci_name(pdev)); - printk (KERN_DEBUG PFX "%s: TxConfig = 0x%lx\n", pci_name(pdev), RTL_R32 (TxConfig)); + printk (KERN_DEBUG PFX "%s: TxConfig = 0x%x\n", pci_name(pdev), RTL_R32 (TxConfig)); tp->chipset =0 ; match:
@@ -947,7 +937,7 @@ static int __devinit rtl8139_init_one (sstruct net_device *dev =NULL ;struct rtl8139_private *tp;int i, addr_len, option; -void *ioaddr; +void __iomem *ioaddr;static int board_idx =-1 ;u8 pci_rev;
@@ -983,7 +973,7 @@ static int __devinit rtl8139_init_one (sassert (dev !=NULL ); tp =netdev_priv (dev); - ioaddr = tp->mmio_addr; + ioaddr = tp->ioaddr;assert (ioaddr !=NULL ); addr_len =read_eeprom (ioaddr,0 ,8 ) ==0x8129 ?8 :6 ;
@@ -1020,7 +1010,7 @@ static int __devinit rtl8139_init_one (s/* note: tp->chipset set in rtl8139_init_board */ tp->drv_flags = board_info[ent->driver_data].hw_flags; - tp->mmio_addr = ioaddr; + tp->ioaddr = ioaddr; tp->msg_enable = (debug <0 ?RTL8139_DEF_MSG_ENABLE : ((1 << debug) -1 ));spin_lock_init (&tp->lock);
@@ -1147,47 +1137,47 @@ static void __devexit rtl8139_remove_oneNo extra delay is needed with 33Mhz PCI, but 66Mhz may change this. */ -#define eeprom_delay () readl(ee_addr) +#define eeprom_delay () ioread32(ee_addr)/* The EEPROM commands include the alway-set leading bit. */ #define EE_WRITE_CMD (5)#define EE_READ_CMD (6)#define EE_ERASE_CMD (7) -static int __devinit read_eeprom (void *ioaddr,int location,int addr_len) +static int __devinit read_eeprom (void __iomem *ioaddr,int location,int addr_len) {int i;unsigned retval =0 ; -void *ee_addr = ioaddr + Cfg9346; +void __iomem *ee_addr = ioaddr + Cfg9346;int read_cmd = location | (EE_READ_CMD << addr_len); -writeb (EE_ENB & ~EE_CS , ee_addr); -writeb (EE_ENB , ee_addr); +iowrite8 (EE_ENB & ~EE_CS , ee_addr); +iowrite8 (EE_ENB , ee_addr);eeprom_delay ();/* Shift the read command bits out. */ for (i =4 + addr_len; i >=0 ; i--) {int dataval = (read_cmd & (1 << i)) ?EE_DATA_WRITE :0 ; -writeb (EE_ENB | dataval, ee_addr); +iowrite8 (EE_ENB | dataval, ee_addr);eeprom_delay (); -writeb (EE_ENB | dataval |EE_SHIFT_CLK , ee_addr); +iowrite8 (EE_ENB | dataval |EE_SHIFT_CLK , ee_addr);eeprom_delay (); } -writeb (EE_ENB , ee_addr); +iowrite8 (EE_ENB , ee_addr);eeprom_delay ();for (i =16 ; i >0 ; i--) { -writeb (EE_ENB |EE_SHIFT_CLK , ee_addr); +iowrite8 (EE_ENB |EE_SHIFT_CLK , ee_addr);eeprom_delay (); retval = - (retval <<1 ) | ((readb (ee_addr) &EE_DATA_READ ) ?1 : + (retval <<1 ) | ((ioread8 (ee_addr) &EE_DATA_READ ) ?1 :0 ); -writeb (EE_ENB , ee_addr); +iowrite8 (EE_ENB , ee_addr);eeprom_delay (); }/* Terminate the EEPROM access. */ -writeb (~EE_CS , ee_addr); +iowrite8 (~EE_CS , ee_addr);eeprom_delay ();return retval;
@@ -1206,7 +1196,7 @@ static int __devinit read_eeprom (void *#define MDIO_WRITE0 (MDIO_DIR)#define MDIO_WRITE1 (MDIO_DIR | MDIO_DATA_OUT) -#define mdio_delay (mdio_addr) readb(mdio_addr) +#define mdio_delay (mdio_addr) ioread8(mdio_addr)static char mii_2_8139_map[8 ] = {
@@ -1223,14 +1213,14 @@ static char mii_2_8139_map[8] = {#ifdef CONFIG_8139TOO_8129 /* Syncronize the MII management interface by shifting 32 one bits out. */ -static void mdio_sync (void *mdio_addr) +static void mdio_sync (void __iomem *mdio_addr) {int i;for (i =32 ; i >=0 ; i--) { -writeb (MDIO_WRITE1 , mdio_addr); +iowrite8 (MDIO_WRITE1 , mdio_addr);mdio_delay (mdio_addr); -writeb (MDIO_WRITE1 |MDIO_CLK , mdio_addr); +iowrite8 (MDIO_WRITE1 |MDIO_CLK , mdio_addr);mdio_delay (mdio_addr); } }
@@ -1241,14 +1231,14 @@ static int mdio_read (struct net_devicestruct rtl8139_private *tp =netdev_priv (dev);int retval =0 ;#ifdef CONFIG_8139TOO_8129 -void *mdio_addr = tp->mmio_addr + Config4; +void __iomem *mdio_addr = tp->ioaddr + Config4;int mii_cmd = (0xf6 <<10 ) | (phy_id <<5 ) | location;int i;#endif if (phy_id >31 ) {/* Really a 8139. Use internal registers. */ return location <8 && mii_2_8139_map[location] ? -readw (tp->mmio_addr + mii_2_8139_map[location]) :0 ; +ioread16 (tp->ioaddr + mii_2_8139_map[location]) :0 ; }#ifdef CONFIG_8139TOO_8129
@@ -1257,18 +1247,18 @@ static int mdio_read (struct net_devicefor (i =15 ; i >=0 ; i--) {int dataval = (mii_cmd & (1 << i)) ?MDIO_DATA_OUT :0 ; -writeb (MDIO_DIR | dataval, mdio_addr); +iowrite8 (MDIO_DIR | dataval, mdio_addr);mdio_delay (mdio_addr); -writeb (MDIO_DIR | dataval |MDIO_CLK , mdio_addr); +iowrite8 (MDIO_DIR | dataval |MDIO_CLK , mdio_addr);mdio_delay (mdio_addr); }/* Read the two transition, 16 data, and wire-idle bits. */ for (i =19 ; i >0 ; i--) { -writeb (0 , mdio_addr); +iowrite8 (0 , mdio_addr);mdio_delay (mdio_addr); - retval = (retval <<1 ) | ((readb (mdio_addr) &MDIO_DATA_IN ) ?1 :0 ); -writeb (MDIO_CLK , mdio_addr); + retval = (retval <<1 ) | ((ioread8 (mdio_addr) &MDIO_DATA_IN ) ?1 :0 ); +iowrite8 (MDIO_CLK , mdio_addr);mdio_delay (mdio_addr); }#endif
@@ -1282,13 +1272,13 @@ static void mdio_write (struct net_devic {struct rtl8139_private *tp =netdev_priv (dev);#ifdef CONFIG_8139TOO_8129 -void *mdio_addr = tp->mmio_addr + Config4; +void __iomem *mdio_addr = tp->ioaddr + Config4;int mii_cmd = (0x5002 <<16 ) | (phy_id <<23 ) | (location <<18 ) | value;int i;#endif if (phy_id >31 ) {/* Really a 8139. Use internal registers. */ -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;if (location ==0 ) {RTL_W8 (Cfg9346, Cfg9346_Unlock);RTL_W16 (BasicModeCtrl, value);
@@ -1305,16 +1295,16 @@ static void mdio_write (struct net_devicfor (i =31 ; i >=0 ; i--) {int dataval = (mii_cmd & (1 << i)) ?MDIO_WRITE1 :MDIO_WRITE0 ; -writeb (dataval, mdio_addr); +iowrite8 (dataval, mdio_addr);mdio_delay (mdio_addr); -writeb (dataval |MDIO_CLK , mdio_addr); +iowrite8 (dataval |MDIO_CLK , mdio_addr);mdio_delay (mdio_addr); }/* Clear out extra bits. */ for (i =2 ; i >0 ; i--) { -writeb (0 , mdio_addr); +iowrite8 (0 , mdio_addr);mdio_delay (mdio_addr); -writeb (MDIO_CLK , mdio_addr); +iowrite8 (MDIO_CLK , mdio_addr);mdio_delay (mdio_addr); }#endif
@@ -1325,7 +1315,7 @@ static int rtl8139_open (struct net_devi {struct rtl8139_private *tp =netdev_priv (dev);int retval; -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr; retval =request_irq (dev->irq, rtl8139_interrupt,SA_SHIRQ , dev->name, dev);if (retval)
@@ -1382,7 +1372,7 @@ static void rtl_check_media (struct net_static void rtl8139_hw_start (struct net_device *dev) {struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;u32 i;u8 tmp;
@@ -1484,7 +1474,7 @@ static void rtl8139_tune_twister (struct struct rtl8139_private *tp) {int linkcase; -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;/* This is a complicated state machine to configure the "twister" for impedance/echos based on the cable length.
@@ -1568,7 +1558,7 @@ static void rtl8139_tune_twister (structstatic inline void rtl8139_thread_iter (struct net_device *dev,struct rtl8139_private *tp, -void *ioaddr) +void __iomem *ioaddr) {int mii_lpa;
@@ -1638,7 +1628,7 @@ static int rtl8139_thread (void *data)if (rtnl_lock_interruptible ())break ; -rtl8139_thread_iter (dev, tp, tp->mmio_addr); +rtl8139_thread_iter (dev, tp, tp->ioaddr);rtnl_unlock (); }
@@ -1676,7 +1666,7 @@ static inline void rtl8139_tx_clear (strstatic void rtl8139_tx_timeout (struct net_device *dev) {struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;int i;u8 tmp8;unsigned long flags;
@@ -1688,7 +1678,7 @@ static void rtl8139_tx_timeout (struct nprintk (KERN_DEBUG "%s: Tx queue start entry %ld dirty entry %ld.\n" , dev->name, tp->cur_tx, tp->dirty_tx);for (i =0 ; i <NUM_TX_DESC ; i++) -printk (KERN_DEBUG "%s: Tx descriptor %d is %8.8lx.%s\n" , +printk (KERN_DEBUG "%s: Tx descriptor %d is %8.8x.%s\n" , dev->name, i,RTL_R32 (TxStatus0 + (i *4 )), i == tp->dirty_tx %NUM_TX_DESC ?" (queue head)" :"" );
@@ -1721,7 +1711,7 @@ static void rtl8139_tx_timeout (struct nstatic int rtl8139_start_xmit (struct sk_buff *skb,struct net_device *dev) {struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;unsigned int entry;unsigned int len = skb->len;
@@ -1763,7 +1753,7 @@ static int rtl8139_start_xmit (struct skstatic void rtl8139_tx_interrupt (struct net_device *dev,struct rtl8139_private *tp, -void *ioaddr) +void __iomem *ioaddr) {unsigned long dirty_tx, tx_left;
@@ -1833,7 +1823,7 @@ static void rtl8139_tx_interrupt (struct/* TODO: clean this up! Rx reset need not be this intensive */ static void rtl8139_rx_err (u32 rx_status,struct net_device *dev, -struct rtl8139_private *tp,void *ioaddr) +struct rtl8139_private *tp,void __iomem *ioaddr) {u8 tmp8;#ifdef CONFIG_8139_OLD_RX_RESET
@@ -1930,7 +1920,7 @@ static __inline__ void wrap_copy(structstatic void rtl8139_isr_ack (struct rtl8139_private *tp) { -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;u16 status; status =RTL_R16 (IntrStatus) & RxAckBits;
@@ -1949,7 +1939,7 @@ static void rtl8139_isr_ack(struct rtl81static int rtl8139_rx (struct net_device *dev,struct rtl8139_private *tp,int budget) { -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;int received =0 ;unsigned char *rx_ring = tp->rx_ring;unsigned int cur_rx = tp->cur_rx;
@@ -2087,7 +2077,7 @@ out:static void rtl8139_weird_interrupt (struct net_device *dev,struct rtl8139_private *tp, -void *ioaddr, +void __iomem *ioaddr,int status,int link_changed) { DPRINTK ("%s: Abnormal interrupt, status %8.8x.\n",
@@ -2127,7 +2117,7 @@ static void rtl8139_weird_interrupt (strstatic int rtl8139_poll (struct net_device *dev,int *budget) {struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;int orig_budget =min (*budget, dev->quota);int done =1 ;
@@ -2165,7 +2155,7 @@ static irqreturn_t rtl8139_interrupt (in {struct net_device *dev = (struct net_device *) dev_instance;struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;u16 status, ackstat;int link_changed =0 ;/* avoid bogus "uninit" warning */ int handled =0 ;
@@ -2241,7 +2231,7 @@ static void rtl8139_poll_controller(strustatic int rtl8139_close (struct net_device *dev) {struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;int ret =0 ;unsigned long flags;
@@ -2304,7 +2294,7 @@ static int rtl8139_close (struct net_devstatic void rtl8139_get_wol (struct net_device *dev,struct ethtool_wolinfo *wol) {struct rtl8139_private *np =netdev_priv (dev); -void *ioaddr = np->mmio_addr; +void __iomem *ioaddr = np->ioaddr;spin_lock_irq (&np->lock);if (rtl_chip_info[np->chipset].flags & HasLWake) {
@@ -2338,7 +2328,7 @@ static void rtl8139_get_wol(struct net_dstatic int rtl8139_set_wol (struct net_device *dev,struct ethtool_wolinfo *wol) {struct rtl8139_private *np =netdev_priv (dev); -void *ioaddr = np->mmio_addr; +void __iomem *ioaddr = np->ioaddr;u32 support;u8 cfg3, cfg5;
@@ -2445,7 +2435,7 @@ static void rtl8139_get_regs(struct net_ regs->version =RTL_REGS_VER ;spin_lock_irq (&np->lock); -memcpy_fromio (regbuf, np->mmio_addr, regs->len); +memcpy_fromio (regbuf, np->ioaddr, regs->len); spin_unlock_irq(&np->lock); }#endif /* CONFIG_8139TOO_MMIO */
@@ -2506,7 +2496,7 @@ static int netdev_ioctl(struct net_devicstatic struct net_device_stats *rtl8139_get_stats (struct net_device *dev) {struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;unsigned long flags;if (netif_running (dev)) {
@@ -2525,7 +2515,7 @@ static struct net_device_stats *rtl8139_static void __set_rx_mode (struct net_device *dev) {struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;u32 mc_filter[2 ];/* Multicast hash filter */ int i, rx_mode;u32 tmp;
@@ -2586,7 +2576,7 @@ static int rtl8139_suspend (struct pci_d {struct net_device *dev =pci_get_drvdata (pdev);struct rtl8139_private *tp =netdev_priv (dev); -void *ioaddr = tp->mmio_addr; +void __iomem *ioaddr = tp->ioaddr;unsigned long flags;pci_save_state (pdev);
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
drivers/net/8139too.c
Quoted 4 lines · Domen Puncer
Convert to iomap and add
__iomemannotations.drivers/net/8139too.c +0
-0
In netdev-2.6 tree:
============================================================================
[PATCH] 8139too: use iomap for pio/mmio
Hi,
This patch converts the 8139too driver to use the iomap infrastructure for PIO and MMIO instead of playing macro tricks. I also had to fix read_eeprom(), mdio_sync(), mdio_read(), and mdio_write() to not pass PIO base address to MMIO read() and write() functions. In addition, the patch adds proper __iomem annotations for the driver.
Both modes, PIO and MMIO, were tested with a RealTel RTL8139 card on an x86 box. The 8129 support remains untested due to lack of hardware.
http://gkernel.bkbits.net:8080/netdev-2.6/cset@41de09e3T2bRtDC4_Wp9d1mKtq8xbw?nav=index.html|src/|src/drivers|src/drivers/net|related/drivers/net/8139too.c
============================================================================
I noticed this too late also.
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
Quoted 7 lines · Alexey Dobriyan
drivers/net/8139too.c
Quoted 4 lines · Domen Puncer
Convert to iomap and add
__iomemannotations.drivers/net/8139too.c +0
-0In netdev-2.6 tree:
Maybe someday I'll learn to check the -mm tree first.
Thanks Alexey!
Domen
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors