Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 304695
b: refs/heads/master
c: 5a81b4a
h: refs/heads/master
i:
  304693: 378090c
  304691: 6e8d3e6
  304687: 944066c
v: v3
  • Loading branch information
Samuel Iglesias Gonsalvez authored and Greg Kroah-Hartman committed May 14, 2012
1 parent 7b965a8 commit 88ad682
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 29 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 55dfd881f1726fd2e79cfc1b7b22a893c44f9af4
refs/heads/master: 5a81b4a0b673bf34823191a83318377c0e66e713
51 changes: 29 additions & 22 deletions trunk/drivers/staging/ipack/bridges/tpci200.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#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[] = {
Expand Down Expand Up @@ -70,35 +70,39 @@ static struct tpci200_board *check_slot(struct ipack_device *dev)
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);
Expand Down Expand Up @@ -318,7 +322,7 @@ static irqreturn_t tpci200_interrupt(int irq, void *dev_id)
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) {
Expand All @@ -331,10 +335,10 @@ static irqreturn_t tpci200_interrupt(int irq, void *dev_id)
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));

Expand All @@ -349,12 +353,14 @@ static irqreturn_t tpci200_interrupt(int irq, void *dev_id)
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]));
}
}
}
Expand Down Expand Up @@ -675,21 +681,21 @@ static int tpci200_register(struct tpci200_board *tpci200)
/* 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]));
}

Expand Down Expand Up @@ -732,7 +738,7 @@ static int __tpci200_request_irq(struct tpci200_board *tpci200,
* 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;
Expand All @@ -752,8 +758,9 @@ static void __tpci200_free_irq(struct tpci200_board *tpci200,
* 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)
Expand Down Expand Up @@ -878,7 +885,7 @@ static int tpci200_slot_map_space(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;

Expand Down Expand Up @@ -1041,7 +1048,7 @@ static void tpci200_uninstall(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,
Expand Down
6 changes: 3 additions & 3 deletions trunk/drivers/staging/ipack/bridges/tpci200.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,9 +147,9 @@ struct tpci200_slot {
struct tpci200_infos {
struct pci_dev *pdev;
struct pci_device_id *id_table;
void *interface_regs;
void *ioidint_space;
void *mem8_space;
void __iomem *interface_regs;
void __iomem *ioidint_space;
void __iomem *mem8_space;
spinlock_t access_lock;
struct ipack_bus_device drv;
};
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/staging/ipack/devices/ipoctal.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ static inline void ipoctal_write_io_reg(struct ipoctal *ipoctal,
{
unsigned long offset;

offset = ((void *) dest) - ipoctal->dev->io_space.address;
offset = ((void __iomem *) dest) - ipoctal->dev->io_space.address;
ipoctal->dev->ops->write8(ipoctal->dev, IPACK_IO_SPACE, offset, value);
}

Expand All @@ -89,7 +89,7 @@ static inline unsigned char ipoctal_read_io_reg(struct ipoctal *ipoctal,
unsigned long offset;
unsigned char value;

offset = ((void *) src) - ipoctal->dev->io_space.address;
offset = ((void __iomem *) src) - ipoctal->dev->io_space.address;
ipoctal->dev->ops->read8(ipoctal->dev, IPACK_IO_SPACE, offset, &value);
return value;
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/staging/ipack/ipack.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ enum ipack_space {
* @size: size of the mapped space
*/
struct ipack_addr_space {
void *address;
void __iomem *address;
unsigned int size;
};

Expand Down

0 comments on commit 88ad682

Please sign in to comment.