diff -purN drivers/net/tulip/dmfe.c drivers-fix/net/tulip/dmfe.c --- drivers/net/tulip/dmfe.c 2004-10-11 13:27:59.289788416 +0530 +++ drivers-fix/net/tulip/dmfe.c 2004-10-11 14:36:22.778963240 +0530 @@ -1805,7 +1805,7 @@ static void dmfe_parse_srom(struct dmfe_ if ( ( (int) srom[18] & 0xff) == SROM_V41_CODE) { /* SROM V4.01 */ /* Get NIC support media mode */ - db->NIC_capability = le16_to_cpup(srom + 34); + db->NIC_capability = le16_to_cpup((__le16 *)(srom + 34)); db->PHY_reg4 = 0; for (tmp_reg = 1; tmp_reg < 0x10; tmp_reg <<= 1) { switch( db->NIC_capability & tmp_reg ) { @@ -1817,7 +1817,7 @@ static void dmfe_parse_srom(struct dmfe_ } /* Media Mode Force or not check */ - dmfe_mode = le32_to_cpup(srom + 34) & le32_to_cpup(srom + 36); + dmfe_mode = le32_to_cpup((__le32 *)(srom + 34)) & le32_to_cpup((__le32 *)(srom + 36)); switch(dmfe_mode) { case 0x4: dmfe_media_mode = DMFE_100MHF; break; /* 100MHF */ case 0x2: dmfe_media_mode = DMFE_10MFD; break; /* 10MFD */ diff -purN drivers/net/tulip/winbond-840.c drivers-fix/net/tulip/winbond-840.c --- drivers/net/tulip/winbond-840.c 2004-10-11 13:27:59.250794344 +0530 +++ drivers-fix/net/tulip/winbond-840.c 2004-10-11 16:24:14.851058728 +0530 @@ -434,7 +434,7 @@ static int __devinit w840_probe1 (struct /* Reset the chip to erase previous misconfiguration. No hold time required! */ - writel(0x00000001, ioaddr + PCIBusCfg); + writel(0x00000001, (void __iomem *)ioaddr + PCIBusCfg); dev->base_addr = ioaddr; dev->irq = irq; @@ -537,7 +537,7 @@ err_out_netdev: The old method of using an ISA access as a delay, __SLOW_DOWN_IO__, is depricated. */ -#define eeprom_delay(ee_addr) readl(ee_addr) +#define eeprom_delay(ee_addr) readl((void __iomem *)(ee_addr)) enum EEPROM_Ctrl_Bits { EE_ShiftClk=0x02, EE_Write0=0x801, EE_Write1=0x805, @@ -555,29 +555,29 @@ static int eeprom_read(long addr, int lo int retval = 0; long ee_addr = addr + EECtrl; int read_cmd = location | EE_ReadCmd; - writel(EE_ChipSelect, ee_addr); + writel(EE_ChipSelect, (void __iomem *)ee_addr); /* Shift the read command bits out. */ for (i = 10; i >= 0; i--) { short dataval = (read_cmd & (1 << i)) ? EE_Write1 : EE_Write0; - writel(dataval, ee_addr); + writel(dataval, (void __iomem *)ee_addr); eeprom_delay(ee_addr); - writel(dataval | EE_ShiftClk, ee_addr); + writel(dataval | EE_ShiftClk, (void __iomem *)ee_addr); eeprom_delay(ee_addr); } - writel(EE_ChipSelect, ee_addr); + writel(EE_ChipSelect, (void __iomem *)ee_addr); eeprom_delay(ee_addr); for (i = 16; i > 0; i--) { - writel(EE_ChipSelect | EE_ShiftClk, ee_addr); + writel(EE_ChipSelect | EE_ShiftClk, (void __iomem *)ee_addr); eeprom_delay(ee_addr); - retval = (retval << 1) | ((readl(ee_addr) & EE_DataIn) ? 1 : 0); - writel(EE_ChipSelect, ee_addr); + retval = (retval << 1) | ((readl((void __iomem *)ee_addr) & EE_DataIn) ? 1 : 0); + writel(EE_ChipSelect, (void __iomem *)ee_addr); eeprom_delay(ee_addr); } /* Terminate the EEPROM access. */ - writel(0, ee_addr); + writel(0, (void __iomem *)ee_addr); return retval; } @@ -588,7 +588,7 @@ static int eeprom_read(long addr, int lo The maximum data clock rate is 2.5 Mhz. The minimum timing is usually met by back-to-back 33Mhz PCI cycles. */ -#define mdio_delay(mdio_addr) readl(mdio_addr) +#define mdio_delay(mdio_addr) readl((void __iomem *)(mdio_addr)) /* Set iff a MII transceiver on any interface requires mdio preamble. This only set with older transceivers, so the extra @@ -606,9 +606,9 @@ static void mdio_sync(long mdio_addr) /* Establish sync by sending at least 32 logic ones. */ while (--bits >= 0) { - writel(MDIO_WRITE1, mdio_addr); + writel(MDIO_WRITE1, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); - writel(MDIO_WRITE1 | MDIO_ShiftClk, mdio_addr); + writel(MDIO_WRITE1 | MDIO_ShiftClk, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); } } @@ -626,17 +626,17 @@ static int mdio_read(struct net_device * for (i = 15; i >= 0; i--) { int dataval = (mii_cmd & (1 << i)) ? MDIO_WRITE1 : MDIO_WRITE0; - writel(dataval, mdio_addr); + writel(dataval, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); - writel(dataval | MDIO_ShiftClk, mdio_addr); + writel(dataval | MDIO_ShiftClk, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); } /* Read the two transition, 16 data, and wire-idle bits. */ for (i = 20; i > 0; i--) { - writel(MDIO_EnbIn, mdio_addr); + writel(MDIO_EnbIn, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); - retval = (retval << 1) | ((readl(mdio_addr) & MDIO_DataIn) ? 1 : 0); - writel(MDIO_EnbIn | MDIO_ShiftClk, mdio_addr); + retval = (retval << 1) | ((readl((void __iomem *)mdio_addr) & MDIO_DataIn) ? 1 : 0); + writel(MDIO_EnbIn | MDIO_ShiftClk, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); } return (retval>>1) & 0xffff; @@ -659,16 +659,16 @@ static void mdio_write(struct net_device for (i = 31; i >= 0; i--) { int dataval = (mii_cmd & (1 << i)) ? MDIO_WRITE1 : MDIO_WRITE0; - writel(dataval, mdio_addr); + writel(dataval, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); - writel(dataval | MDIO_ShiftClk, mdio_addr); + writel(dataval | MDIO_ShiftClk, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); } /* Clear out extra bits. */ for (i = 2; i > 0; i--) { - writel(MDIO_EnbIn, mdio_addr); + writel(MDIO_EnbIn, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); - writel(MDIO_EnbIn | MDIO_ShiftClk, mdio_addr); + writel(MDIO_EnbIn | MDIO_ShiftClk, (void __iomem *)mdio_addr); mdio_delay(mdio_addr); } return; @@ -681,7 +681,7 @@ static int netdev_open(struct net_device long ioaddr = dev->base_addr; int i; - writel(0x00000001, ioaddr + PCIBusCfg); /* Reset */ + writel(0x00000001, (void __iomem *)(ioaddr + PCIBusCfg)); /* Reset */ netif_device_detach(dev); i = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev); @@ -792,10 +792,10 @@ static inline void update_csr6(struct ne if (new==np->csr6) return; /* stop both Tx and Rx processes */ - writel(np->csr6 & ~0x2002, ioaddr + NetworkConfig); + writel(np->csr6 & ~0x2002, (void __iomem *)(ioaddr + NetworkConfig)); /* wait until they have really stopped */ for (;;) { - int csr5 = readl(ioaddr + IntrStatus); + int csr5 = readl((void __iomem *)(ioaddr + IntrStatus)); int t; t = (csr5 >> 17) & 0x07; @@ -816,7 +816,7 @@ static inline void update_csr6(struct ne } np->csr6 = new; /* and restart them with the new configuration */ - writel(np->csr6, ioaddr + NetworkConfig); + writel(np->csr6, (void __iomem *)(ioaddr + NetworkConfig)); if (new & 0x200) np->mii_if.full_duplex = 1; } @@ -830,8 +830,8 @@ static void netdev_timer(unsigned long d if (debug > 2) printk(KERN_DEBUG "%s: Media selection timer tick, status %8.8x " "config %8.8x.\n", - dev->name, (int)readl(ioaddr + IntrStatus), - (int)readl(ioaddr + NetworkConfig)); + dev->name, (int)readl((void __iomem *)(ioaddr + IntrStatus)), + (int)readl((void __iomem *)(ioaddr + NetworkConfig))); spin_lock_irq(&np->lock); update_csr6(dev, update_link(dev)); spin_unlock_irq(&np->lock); @@ -881,9 +881,9 @@ static void init_rxtx_rings(struct net_d np->tx_full = 0; np->tx_q_bytes = np->dirty_tx = np->cur_tx = 0; - writel(np->ring_dma_addr, dev->base_addr + RxRingPtr); + writel(np->ring_dma_addr, (void __iomem *)(dev->base_addr + RxRingPtr)); writel(np->ring_dma_addr+sizeof(struct w840_rx_desc)*RX_RING_SIZE, - dev->base_addr + TxRingPtr); + (void __iomem *)(dev->base_addr + TxRingPtr)); } @@ -921,7 +921,7 @@ static void init_registers(struct net_de int i; for (i = 0; i < 6; i++) - writeb(dev->dev_addr[i], ioaddr + StationAddr + i); + writeb(dev->dev_addr[i], (void __iomem *)(ioaddr + StationAddr + i)); /* Initialize other registers. */ #ifdef __BIG_ENDIAN @@ -958,7 +958,7 @@ static void init_registers(struct net_de #warning Processor architecture undefined i |= 0x4800; #endif - writel(i, ioaddr + PCIBusCfg); + writel(i, (void __iomem *)(ioaddr + PCIBusCfg)); np->csr6 = 0; /* 128 byte Tx threshold; @@ -966,10 +966,10 @@ static void init_registers(struct net_de update_csr6(dev, 0x00022002 | update_link(dev) | __set_rx_mode(dev)); /* Clear and Enable interrupts by setting the interrupt mask. */ - writel(0x1A0F5, ioaddr + IntrStatus); - writel(0x1A0F5, ioaddr + IntrEnable); + writel(0x1A0F5, (void __iomem *)(ioaddr + IntrStatus)); + writel(0x1A0F5, (void __iomem *)(ioaddr + IntrEnable)); - writel(0, ioaddr + RxStartDemand); + writel(0, (void __iomem *)(ioaddr + RxStartDemand)); } static void tx_timeout(struct net_device *dev) @@ -978,7 +978,7 @@ static void tx_timeout(struct net_device long ioaddr = dev->base_addr; printk(KERN_WARNING "%s: Transmit timed out, status %8.8x," - " resetting...\n", dev->name, (int)readl(ioaddr + IntrStatus)); + " resetting...\n", dev->name, (int)readl((void __iomem *)(ioaddr + IntrStatus))); { int i; @@ -992,7 +992,7 @@ static void tx_timeout(struct net_device } printk(KERN_DEBUG "Tx cur %d Tx dirty %d Tx Full %d, q bytes %d.\n", np->cur_tx, np->dirty_tx, np->tx_full, np->tx_q_bytes); - printk(KERN_DEBUG "Tx Descriptor addr %xh.\n",readl(ioaddr+0x4C)); + printk(KERN_DEBUG "Tx Descriptor addr %xh.\n",readl((void __iomem *)(ioaddr+0x4C))); disable_irq(dev->irq); spin_lock_irq(&np->lock); @@ -1002,7 +1002,7 @@ static void tx_timeout(struct net_device * everything. */ - writel(1, dev->base_addr+PCIBusCfg); + writel(1, (void __iomem *)(dev->base_addr+PCIBusCfg)); udelay(1); free_rxtx_rings(np); @@ -1086,7 +1086,7 @@ static int start_tx(struct sk_buff *skb, wmb(); /* flush length, buffer1, buffer2 */ np->tx_ring[entry].status = DescOwn; wmb(); /* flush status and kick the hardware */ - writel(0, dev->base_addr + TxStartDemand); + writel(0, (void __iomem *)(dev->base_addr + TxStartDemand)); np->tx_q_bytes += skb->len; /* Work around horrible bug in the chip by marking the queue as full when we do not have FIFO room for a maximum sized packet. */ @@ -1170,10 +1170,10 @@ static irqreturn_t intr_handler(int irq, if (!netif_device_present(dev)) return IRQ_NONE; do { - u32 intr_status = readl(ioaddr + IntrStatus); + u32 intr_status = readl((void __iomem *)(ioaddr + IntrStatus)); /* Acknowledge all of the current interrupt sources ASAP. */ - writel(intr_status & 0x001ffff, ioaddr + IntrStatus); + writel(intr_status & 0x001ffff, (void __iomem *)(ioaddr + IntrStatus)); if (debug > 4) printk(KERN_DEBUG "%s: Interrupt, status %4.4x.\n", @@ -1187,7 +1187,7 @@ static irqreturn_t intr_handler(int irq, if (intr_status & (IntrRxDone | RxNoBuf)) netdev_rx(dev); if (intr_status & RxNoBuf) - writel(0, ioaddr + RxStartDemand); + writel(0, (void __iomem *)(ioaddr + RxStartDemand)); if (intr_status & (TxIdle | IntrTxDone) && np->cur_tx != np->dirty_tx) { @@ -1208,8 +1208,8 @@ static irqreturn_t intr_handler(int irq, 10*82usec ticks. */ spin_lock(&np->lock); if (netif_device_present(dev)) { - writel(AbnormalIntr | TimerInt, ioaddr + IntrEnable); - writel(10, ioaddr + GPTimer); + writel(AbnormalIntr | TimerInt, (void __iomem *)(ioaddr + IntrEnable)); + writel(10, (void __iomem *)(ioaddr + GPTimer)); } spin_unlock(&np->lock); break; @@ -1218,7 +1218,7 @@ static irqreturn_t intr_handler(int irq, if (debug > 3) printk(KERN_DEBUG "%s: exiting interrupt, status=%#4.4x.\n", - dev->name, (int)readl(ioaddr + IntrStatus)); + dev->name, (int)readl((void __iomem *)(ioaddr + IntrStatus))); return IRQ_RETVAL(handled); } @@ -1377,10 +1377,10 @@ static void netdev_error(struct net_devi if (intr_status & TimerInt) { /* Re-enable other interrupts. */ if (netif_device_present(dev)) - writel(0x1A0F5, ioaddr + IntrEnable); + writel(0x1A0F5, (void __iomem *)(ioaddr + IntrEnable)); } - np->stats.rx_missed_errors += readl(ioaddr + RxMissed) & 0xffff; - writel(0, ioaddr + RxStartDemand); + np->stats.rx_missed_errors += readl((void __iomem *)(ioaddr + RxMissed)) & 0xffff; + writel(0, (void __iomem *)(ioaddr + RxStartDemand)); spin_unlock(&np->lock); } @@ -1392,7 +1392,7 @@ static struct net_device_stats *get_stat /* The chip only need report frame silently dropped. */ spin_lock_irq(&np->lock); if (netif_running(dev) && netif_device_present(dev)) - np->stats.rx_missed_errors += readl(ioaddr + RxMissed) & 0xffff; + np->stats.rx_missed_errors += readl((void __iomem *)(ioaddr + RxMissed)) & 0xffff; spin_unlock_irq(&np->lock); return &np->stats; @@ -1428,8 +1428,8 @@ static u32 __set_rx_mode(struct net_devi } rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; } - writel(mc_filter[0], ioaddr + MulticastFilter0); - writel(mc_filter[1], ioaddr + MulticastFilter1); + writel(mc_filter[0], (void __iomem *)(ioaddr + MulticastFilter0)); + writel(mc_filter[1], (void __iomem *)(ioaddr + MulticastFilter1)); return rx_mode; } @@ -1546,8 +1546,8 @@ static int netdev_close(struct net_devic if (debug > 1) { printk(KERN_DEBUG "%s: Shutting down ethercard, status was %8.8x " - "Config %8.8x.\n", dev->name, (int)readl(ioaddr + IntrStatus), - (int)readl(ioaddr + NetworkConfig)); + "Config %8.8x.\n", dev->name, (int)readl((void __iomem *)(ioaddr + IntrStatus)), + (int)readl((void __iomem *)(ioaddr + NetworkConfig))); printk(KERN_DEBUG "%s: Queue pointers were Tx %d / %d, Rx %d / %d.\n", dev->name, np->cur_tx, np->dirty_tx, np->cur_rx, np->dirty_rx); } @@ -1556,15 +1556,15 @@ static int netdev_close(struct net_devic spin_lock_irq(&np->lock); netif_device_detach(dev); update_csr6(dev, 0); - writel(0x0000, ioaddr + IntrEnable); + writel(0x0000, (void __iomem *)(ioaddr + IntrEnable)); spin_unlock_irq(&np->lock); free_irq(dev->irq, dev); wmb(); netif_device_attach(dev); - if (readl(ioaddr + NetworkConfig) != 0xffffffff) - np->stats.rx_missed_errors += readl(ioaddr + RxMissed) & 0xffff; + if (readl((void __iomem *)(ioaddr + NetworkConfig)) != 0xffffffff) + np->stats.rx_missed_errors += readl((void __iomem *)(ioaddr + RxMissed)) & 0xffff; #ifdef __i386__ if (debug > 2) { @@ -1648,19 +1648,19 @@ static int w840_suspend (struct pci_dev spin_lock_irq(&np->lock); netif_device_detach(dev); update_csr6(dev, 0); - writel(0, ioaddr + IntrEnable); + writel(0, (void __iomem *)(ioaddr + IntrEnable)); netif_stop_queue(dev); spin_unlock_irq(&np->lock); spin_unlock_wait(&dev->xmit_lock); synchronize_irq(dev->irq); - np->stats.rx_missed_errors += readl(ioaddr + RxMissed) & 0xffff; + np->stats.rx_missed_errors += readl((void __iomem *)(ioaddr + RxMissed)) & 0xffff; /* no more hardware accesses behind this line. */ if (np->csr6) BUG(); - if (readl(ioaddr + IntrEnable)) BUG(); + if (readl((void __iomem *)(ioaddr + IntrEnable))) BUG(); /* pci_power_off(pdev, -1); */ @@ -1685,8 +1685,8 @@ static int w840_resume (struct pci_dev * /* pci_power_on(pdev); */ spin_lock_irq(&np->lock); - writel(1, dev->base_addr+PCIBusCfg); - readl(dev->base_addr+PCIBusCfg); + writel(1, (void __iomem *)(dev->base_addr+PCIBusCfg)); + readl((void __iomem *)(dev->base_addr+PCIBusCfg)); udelay(1); netif_device_attach(dev); init_rxtx_rings(dev); diff -purN drivers/scsi/fdomain.c drivers-fix/scsi/fdomain.c --- drivers/scsi/fdomain.c 2004-10-11 13:28:10.000000000 +0530 +++ drivers-fix/scsi/fdomain.c 2004-10-11 15:12:49.939464304 +0530 @@ -1658,7 +1658,7 @@ static int fdomain_16x0_biosparam(struct } else if (bios_major == 3 && bios_minor >= 0 && bios_minor < 4) { /* 3.0 and 3.2 BIOS */ - memcpy_fromio( &i, bios_base + 0x1f71 + drive * 10, + memcpy_fromio( &i, (void __iomem *)(bios_base + 0x1f71 + drive * 10), sizeof( struct drive_info ) ); info_array[0] = i.heads + 1; info_array[1] = i.sectors; diff -purN drivers/scsi/ipr.c drivers-fix/scsi/ipr.c --- drivers/scsi/ipr.c 2004-10-11 13:28:11.000000000 +0530 +++ drivers-fix/scsi/ipr.c 2004-10-11 15:28:11.200411352 +0530 @@ -519,11 +519,11 @@ static void ipr_mask_and_clear_interrupt ioa_cfg->allow_interrupts = 0; /* Set interrupt mask to stop all new interrupts */ - writel(~0, ioa_cfg->regs.set_interrupt_mask_reg); + writel(~0, (void __iomem *)(ioa_cfg->regs.set_interrupt_mask_reg)); /* Clear any pending interrupts */ - writel(clr_ints, ioa_cfg->regs.clr_interrupt_reg); - int_reg = readl(ioa_cfg->regs.sense_interrupt_reg); + writel(clr_ints, (void __iomem *)(ioa_cfg->regs.clr_interrupt_reg)); + int_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_reg)); } /** @@ -664,7 +664,7 @@ static void ipr_do_req(struct ipr_cmnd * mb(); writel(be32_to_cpu(ipr_cmd->ioarcb.ioarcb_host_pci_addr), - ioa_cfg->regs.ioarrin_reg); + (void __iomem *)(ioa_cfg->regs.ioarrin_reg)); } /** @@ -757,7 +757,7 @@ static void ipr_send_hcam(struct ipr_ioa mb(); writel(be32_to_cpu(ipr_cmd->ioarcb.ioarcb_host_pci_addr), - ioa_cfg->regs.ioarrin_reg); + (void __iomem *)(ioa_cfg->regs.ioarrin_reg)); } else { list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q); } @@ -1360,7 +1360,7 @@ static int ipr_wait_iodbg_ack(struct ipr /* Read interrupt reg until IOA signals IO Debug Acknowledge */ while (delay < max_delay) { - pcii_reg = readl(ioa_cfg->regs.sense_interrupt_reg); + pcii_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_reg)); if (pcii_reg & IPR_PCII_IO_DEBUG_ACKNOWLEDGE) return 0; @@ -1395,7 +1395,7 @@ static int ipr_get_ldump_data_section(st /* Write IOA interrupt reg starting LDUMP state */ writel((IPR_UPROCI_RESET_ALERT | IPR_UPROCI_IO_DEBUG_ALERT), - ioa_cfg->regs.set_uproc_interrupt_reg); + (void __iomem *)(ioa_cfg->regs.set_uproc_interrupt_reg)); /* Wait for IO debug acknowledge */ if (ipr_wait_iodbg_ack(ioa_cfg, @@ -1407,14 +1407,14 @@ static int ipr_get_ldump_data_section(st /* Signal LDUMP interlocked - clear IO debug ack */ writel(IPR_PCII_IO_DEBUG_ACKNOWLEDGE, - ioa_cfg->regs.clr_interrupt_reg); + (void __iomem *)(ioa_cfg->regs.clr_interrupt_reg)); /* Write Mailbox with starting address */ - writel(start_addr, ioa_cfg->ioa_mailbox); + writel(start_addr, (void __iomem *)(ioa_cfg->ioa_mailbox)); /* Signal address valid - clear IOA Reset alert */ writel(IPR_UPROCI_RESET_ALERT, - ioa_cfg->regs.clr_uproc_interrupt_reg); + (void __iomem *)(ioa_cfg->regs.clr_uproc_interrupt_reg)); for (i = 0; i < length_in_words; i++) { /* Wait for IO debug acknowledge */ @@ -1426,32 +1426,32 @@ static int ipr_get_ldump_data_section(st } /* Read data from mailbox and increment destination pointer */ - *dest = cpu_to_be32(readl(ioa_cfg->ioa_mailbox)); + *dest = cpu_to_be32(readl((void __iomem *)(ioa_cfg->ioa_mailbox))); dest++; /* For all but the last word of data, signal data received */ if (i < (length_in_words - 1)) { /* Signal dump data received - Clear IO debug Ack */ writel(IPR_PCII_IO_DEBUG_ACKNOWLEDGE, - ioa_cfg->regs.clr_interrupt_reg); + (void __iomem *)(ioa_cfg->regs.clr_interrupt_reg)); } } /* Signal end of block transfer. Set reset alert then clear IO debug ack */ writel(IPR_UPROCI_RESET_ALERT, - ioa_cfg->regs.set_uproc_interrupt_reg); + (void __iomem *)(ioa_cfg->regs.set_uproc_interrupt_reg)); writel(IPR_UPROCI_IO_DEBUG_ALERT, - ioa_cfg->regs.clr_uproc_interrupt_reg); + (void __iomem *)(ioa_cfg->regs.clr_uproc_interrupt_reg)); /* Signal dump data received - Clear IO debug Ack */ writel(IPR_PCII_IO_DEBUG_ACKNOWLEDGE, - ioa_cfg->regs.clr_interrupt_reg); + (void __iomem *)(ioa_cfg->regs.clr_interrupt_reg)); /* Wait for IOA to signal LDUMP exit - IOA reset alert will be cleared */ while (delay < IPR_LDUMP_MAX_SHORT_ACK_DELAY_IN_USEC) { temp_pcii_reg = - readl(ioa_cfg->regs.sense_uproc_interrupt_reg); + readl((void __iomem *)(ioa_cfg->regs.sense_uproc_interrupt_reg)); if (!(temp_pcii_reg & IPR_UPROCI_RESET_ALERT)) return 0; @@ -1661,7 +1661,7 @@ static void ipr_get_ioa_dump(struct ipr_ return; } - start_addr = readl(ioa_cfg->ioa_mailbox); + start_addr = readl((void __iomem *)(ioa_cfg->ioa_mailbox)); if (!ipr_sdt_is_fmt2(start_addr)) { dev_err(&ioa_cfg->pdev->dev, @@ -3169,11 +3169,11 @@ static irqreturn_t ipr_handle_other_inte if (int_reg & IPR_PCII_IOA_TRANS_TO_OPER) { /* Mask the interrupt */ - writel(IPR_PCII_IOA_TRANS_TO_OPER, ioa_cfg->regs.set_interrupt_mask_reg); + writel(IPR_PCII_IOA_TRANS_TO_OPER, (void __iomem *)(ioa_cfg->regs.set_interrupt_mask_reg)); /* Clear the interrupt */ - writel(IPR_PCII_IOA_TRANS_TO_OPER, ioa_cfg->regs.clr_interrupt_reg); - int_reg = readl(ioa_cfg->regs.sense_interrupt_reg); + writel(IPR_PCII_IOA_TRANS_TO_OPER, (void __iomem *)(ioa_cfg->regs.clr_interrupt_reg)); + int_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_reg)); list_del(&ioa_cfg->reset_cmd->queue); del_timer(&ioa_cfg->reset_cmd->timer); @@ -3222,8 +3222,8 @@ static irqreturn_t ipr_isr(int irq, void return IRQ_NONE; } - int_mask_reg = readl(ioa_cfg->regs.sense_interrupt_mask_reg); - int_reg = readl(ioa_cfg->regs.sense_interrupt_reg) & ~int_mask_reg; + int_mask_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_mask_reg)); + int_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_reg)) & ~int_mask_reg; /* If an interrupt on the adapter did not occur, ignore it */ if (unlikely((int_reg & IPR_PCII_OPER_INTERRUPTS) == 0)) { @@ -3274,8 +3274,8 @@ static irqreturn_t ipr_isr(int irq, void if (ipr_cmd != NULL) { /* Clear the PCI interrupt */ - writel(IPR_PCII_HRRQ_UPDATED, ioa_cfg->regs.clr_interrupt_reg); - int_reg = readl(ioa_cfg->regs.sense_interrupt_reg) & ~int_mask_reg; + writel(IPR_PCII_HRRQ_UPDATED, (void __iomem *)(ioa_cfg->regs.clr_interrupt_reg)); + int_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_reg)) & ~int_mask_reg; } else break; } @@ -3916,7 +3916,7 @@ static int ipr_queuecommand(struct scsi_ if (likely(rc == 0)) { mb(); writel(be32_to_cpu(ipr_cmd->ioarcb.ioarcb_host_pci_addr), - ioa_cfg->regs.ioarrin_reg); + (void __iomem *)(ioa_cfg->regs.ioarrin_reg)); } else { list_move_tail(&ipr_cmd->queue, &ioa_cfg->free_q); return SCSI_MLQUEUE_HOST_BUSY; @@ -4796,20 +4796,20 @@ static int ipr_reset_enable_ioa(struct i ipr_init_ioa_mem(ioa_cfg); ioa_cfg->allow_interrupts = 1; - int_reg = readl(ioa_cfg->regs.sense_interrupt_reg); + int_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_reg)); if (int_reg & IPR_PCII_IOA_TRANS_TO_OPER) { writel((IPR_PCII_ERROR_INTERRUPTS | IPR_PCII_HRRQ_UPDATED), - ioa_cfg->regs.clr_interrupt_mask_reg); - int_reg = readl(ioa_cfg->regs.sense_interrupt_mask_reg); + (void __iomem *)(ioa_cfg->regs.clr_interrupt_mask_reg)); + int_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_mask_reg)); return IPR_RC_JOB_CONTINUE; } /* Enable destructive diagnostics on IOA */ - writel(IPR_DOORBELL, ioa_cfg->regs.set_uproc_interrupt_reg); + writel(IPR_DOORBELL, (void __iomem *)(ioa_cfg->regs.set_uproc_interrupt_reg)); - writel(IPR_PCII_OPER_INTERRUPTS, ioa_cfg->regs.clr_interrupt_mask_reg); - int_reg = readl(ioa_cfg->regs.sense_interrupt_mask_reg); + writel(IPR_PCII_OPER_INTERRUPTS, (void __iomem *)(ioa_cfg->regs.clr_interrupt_mask_reg)); + int_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_mask_reg)); dev_info(&ioa_cfg->pdev->dev, "Initializing IOA.\n"); @@ -4879,7 +4879,7 @@ static void ipr_get_unit_check_buffer(st struct ipr_uc_sdt sdt; int rc, length; - mailbox = readl(ioa_cfg->ioa_mailbox); + mailbox = readl((void __iomem *)(ioa_cfg->ioa_mailbox)); if (!ipr_sdt_is_fmt2(mailbox)) { ipr_unit_check_no_data(ioa_cfg); @@ -5015,7 +5015,7 @@ static int ipr_reset_allowed(struct ipr_ { volatile u32 temp_reg; - temp_reg = readl(ioa_cfg->regs.sense_interrupt_reg); + temp_reg = readl((void __iomem *)(ioa_cfg->regs.sense_interrupt_reg)); return ((temp_reg & IPR_PCII_CRITICAL_OPERATION) == 0); } @@ -5073,7 +5073,7 @@ static int ipr_reset_alert(struct ipr_cm if ((rc == PCIBIOS_SUCCESSFUL) && (cmd_reg & PCI_COMMAND_MEMORY)) { ipr_mask_and_clear_interrupts(ioa_cfg, ~0); - writel(IPR_UPROCI_RESET_ALERT, ioa_cfg->regs.set_uproc_interrupt_reg); + writel(IPR_UPROCI_RESET_ALERT, (void __iomem *)(ioa_cfg->regs.set_uproc_interrupt_reg)); ipr_cmd->job_step = ipr_reset_wait_to_start_bist; } else { ipr_cmd->job_step = ipr_reset_start_bist; diff -purN drivers/scsi/megaraid/megaraid_mbox.h drivers-fix/scsi/megaraid/megaraid_mbox.h --- drivers/scsi/megaraid/megaraid_mbox.h 2004-10-11 13:28:11.000000000 +0530 +++ drivers-fix/scsi/megaraid/megaraid_mbox.h 2004-10-11 15:10:54.628994160 +0530 @@ -258,10 +258,10 @@ typedef struct { #define IS_RAID_CH(rdev, ch) (((rdev)->channel_class >> (ch)) & 0x01) -#define RDINDOOR(rdev) readl((rdev)->baseaddr + 0x20) -#define RDOUTDOOR(rdev) readl((rdev)->baseaddr + 0x2C) -#define WRINDOOR(rdev, value) writel(value, (rdev)->baseaddr + 0x20) -#define WROUTDOOR(rdev, value) writel(value, (rdev)->baseaddr + 0x2C) +#define RDINDOOR(rdev) readl((void __iomem *)((rdev)->baseaddr + 0x20)) +#define RDOUTDOOR(rdev) readl((void __iomem *)((rdev)->baseaddr + 0x2C)) +#define WRINDOOR(rdev, value) writel(value, (void __iomem *)((rdev)->baseaddr + 0x20)) +#define WROUTDOOR(rdev, value) writel(value, (void __iomem *)((rdev)->baseaddr + 0x2C)) #endif // _MEGARAID_H_ diff -purN drivers/scsi/qlogicisp.c drivers-fix/scsi/qlogicisp.c --- drivers/scsi/qlogicisp.c 2004-10-11 13:28:10.000000000 +0530 +++ drivers-fix/scsi/qlogicisp.c 2004-10-11 15:13:50.835206744 +0530 @@ -629,7 +629,7 @@ static inline u_short isp_inw(struct Scs { struct isp1020_hostdata *h = (struct isp1020_hostdata *)host->hostdata; if (h->memaddr) - return readw(h->memaddr + offset); + return readw((void __iomem *)(h->memaddr + offset)); else return inw(host->io_port + offset); } @@ -638,7 +638,7 @@ static inline void isp_outw(u_short val, { struct isp1020_hostdata *h = (struct isp1020_hostdata *)host->hostdata; if (h->memaddr) - writew(val, h->memaddr + offset); + writew(val, (void __iomem *)(h->memaddr + offset)); else outw(val, host->io_port + offset); } diff -purN drivers/scsi/sata_svw.c drivers-fix/scsi/sata_svw.c --- drivers/scsi/sata_svw.c 2004-10-11 13:28:10.000000000 +0530 +++ drivers-fix/scsi/sata_svw.c 2004-10-11 15:55:18.331049896 +0530 @@ -103,26 +103,26 @@ static void k2_sata_tf_load(struct ata_p unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR; if (tf->ctl != ap->last_ctl) { - writeb(tf->ctl, ioaddr->ctl_addr); + writeb(tf->ctl, (void __iomem *)(ioaddr->ctl_addr)); ap->last_ctl = tf->ctl; ata_wait_idle(ap); } if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) { - writew(tf->feature | (((u16)tf->hob_feature) << 8), ioaddr->feature_addr); - writew(tf->nsect | (((u16)tf->hob_nsect) << 8), ioaddr->nsect_addr); - writew(tf->lbal | (((u16)tf->hob_lbal) << 8), ioaddr->lbal_addr); - writew(tf->lbam | (((u16)tf->hob_lbam) << 8), ioaddr->lbam_addr); - writew(tf->lbah | (((u16)tf->hob_lbah) << 8), ioaddr->lbah_addr); + writew(tf->feature | (((u16)tf->hob_feature) << 8), (void __iomem *)(ioaddr->feature_addr)); + writew(tf->nsect | (((u16)tf->hob_nsect) << 8), (void __iomem *)(ioaddr->nsect_addr)); + writew(tf->lbal | (((u16)tf->hob_lbal) << 8), (void __iomem *)(ioaddr->lbal_addr)); + writew(tf->lbam | (((u16)tf->hob_lbam) << 8), (void __iomem *)(ioaddr->lbam_addr)); + writew(tf->lbah | (((u16)tf->hob_lbah) << 8), (void __iomem *)(ioaddr->lbah_addr)); } else if (is_addr) { - writew(tf->feature, ioaddr->feature_addr); - writew(tf->nsect, ioaddr->nsect_addr); - writew(tf->lbal, ioaddr->lbal_addr); - writew(tf->lbam, ioaddr->lbam_addr); - writew(tf->lbah, ioaddr->lbah_addr); + writew(tf->feature, (void __iomem *)(ioaddr->feature_addr)); + writew(tf->nsect, (void __iomem *)(ioaddr->nsect_addr)); + writew(tf->lbal, (void __iomem *)(ioaddr->lbal_addr)); + writew(tf->lbam, (void __iomem *)(ioaddr->lbam_addr)); + writew(tf->lbah, (void __iomem *)(ioaddr->lbah_addr)); } if (tf->flags & ATA_TFLAG_DEVICE) - writeb(tf->device, ioaddr->device_addr); + writeb(tf->device, (void __iomem *)(ioaddr->device_addr)); ata_wait_idle(ap); } @@ -133,14 +133,14 @@ static void k2_sata_tf_read(struct ata_p struct ata_ioports *ioaddr = &ap->ioaddr; u16 nsect, lbal, lbam, lbah; - nsect = tf->nsect = readw(ioaddr->nsect_addr); - lbal = tf->lbal = readw(ioaddr->lbal_addr); - lbam = tf->lbam = readw(ioaddr->lbam_addr); - lbah = tf->lbah = readw(ioaddr->lbah_addr); - tf->device = readw(ioaddr->device_addr); + nsect = tf->nsect = readw((void __iomem *)ioaddr->nsect_addr); + lbal = tf->lbal = readw((void __iomem *)ioaddr->lbal_addr); + lbam = tf->lbam = readw((void __iomem *)ioaddr->lbam_addr); + lbah = tf->lbah = readw((void __iomem *)ioaddr->lbah_addr); + tf->device = readw((void __iomem *)ioaddr->device_addr); if (tf->flags & ATA_TFLAG_LBA48) { - tf->hob_feature = readw(ioaddr->error_addr) >> 8; + tf->hob_feature = readw((void __iomem *)ioaddr->error_addr) >> 8; tf->hob_nsect = nsect >> 8; tf->hob_lbal = lbal >> 8; tf->hob_lbam = lbam >> 8; diff -purN drivers/scsi/sata_vsc.c drivers-fix/scsi/sata_vsc.c --- drivers/scsi/sata_vsc.c 2004-10-11 13:28:10.000000000 +0530 +++ drivers-fix/scsi/sata_vsc.c 2004-10-11 14:32:41.000000000 +0530 @@ -85,12 +85,12 @@ static void vsc_intr_mask_update(struct mask_addr = (unsigned long) ap->host_set->mmio_base + VSC_SATA_INT_MASK_OFFSET + ap->port_no; - mask = readb(mask_addr); + mask = readb((void __iomem *)mask_addr); if (ctl & ATA_NIEN) mask |= 0x80; else mask &= 0x7F; - writeb(mask, mask_addr); + writeb(mask, (void __iomem *)mask_addr); } @@ -109,21 +109,21 @@ static void vsc_sata_tf_load(struct ata_ vsc_intr_mask_update(ap, tf->ctl & ATA_NIEN); } if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) { - writew(tf->feature | (((u16)tf->hob_feature) << 8), ioaddr->feature_addr); - writew(tf->nsect | (((u16)tf->hob_nsect) << 8), ioaddr->nsect_addr); - writew(tf->lbal | (((u16)tf->hob_lbal) << 8), ioaddr->lbal_addr); - writew(tf->lbam | (((u16)tf->hob_lbam) << 8), ioaddr->lbam_addr); - writew(tf->lbah | (((u16)tf->hob_lbah) << 8), ioaddr->lbah_addr); + writew(tf->feature | (((u16)tf->hob_feature) << 8), (void __iomem *)ioaddr->feature_addr); + writew(tf->nsect | (((u16)tf->hob_nsect) << 8), (void __iomem *)ioaddr->nsect_addr); + writew(tf->lbal | (((u16)tf->hob_lbal) << 8), (void __iomem *)ioaddr->lbal_addr); + writew(tf->lbam | (((u16)tf->hob_lbam) << 8), (void __iomem *)ioaddr->lbam_addr); + writew(tf->lbah | (((u16)tf->hob_lbah) << 8), (void __iomem *)ioaddr->lbah_addr); } else if (is_addr) { - writew(tf->feature, ioaddr->feature_addr); - writew(tf->nsect, ioaddr->nsect_addr); - writew(tf->lbal, ioaddr->lbal_addr); - writew(tf->lbam, ioaddr->lbam_addr); - writew(tf->lbah, ioaddr->lbah_addr); + writew(tf->feature, (void __iomem *)ioaddr->feature_addr); + writew(tf->nsect, (void __iomem *)ioaddr->nsect_addr); + writew(tf->lbal, (void __iomem *)ioaddr->lbal_addr); + writew(tf->lbam, (void __iomem *)ioaddr->lbam_addr); + writew(tf->lbah, (void __iomem *)ioaddr->lbah_addr); } if (tf->flags & ATA_TFLAG_DEVICE) - writeb(tf->device, ioaddr->device_addr); + writeb(tf->device, (void __iomem *)ioaddr->device_addr); ata_wait_idle(ap); } @@ -134,14 +134,14 @@ static void vsc_sata_tf_read(struct ata_ struct ata_ioports *ioaddr = &ap->ioaddr; u16 nsect, lbal, lbam, lbah; - nsect = tf->nsect = readw(ioaddr->nsect_addr); - lbal = tf->lbal = readw(ioaddr->lbal_addr); - lbam = tf->lbam = readw(ioaddr->lbam_addr); - lbah = tf->lbah = readw(ioaddr->lbah_addr); - tf->device = readw(ioaddr->device_addr); + nsect = tf->nsect = readw((void __iomem *)ioaddr->nsect_addr); + lbal = tf->lbal = readw((void __iomem *)ioaddr->lbal_addr); + lbam = tf->lbam = readw((void __iomem *)ioaddr->lbam_addr); + lbah = tf->lbah = readw((void __iomem *)ioaddr->lbah_addr); + tf->device = readw((void __iomem *)ioaddr->device_addr); if (tf->flags & ATA_TFLAG_LBA48) { - tf->hob_feature = readb(ioaddr->error_addr); + tf->hob_feature = readb((void __iomem *)ioaddr->error_addr); tf->hob_nsect = nsect >> 8; tf->hob_lbal = lbal >> 8; tf->hob_lbam = lbam >> 8; @@ -245,8 +245,8 @@ static void __devinit vsc_sata_setup_por port->ctl_addr = base + VSC_SATA_TF_CTL_OFFSET; port->bmdma_addr = base + VSC_SATA_DMA_CMD_OFFSET; port->scr_addr = base + VSC_SATA_SCR_STATUS_OFFSET; - writel(0, base + VSC_SATA_UP_DESCRIPTOR_OFFSET); - writel(0, base + VSC_SATA_UP_DATA_BUFFER_OFFSET); + writel(0, (void __iomem *)(base + VSC_SATA_UP_DESCRIPTOR_OFFSET)); + writel(0, (void __iomem *)(base + VSC_SATA_UP_DATA_BUFFER_OFFSET)); }