summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/pci.c')
-rw-r--r--arch/arm/mach-tegra/pci.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/pci.c b/arch/arm/mach-tegra/pci.c
index c4ced311e223..5118692b1b79 100644
--- a/arch/arm/mach-tegra/pci.c
+++ b/arch/arm/mach-tegra/pci.c
@@ -33,6 +33,7 @@
#include <mach/pci.h>
#include <mach/nvrm_linux.h>
+#include <mach/board.h>
#include "nvrm_pmu.h"
#include "nvodm_query_discovery.h"
@@ -362,7 +363,7 @@ static int __init pci_tegra_setup(int nr, struct pci_sys_data *data)
0, NULL);
NvRmPowerModuleClockControl(s_hRmGlobal, NvRmPrivModuleID_Pcie,
pci_tegra_powerid, NV_FALSE);
- pci_tegra_power(0);
+ tegra_set_voltage(NV_VDD_PEX_CLK_ODM_ID, 0);
return 0;
}
pci_tegra_device_attached = true;
@@ -402,12 +403,21 @@ static struct pci_bus __init *pci_tegra_scan_bus(int nr,
return NULL;
}
+int pci_tegra_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+{
+ int ret = 0;
+ pci_tegra_read_conf(dev->bus, dev->devfn, PCI_INTERRUPT_LINE,
+ sizeof(int), &ret);
+ return (ret & 0x000000ff);
+}
+
static struct hw_pci pci_tegra_data __initdata = {
.nr_controllers = 2,
.preinit = pci_tegra_preinit,
.setup = pci_tegra_setup,
.scan = pci_tegra_scan_bus,
.swizzle = pci_std_swizzle,
+ .map_irq = pci_tegra_map_irq,
};
late_initcall(pcie_tegra_init);