diff options
Diffstat (limited to 'arch/arm/mach-tegra/pci.c')
-rw-r--r-- | arch/arm/mach-tegra/pci.c | 12 |
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); |