Hi Christoph Hellwig,
On 8/14/2019 3:36 PM, Christoph Hellwig wrote:
On Wed, Aug 14, 2019 at 02:56:49PM +0800, Dilip Kota wrote:
Certain platforms like Intel need to configure
registers to enable the interrupts.
Map Irq callback helps to perform platform specific
configurations while assigning or enabling the interrupts.
This seems to miss the hunk that actually assigns the map_irq
callback.
pp->map_irq() must assign the callback along with the platform specific
configuration.
In Intel PCIe driver pp->map_irq() does the same. (Driver is not yet
present in mainline, i will submit for review once this change is approved).
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c
b/drivers/pci/controller/dwc/pcie-designware-host.c
index f93252d0da5b..5880d2b72ef8 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -470,7 +470,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
bridge->sysdata = pp;
bridge->busnr = pp->root_bus_nr;
bridge->ops = &dw_pcie_ops;
- bridge->map_irq = of_irq_parse_and_map_pci;
+ bridge->map_irq = pp->map_irq ? pp->map_irq : of_irq_parse_and_map_pci;
Pleae just use a classic if / else to make the code a little easier
to read.
Noted, will update it.
--Dilip