浏览代码

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 年之前
父节点
当前提交
7f998d6240
共有 1 个文件被更改,包括 6 次插入0 次删除
  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);