#include <linux/module.h>
#include "tpci200.h"
-struct ipack_bus_ops tpci200_bus_ops;
+static struct ipack_bus_ops tpci200_bus_ops;
/* TPCI200 controls registers */
static int control_reg[] = {
return tpci200;
}
-static inline unsigned char __tpci200_read8(void *address, unsigned long offset)
+static inline unsigned char __tpci200_read8(void __iomem *address,
+ unsigned long offset)
{
return ioread8(address + (offset^1));
}
-static inline unsigned short __tpci200_read16(void *address,
+static inline unsigned short __tpci200_read16(void __iomem *address,
unsigned long offset)
{
return ioread16(address + offset);
}
-static inline unsigned int __tpci200_read32(void *address, unsigned long offset)
+static inline unsigned int __tpci200_read32(void __iomem *address,
+ unsigned long offset)
{
return swahw32(ioread32(address + offset));
}
static inline void __tpci200_write8(unsigned char value,
- void *address, unsigned long offset)
+ void __iomem *address, unsigned long offset)
{
iowrite8(value, address+(offset^1));
}
-static inline void __tpci200_write16(unsigned short value, void *address,
+static inline void __tpci200_write16(unsigned short value,
+ void __iomem *address,
unsigned long offset)
{
iowrite16(value, address+offset);
}
-static inline void __tpci200_write32(unsigned int value, void *address,
+static inline void __tpci200_write32(unsigned int value,
+ void __iomem *address,
unsigned long offset)
{
iowrite32(swahw32(value), address+offset);
spin_lock_irqsave(&tpci200->info->access_lock, flags);
/* Read status register */
- status_reg = readw((unsigned short *) (tpci200->info->interface_regs +
+ status_reg = readw((void __iomem *) (tpci200->info->interface_regs +
TPCI200_STATUS_REG));
if (status_reg & TPCI200_SLOT_INT_MASK) {
ret = tpci200->slots[i].irq->handler(tpci200->slots[i].irq->arg);
/* Dummy reads */
- readw((unsigned short *)
+ readw((void __iomem *)
(tpci200->slots[i].dev->io_space.address +
0xC0));
- readw((unsigned short *)
+ readw((void __iomem *)
(tpci200->slots[i].dev->io_space.address +
0xC2));
pr_info("No registered ISR for slot [%s %d:%d]!. IRQ will be disabled.\n",
TPCI200_SHORTNAME,
tpci200->number, i);
- reg_value = readw((unsigned short *)(tpci200->info->interface_regs +
+ reg_value = readw(
+ (void __iomem *)(tpci200->info->interface_regs +
control_reg[i]));
reg_value &=
~(TPCI200_INT0_EN | TPCI200_INT1_EN);
- writew(reg_value, (unsigned short *)(tpci200->info->interface_regs +
- control_reg[i]));
+ writew(reg_value,
+ (void __iomem *)(tpci200->info->interface_regs +
+ control_reg[i]));
}
}
}
/* Set all slot physical address space */
for (i = 0; i < TPCI200_NB_SLOT; i++) {
tpci200->slots[i].io_phys.address =
- (void *)ioidint_base +
+ (void __iomem *)ioidint_base +
TPCI200_IO_SPACE_OFF + TPCI200_IO_SPACE_GAP*i;
tpci200->slots[i].io_phys.size = TPCI200_IO_SPACE_SIZE;
tpci200->slots[i].id_phys.address =
- (void *)ioidint_base +
+ (void __iomem *)ioidint_base +
TPCI200_ID_SPACE_OFF + TPCI200_ID_SPACE_GAP*i;
tpci200->slots[i].id_phys.size = TPCI200_ID_SPACE_SIZE;
tpci200->slots[i].mem_phys.address =
- (void *)mem_base + TPCI200_MEM8_GAP*i;
+ (void __iomem *)mem_base + TPCI200_MEM8_GAP*i;
tpci200->slots[i].mem_phys.size = TPCI200_MEM8_SIZE;
writew(slot_ctrl,
- (unsigned short *)(tpci200->info->interface_regs +
+ (void __iomem *)(tpci200->info->interface_regs +
control_reg[i]));
}
* clock rate 8 MHz
*/
slot_ctrl = TPCI200_INT0_EN | TPCI200_INT1_EN;
- writew(slot_ctrl, (unsigned short *)(tpci200->info->interface_regs +
+ writew(slot_ctrl, (void __iomem *)(tpci200->info->interface_regs +
control_reg[dev->slot]));
return 0;
* clock rate 8 MHz
*/
slot_ctrl = 0;
- writew(slot_ctrl, (unsigned short *)(tpci200->info->interface_regs +
- control_reg[dev->slot]));
+ writew(slot_ctrl,
+ (void __iomem *)(tpci200->info->interface_regs +
+ control_reg[dev->slot]));
}
static int tpci200_free_irq(struct ipack_device *dev)
{
int res;
unsigned int size_to_map;
- void *phys_address;
+ void __iomem *phys_address;
struct ipack_addr_space *virt_addr_space;
struct tpci200_board *tpci200;
kfree(tpci200->slots);
}
-struct ipack_bus_ops tpci200_bus_ops = {
+static struct ipack_bus_ops tpci200_bus_ops = {
.map_space = tpci200_slot_map_space,
.unmap_space = tpci200_slot_unmap_space,
.request_irq = tpci200_request_irq,