mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
PCI: qcom: Skip DWC MSI host initialization when DT 'msi-map' is present
qcom_pcie_ecam_host_init() unconditionally initializes the DesignWare internal MSI controller and sets use_imsi_rx, irrespective of whether an external MSI controller is described for the host bridge. When an 'msi-map' DT property is present, MSI interrupts are handled by the mapped external MSI controller. Initializing the internal iMSI-RX domain in this case is unnecessary. Set use_imsi_rx based on the presence of 'msi-map' in DT and initialize the DesignWare MSI host only when iMSI-RX is required. Signed-off-by: Ayiluri Naga Rashmi <ayiluri.rashmi@oss.qualcomm.com> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Link: https://patch.msgid.link/20260917-skipmsi_forlpi-v1-1-14a4932a4311@oss.qualcomm.com
This commit is contained in:
parent
bea2ff3b9d
commit
a67716078b
|
|
@ -2022,11 +2022,13 @@ static int qcom_pcie_ecam_host_init(struct pci_config_window *cfg)
|
|||
*/
|
||||
raw_spin_lock_init(&pp->lock);
|
||||
|
||||
ret = dw_pcie_msi_host_init(pp);
|
||||
if (ret)
|
||||
return ret;
|
||||
pp->use_imsi_rx = !pci_host_of_has_msi_map(dev);
|
||||
if (pp->use_imsi_rx) {
|
||||
ret = dw_pcie_msi_host_init(pp);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
pp->use_imsi_rx = true;
|
||||
dw_pcie_msi_init(pp);
|
||||
|
||||
return devm_add_action_or_reset(dev, qcom_pci_free_msi, pp);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user