Staging: ipack/bridges/tpci200: Store beginning of module memory regions in struct tpci200.
tpci200_register is converted to use this. A later patch will build on this. Signed-off-by: Jens Taprogge <jens.taprogge@taprogge.org> Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bb29ab86d1
commit
84a08fa9eb
3 changed files with 23 additions and 11 deletions
|
@ -242,7 +242,6 @@ static int tpci200_register(struct tpci200_board *tpci200)
|
|||
int i;
|
||||
int res;
|
||||
phys_addr_t ioidint_base;
|
||||
phys_addr_t mem_base;
|
||||
unsigned short slot_ctrl;
|
||||
|
||||
if (pci_enable_device(tpci200->info->pdev) < 0)
|
||||
|
@ -293,7 +292,12 @@ static int tpci200_register(struct tpci200_board *tpci200)
|
|||
|
||||
ioidint_base = pci_resource_start(tpci200->info->pdev,
|
||||
TPCI200_IO_ID_INT_SPACES_BAR);
|
||||
mem_base = pci_resource_start(tpci200->info->pdev,
|
||||
tpci200->mod_mem[IPACK_IO_SPACE] = ioidint_base + TPCI200_IO_SPACE_OFF;
|
||||
tpci200->mod_mem[IPACK_ID_SPACE] = ioidint_base + TPCI200_ID_SPACE_OFF;
|
||||
tpci200->mod_mem[IPACK_INT_SPACE] =
|
||||
ioidint_base + TPCI200_INT_SPACE_OFF;
|
||||
tpci200->mod_mem[IPACK_MEM_SPACE] =
|
||||
pci_resource_start(tpci200->info->pdev,
|
||||
TPCI200_MEM8_SPACE_BAR);
|
||||
|
||||
/* Set the default parameters of the slot
|
||||
|
@ -308,19 +312,23 @@ 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.start = ioidint_base +
|
||||
TPCI200_IO_SPACE_OFF + TPCI200_IO_SPACE_GAP*i;
|
||||
tpci200->slots[i].io_phys.start =
|
||||
tpci200->mod_mem[IPACK_IO_SPACE] +
|
||||
TPCI200_IO_SPACE_GAP * i;
|
||||
tpci200->slots[i].io_phys.size = TPCI200_IO_SPACE_SIZE;
|
||||
|
||||
tpci200->slots[i].id_phys.start = ioidint_base +
|
||||
TPCI200_ID_SPACE_OFF + TPCI200_ID_SPACE_GAP*i;
|
||||
tpci200->slots[i].id_phys.start =
|
||||
tpci200->mod_mem[IPACK_ID_SPACE] +
|
||||
TPCI200_ID_SPACE_GAP * i;
|
||||
tpci200->slots[i].id_phys.size = TPCI200_ID_SPACE_SIZE;
|
||||
|
||||
tpci200->slots[i].int_phys.start = ioidint_base +
|
||||
TPCI200_INT_SPACE_OFF + TPCI200_INT_SPACE_GAP * i;
|
||||
tpci200->slots[i].int_phys.start =
|
||||
tpci200->mod_mem[IPACK_INT_SPACE] +
|
||||
TPCI200_INT_SPACE_GAP * i;
|
||||
tpci200->slots[i].int_phys.size = TPCI200_INT_SPACE_SIZE;
|
||||
|
||||
tpci200->slots[i].mem_phys.start = mem_base +
|
||||
tpci200->slots[i].mem_phys.start =
|
||||
tpci200->mod_mem[IPACK_MEM_SPACE] +
|
||||
TPCI200_MEM8_GAP * i;
|
||||
tpci200->slots[i].mem_phys.size = TPCI200_MEM8_SIZE;
|
||||
|
||||
|
|
|
@ -165,6 +165,7 @@ struct tpci200_board {
|
|||
spinlock_t regs_lock;
|
||||
struct tpci200_slot *slots;
|
||||
struct tpci200_infos *info;
|
||||
phys_addr_t mod_mem[IPACK_SPACE_COUNT];
|
||||
};
|
||||
|
||||
#endif /* _TPCI200_H_ */
|
||||
|
|
|
@ -33,9 +33,12 @@ struct ipack_driver;
|
|||
|
||||
enum ipack_space {
|
||||
IPACK_IO_SPACE = 0,
|
||||
IPACK_ID_SPACE = 1,
|
||||
IPACK_MEM_SPACE = 2,
|
||||
IPACK_ID_SPACE,
|
||||
IPACK_MEM_SPACE,
|
||||
IPACK_INT_SPACE,
|
||||
/* Dummy for counting the number of entries. Must remain the last
|
||||
* entry */
|
||||
IPACK_SPACE_COUNT,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue