Commit 48a97352 authored by Jens Taprogge's avatar Jens Taprogge Committed by Greg Kroah-Hartman

staging: ipack: Add support for IPACK_MEM16_SPACE.

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 fe4a3ed0
......@@ -33,6 +33,7 @@ static const size_t tpci200_space_size[IPACK_SPACE_COUNT] = {
[IPACK_ID_SPACE] = TPCI200_ID_SPACE_SIZE,
[IPACK_INT_SPACE] = TPCI200_INT_SPACE_SIZE,
[IPACK_MEM8_SPACE] = TPCI200_MEM8_SPACE_SIZE,
[IPACK_MEM16_SPACE] = TPCI200_MEM16_SPACE_SIZE,
};
static const size_t tpci200_space_interval[IPACK_SPACE_COUNT] = {
......@@ -40,6 +41,7 @@ static const size_t tpci200_space_interval[IPACK_SPACE_COUNT] = {
[IPACK_ID_SPACE] = TPCI200_ID_SPACE_INTERVAL,
[IPACK_INT_SPACE] = TPCI200_INT_SPACE_INTERVAL,
[IPACK_MEM8_SPACE] = TPCI200_MEM8_SPACE_INTERVAL,
[IPACK_MEM16_SPACE] = TPCI200_MEM16_SPACE_INTERVAL,
};
static struct tpci200_board *check_slot(struct ipack_device *dev)
......@@ -94,6 +96,7 @@ static void tpci200_unregister(struct tpci200_board *tpci200)
pci_release_region(tpci200->info->pdev, TPCI200_IP_INTERFACE_BAR);
pci_release_region(tpci200->info->pdev, TPCI200_IO_ID_INT_SPACES_BAR);
pci_release_region(tpci200->info->pdev, TPCI200_MEM16_SPACE_BAR);
pci_release_region(tpci200->info->pdev, TPCI200_MEM8_SPACE_BAR);
pci_release_region(tpci200->info->pdev, TPCI200_CFG_MEM_BAR);
......@@ -282,6 +285,17 @@ static int tpci200_register(struct tpci200_board *tpci200)
goto out_release_ioid_int_space;
}
/* Request MEM16 space (Bar 4) */
res = pci_request_region(tpci200->info->pdev, TPCI200_MEM16_SPACE_BAR,
"Carrier MEM16 space");
if (res) {
dev_err(&tpci200->info->pdev->dev,
"(bn 0x%X, sn 0x%X) failed to allocate PCI resource for BAR 4!",
tpci200->info->pdev->bus->number,
tpci200->info->pdev->devfn);
goto out_release_mem8_space;
}
/* Map internal tpci200 driver user space */
tpci200->info->interface_regs =
ioremap_nocache(pci_resource_start(tpci200->info->pdev,
......@@ -300,6 +314,9 @@ static int tpci200_register(struct tpci200_board *tpci200)
tpci200->mod_mem[IPACK_MEM8_SPACE] =
pci_resource_start(tpci200->info->pdev,
TPCI200_MEM8_SPACE_BAR);
tpci200->mod_mem[IPACK_MEM16_SPACE] =
pci_resource_start(tpci200->info->pdev,
TPCI200_MEM16_SPACE_BAR);
/* Set the default parameters of the slot
* INT0 disabled, level sensitive
......@@ -326,6 +343,8 @@ static int tpci200_register(struct tpci200_board *tpci200)
return 0;
out_release_mem8_space:
pci_release_region(tpci200->info->pdev, TPCI200_MEM8_SPACE_BAR);
out_release_ioid_int_space:
pci_release_region(tpci200->info->pdev, TPCI200_IO_ID_INT_SPACES_BAR);
out_release_ip_space:
......
......@@ -36,6 +36,7 @@ enum ipack_space {
IPACK_ID_SPACE,
IPACK_INT_SPACE,
IPACK_MEM8_SPACE,
IPACK_MEM16_SPACE,
/* Dummy for counting the number of entries. Must remain the last
* entry */
IPACK_SPACE_COUNT,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment