qcacmn: Add USB bus support (HIF Dispatcher)

Add module specific changes for USB bus support.

Change-Id: If1f7d16a733d5d98cba982e3a5e7936356c57d8a
CRs-Fixed: 1023663
diff --git a/hif/src/dispatcher/multibus.c b/hif/src/dispatcher/multibus.c
index 215c829..416d997 100644
--- a/hif/src/dispatcher/multibus.c
+++ b/hif/src/dispatcher/multibus.c
@@ -31,6 +31,7 @@
 #include "hif.h"
 #include "hif_main.h"
 #include "multibus.h"
+#include "dummy.h"
 #if defined(HIF_PCI) || defined(HIF_SNOC) || defined(HIF_AHB)
 #include "ce_main.h"
 #endif
@@ -49,12 +50,13 @@
 
 	/* must be filled in by hif_bus_open */
 	bus_ops->hif_bus_close = NULL;
-
 	/* dummy implementations */
 	bus_ops->hif_display_stats =
 		&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;
 }
 
 #define NUM_OPS (sizeof(struct hif_bus_ops) / sizeof(void *))
@@ -100,6 +102,8 @@
 		return hif_snoc_get_context_size();
 	case QDF_BUS_TYPE_SDIO:
 		return hif_sdio_get_context_size();
+	case QDF_BUS_TYPE_USB:
+		return hif_usb_get_context_size();
 	default:
 		return 0;
 	}
@@ -131,6 +135,8 @@
 		break;
 	case QDF_BUS_TYPE_SDIO:
 		status = hif_initialize_sdio_ops(hif_sc);
+	case QDF_BUS_TYPE_USB:
+		status = hif_initialize_usb_ops(&hif_sc->bus_ops);
 		break;
 	default:
 		status = QDF_STATUS_E_NOSUPPORT;
@@ -347,3 +353,34 @@
 	hif_sc->bus_ops.hif_disable_power_management(hif_sc);
 }
 
+/**
+ * hif_set_bundle_mode() - enable bundling and set default rx bundle cnt
+ * @scn: pointer to hif_opaque_softc structure
+ * @enabled: flag to enable/disable bundling
+ * @rx_bundle_cnt: bundle count to be used for RX
+ *
+ * Return: none
+ */
+void hif_set_bundle_mode(struct hif_opaque_softc *scn, bool enabled,
+				int rx_bundle_cnt)
+{
+	struct hif_softc *hif_sc = HIF_GET_SOFTC(scn);
+	hif_sc->bus_ops.hif_set_bundle_mode(hif_sc, enabled, rx_bundle_cnt);
+}
+
+/**
+ * hif_bus_reset_resume() - resume the bus after reset
+ * @scn: struct hif_opaque_softc
+ *
+ * This function is called to tell the driver that USB device has been resumed
+ * and it has also been reset. The driver should redo any necessary
+ * initialization. This function resets WLAN SOC.
+ *
+ * Return: int 0 for success, non zero for failure
+ */
+int hif_bus_reset_resume(struct hif_opaque_softc *scn)
+
+{
+	struct hif_softc *hif_sc = HIF_GET_SOFTC(scn);
+	return hif_sc->bus_ops.hif_bus_reset_resume(hif_sc);
+}