Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'pci/controller/tegra'

- Export irq_domain_free_irqs() to allow PCI/MSI drivers that tear down
MSI domains to be built as modules (Aaron Kling)

- Export tegra_cpuidle_pcie_irqs_in_use(), which disables Tegra CC6 while
PCI IRQs are in use, so pci-tegra can be built as a module (Aaron Kling)

- Allow pci-tegra to be built as a module (Aaron Kling)

* pci/controller/tegra:
PCI: tegra: Allow building as a module
cpuidle: tegra: Export tegra_cpuidle_pcie_irqs_in_use()
irqdomain: Export irq_domain_free_irqs()

+7 -32
+1
drivers/cpuidle/cpuidle-tegra.c
··· 336 336 pr_info("disabling CC6 state, since PCIe IRQs are in use\n"); 337 337 tegra_cpuidle_disable_state(TEGRA_CC6); 338 338 } 339 + EXPORT_SYMBOL_GPL(tegra_cpuidle_pcie_irqs_in_use); 339 340 340 341 static void tegra_cpuidle_setup_tegra114_c7_state(void) 341 342 {
+1 -1
drivers/pci/controller/Kconfig
··· 248 248 driver. 249 249 250 250 config PCI_TEGRA 251 - bool "NVIDIA Tegra PCIe controller" 251 + tristate "NVIDIA Tegra PCIe controller" 252 252 depends on ARCH_TEGRA || COMPILE_TEST 253 253 depends on PCI_MSI 254 254 select IRQ_MSI_LIB
+4 -31
drivers/pci/controller/pci-tegra.c
··· 2545 2545 2546 2546 DEFINE_SEQ_ATTRIBUTE(tegra_pcie_ports); 2547 2547 2548 - static void tegra_pcie_debugfs_exit(struct tegra_pcie *pcie) 2549 - { 2550 - debugfs_remove_recursive(pcie->debugfs); 2551 - pcie->debugfs = NULL; 2552 - } 2553 - 2554 2548 static void tegra_pcie_debugfs_init(struct tegra_pcie *pcie) 2555 2549 { 2556 2550 pcie->debugfs = debugfs_create_dir("pcie", NULL); ··· 2616 2622 put_resources: 2617 2623 tegra_pcie_put_resources(pcie); 2618 2624 return err; 2619 - } 2620 - 2621 - static void tegra_pcie_remove(struct platform_device *pdev) 2622 - { 2623 - struct tegra_pcie *pcie = platform_get_drvdata(pdev); 2624 - struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); 2625 - struct tegra_pcie_port *port, *tmp; 2626 - 2627 - if (IS_ENABLED(CONFIG_DEBUG_FS)) 2628 - tegra_pcie_debugfs_exit(pcie); 2629 - 2630 - pci_stop_root_bus(host->bus); 2631 - pci_remove_root_bus(host->bus); 2632 - pm_runtime_put_sync(pcie->dev); 2633 - pm_runtime_disable(pcie->dev); 2634 - 2635 - if (IS_ENABLED(CONFIG_PCI_MSI)) 2636 - tegra_pcie_msi_teardown(pcie); 2637 - 2638 - tegra_pcie_put_resources(pcie); 2639 - 2640 - list_for_each_entry_safe(port, tmp, &pcie->ports, list) 2641 - tegra_pcie_port_free(port); 2642 2625 } 2643 2626 2644 2627 static int tegra_pcie_pm_suspend(struct device *dev) ··· 2721 2750 .pm = &tegra_pcie_pm_ops, 2722 2751 }, 2723 2752 .probe = tegra_pcie_probe, 2724 - .remove = tegra_pcie_remove, 2725 2753 }; 2726 - module_platform_driver(tegra_pcie_driver); 2754 + builtin_platform_driver(tegra_pcie_driver); 2755 + MODULE_AUTHOR("Thierry Reding <treding@nvidia.com>"); 2756 + MODULE_DESCRIPTION("NVIDIA PCI host controller driver"); 2757 + MODULE_LICENSE("GPL");
+1
kernel/irq/irqdomain.c
··· 1901 1901 irq_domain_free_irq_data(virq, nr_irqs); 1902 1902 irq_free_descs(virq, nr_irqs); 1903 1903 } 1904 + EXPORT_SYMBOL_GPL(irq_domain_free_irqs); 1904 1905 1905 1906 static void irq_domain_free_one_irq(struct irq_domain *domain, unsigned int virq) 1906 1907 {