qcacmn: Use suspend_noirq callback instead of disabling irqs

Disabling the interrupts and setting them as wakeup sources does
not work as expected.  The pending interrupt gets trapped in sw
and kernel does not check for it before finishing the suspend.

Instead, use the suspend_noirq callback to guarantee that
wakeup messages don't get processed without rejecting the suspend.

Change-Id: I5ec5ce2a7e1b14c3d8477fe7aa0372c9ffd4dc0d
CRs-Fixed: 1060880
diff --git a/hif/src/dispatcher/multibus.c b/hif/src/dispatcher/multibus.c
index 416d997..5643b6f 100644
--- a/hif/src/dispatcher/multibus.c
+++ b/hif/src/dispatcher/multibus.c
@@ -55,8 +55,10 @@
 		&hif_dummy_display_stats;
 	bus_ops->hif_clear_stats =
 		&hif_dummy_clear_stats;
-	bus_ops->hif_set_bundle_mode = hif_dummy_set_bundle_mode;
-	bus_ops->hif_bus_reset_resume = hif_dummy_bus_reset_resume;
+	bus_ops->hif_set_bundle_mode = &hif_dummy_set_bundle_mode;
+	bus_ops->hif_bus_reset_resume = &hif_dummy_bus_reset_resume;
+	bus_ops->hif_bus_suspend_noirq = &hif_dummy_bus_suspend_noirq;
+	bus_ops->hif_bus_resume_noirq = &hif_dummy_bus_resume_noirq;
 }
 
 #define NUM_OPS (sizeof(struct hif_bus_ops) / sizeof(void *))
@@ -195,6 +197,18 @@
 	return hif_sc->bus_ops.hif_bus_resume(hif_sc);
 }
 
+int hif_bus_suspend_noirq(struct hif_opaque_softc *hif_ctx)
+{
+	struct hif_softc *hif_sc = HIF_GET_SOFTC(hif_ctx);
+	return hif_sc->bus_ops.hif_bus_suspend_noirq(hif_sc);
+}
+
+int hif_bus_resume_noirq(struct hif_opaque_softc *hif_ctx)
+{
+	struct hif_softc *hif_sc = HIF_GET_SOFTC(hif_ctx);
+	return hif_sc->bus_ops.hif_bus_resume_noirq(hif_sc);
+}
+
 int hif_target_sleep_state_adjust(struct hif_softc *hif_sc,
 			      bool sleep_ok, bool wait_for_it)
 {