فهرست منبع

qcacmn: HIF APIs to prevent/allow low power states

Add HIF APIs to prevent or allow link to go into low power states. The
current implementation uses PLD APIs to make the needed configuration.

Change-Id: I22efb4bcf902f9aff674ed1872f4f23bef508aae
CRs-Fixed: 2602029
Mohit Khanna 5 سال پیش
والد
کامیت
ace98f847f
2فایلهای تغییر یافته به همراه42 افزوده شده و 0 حذف شده
  1. 31 0
      hif/inc/hif.h
  2. 11 0
      hif/src/pcie/if_pci.c

+ 31 - 0
hif/inc/hif.h

@@ -1202,6 +1202,37 @@ int hif_force_wake_release(struct hif_opaque_softc *handle)
 }
 #endif /* FORCE_WAKE */
 
+#ifdef FEATURE_HAL_DELAYED_REG_WRITE
+/**
+ * hif_prevent_link_low_power_states() - Prevent from going to low power states
+ * @hif - HIF opaque context
+ *
+ * Return: 0 on success. Error code on failure.
+ */
+int hif_prevent_link_low_power_states(struct hif_opaque_softc *hif);
+
+/**
+ * hif_allow_link_low_power_states() - Allow link to go to low power states
+ * @hif - HIF opaque context
+ *
+ * Return: None
+ */
+void hif_allow_link_low_power_states(struct hif_opaque_softc *hif);
+
+#else
+
+static inline
+int hif_prevent_link_low_power_states(struct hif_opaque_softc *hif)
+{
+	return 0;
+}
+
+static inline
+void hif_allow_link_low_power_states(struct hif_opaque_softc *hif)
+{
+}
+#endif
+
 void *hif_get_dev_ba(struct hif_opaque_softc *hif_handle);
 
 /**

+ 11 - 0
hif/src/pcie/if_pci.c

@@ -4844,3 +4844,14 @@ void hif_print_pci_stats(struct hif_pci_softc *pci_handle)
 }
 #endif /* FORCE_WAKE */
 
+#ifdef FEATURE_HAL_DELAYED_REG_WRITE
+int hif_prevent_link_low_power_states(struct hif_opaque_softc *hif)
+{
+	return pld_prevent_l1(HIF_GET_SOFTC(hif)->qdf_dev->dev);
+}
+
+void hif_allow_link_low_power_states(struct hif_opaque_softc *hif)
+{
+	pld_allow_l1(HIF_GET_SOFTC(hif)->qdf_dev->dev);
+}
+#endif