diff options
author | Jens Taprogge <jens.taprogge@taprogge.org> | 2012-09-27 12:37:29 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-10-19 11:45:09 -0700 |
commit | 84a08fa9eb330969b661305bd5a5fcae06d98cba (patch) | |
tree | 65a3e94a2ebc5c8d28950263f77ea31a5b7409b1 /drivers/staging/ipack | |
parent | bb29ab86d18da68e5c7f05814c07d5eb8bdb4652 (diff) | |
download | op-kernel-dev-84a08fa9eb330969b661305bd5a5fcae06d98cba.zip op-kernel-dev-84a08fa9eb330969b661305bd5a5fcae06d98cba.tar.gz |
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>
Diffstat (limited to 'drivers/staging/ipack')
-rw-r--r-- | drivers/staging/ipack/bridges/tpci200.c | 26 | ||||
-rw-r--r-- | drivers/staging/ipack/bridges/tpci200.h | 1 | ||||
-rw-r--r-- | drivers/staging/ipack/ipack.h | 7 |
3 files changed, 23 insertions, 11 deletions
diff --git a/drivers/staging/ipack/bridges/tpci200.c b/drivers/staging/ipack/bridges/tpci200.c index 47b8a1b..5acaea2 100644 --- a/drivers/staging/ipack/bridges/tpci200.c +++ b/drivers/staging/ipack/bridges/tpci200.c @@ -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; diff --git a/drivers/staging/ipack/bridges/tpci200.h b/drivers/staging/ipack/bridges/tpci200.h index 59cb5b7..6b7c700 100644 --- a/drivers/staging/ipack/bridges/tpci200.h +++ b/drivers/staging/ipack/bridges/tpci200.h @@ -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_ */ diff --git a/drivers/staging/ipack/ipack.h b/drivers/staging/ipack/ipack.h index 9e543a5..a842eea 100644 --- a/drivers/staging/ipack/ipack.h +++ b/drivers/staging/ipack/ipack.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, }; /** |