Browse Source

qcacmn: Bypass hif apps irqs handle for single MSI case

Regarding to the platform suspend, generally the hif_bus_suspend() will
disable the CE irqs, however the irq is shared in the single MSI case,
so the MHI irq is disabled as well which cause no MHI ring event notified
in the following pci bus suspend.

The fix is to bypass hif apps irqs handle for single MSI case during
suspend-resume stage.

Change-Id: I4f9068900e85fe57c2a82d841846b3fff6da0696
CRs-Fixed: 3549884
Li Feng 2 năm trước cách đây
mục cha
commit
7f998d6240
1 tập tin đã thay đổi với 6 bổ sung0 xóa
  1. 6 0
      hif/src/dispatcher/multibus.c

+ 6 - 0
hif/src/dispatcher/multibus.c

@@ -476,6 +476,9 @@ int hif_apps_irqs_disable(struct hif_opaque_softc *hif_ctx)
 	if (!scn)
 		return -EINVAL;
 
+	if (pld_is_one_msi(scn->qdf_dev->dev))
+		return 0;
+
 	/* if the wake_irq is shared, don't disable it twice */
 	for (i = 0; i < scn->ce_count; ++i) {
 		int irq = scn->bus_ops.hif_map_ce_to_irq(scn, i);
@@ -497,6 +500,9 @@ int hif_apps_irqs_enable(struct hif_opaque_softc *hif_ctx)
 	if (!scn)
 		return -EINVAL;
 
+	if (pld_is_one_msi(scn->qdf_dev->dev))
+		return 0;
+
 	/* if the wake_irq is shared, don't enable it twice */
 	for (i = 0; i < scn->ce_count; ++i) {
 		int irq = scn->bus_ops.hif_map_ce_to_irq(scn, i);