Commit 84a08fa9 authored by Jens Taprogge's avatar Jens Taprogge Committed by Greg Kroah-Hartman
Browse files

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: default avatarJens Taprogge <jens.taprogge@taprogge.org>
Signed-off-by: default avatarSamuel Iglesias Gonsalvez <siglesias@igalia.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bb29ab86
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -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;

+1 −0
Original line number Diff line number Diff line
@@ -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_ */
+5 −2
Original line number Diff line number Diff line
@@ -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,
};

/**