Commit 8be08a39 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Kalle Valo

bcma: implement host code support for PCIe Gen 2 devices

This is stil incomplete, so we don't add PCI IDs of new devices yet.
Purpose of this patch is to allow testing & adjusting rest of the code.
Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent b504075f
...@@ -13,10 +13,12 @@ ...@@ -13,10 +13,12 @@
static void bcma_host_pci_switch_core(struct bcma_device *core) static void bcma_host_pci_switch_core(struct bcma_device *core)
{ {
int win2 = core->bus->host_is_pcie2 ?
BCMA_PCIE2_BAR0_WIN2 : BCMA_PCI_BAR0_WIN2;
pci_write_config_dword(core->bus->host_pci, BCMA_PCI_BAR0_WIN, pci_write_config_dword(core->bus->host_pci, BCMA_PCI_BAR0_WIN,
core->addr); core->addr);
pci_write_config_dword(core->bus->host_pci, BCMA_PCI_BAR0_WIN2, pci_write_config_dword(core->bus->host_pci, win2, core->wrap);
core->wrap);
core->bus->mapped_core = core; core->bus->mapped_core = core;
bcma_debug(core->bus, "Switched to core: 0x%X\n", core->id.id); bcma_debug(core->bus, "Switched to core: 0x%X\n", core->id.id);
} }
......
...@@ -318,6 +318,7 @@ struct bcma_bus { ...@@ -318,6 +318,7 @@ struct bcma_bus {
const struct bcma_host_ops *ops; const struct bcma_host_ops *ops;
enum bcma_hosttype hosttype; enum bcma_hosttype hosttype;
bool host_is_pcie2; /* Used for BCMA_HOSTTYPE_PCI only */
union { union {
/* Pointer to the PCI bus (only for BCMA_HOSTTYPE_PCI) */ /* Pointer to the PCI bus (only for BCMA_HOSTTYPE_PCI) */
struct pci_dev *host_pci; struct pci_dev *host_pci;
......
...@@ -64,6 +64,8 @@ ...@@ -64,6 +64,8 @@
#define BCMA_PCI_GPIO_XTAL 0x40 /* PCI config space GPIO 14 for Xtal powerup */ #define BCMA_PCI_GPIO_XTAL 0x40 /* PCI config space GPIO 14 for Xtal powerup */
#define BCMA_PCI_GPIO_PLL 0x80 /* PCI config space GPIO 15 for PLL powerdown */ #define BCMA_PCI_GPIO_PLL 0x80 /* PCI config space GPIO 15 for PLL powerdown */
#define BCMA_PCIE2_BAR0_WIN2 0x70
/* SiliconBackplane Address Map. /* SiliconBackplane Address Map.
* All regions may not exist on all chips. * All regions may not exist on all chips.
*/ */
......
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