Просмотр исходного кода

qcacld-3.0: Add PM semaphore related APIs in PLD

Add PM semaphore related APIs in PLD, which is being used in BMI.

CRs-Fixed: 1010156
Change-Id: Ief52f7b078ea62cae18508b9e523e2a19f3519b3
Yuanyuan Liu 9 лет назад
Родитель
Сommit
44c44772ad
3 измененных файлов с 50 добавлено и 0 удалено
  1. 2 0
      core/pld/inc/pld_common.h
  2. 40 0
      core/pld/src/pld_common.c
  3. 8 0
      core/pld/src/pld_pcie.h

+ 2 - 0
core/pld/inc/pld_common.h

@@ -342,5 +342,7 @@ void pld_enable_irq(struct device *dev, unsigned int ce_id);
 void pld_disable_irq(struct device *dev, unsigned int ce_id);
 int pld_get_soc_info(struct device *dev, struct pld_soc_info *info);
 int pld_get_ce_id(struct device *dev, int irq);
+void pld_lock_pm_sem(struct device *dev);
+void pld_release_pm_sem(struct device *dev);
 
 #endif

+ 40 - 0
core/pld/src/pld_common.c

@@ -1115,3 +1115,43 @@ int pld_get_ce_id(struct device *dev, int irq)
 
 	return ret;
 }
+
+/**
+ * pld_lock_pm_sem() - Lock PM semaphore
+ * @dev: device
+ *
+ * Return: void
+ */
+void pld_lock_pm_sem(struct device *dev)
+{
+	switch (pld_get_bus_type(dev)) {
+	case PLD_BUS_TYPE_PCIE:
+		cnss_lock_pm_sem();
+		break;
+	case PLD_BUS_TYPE_SNOC:
+		break;
+	default:
+		pr_err("Invalid device type\n");
+		break;
+	}
+}
+
+/**
+ * pld_release_pm_sem() - Release PM semaphore
+ * @dev: device
+ *
+ * Return: void
+ */
+void pld_release_pm_sem(struct device *dev)
+{
+	switch (pld_get_bus_type(dev)) {
+	case PLD_BUS_TYPE_PCIE:
+		cnss_release_pm_sem();
+		break;
+	case PLD_BUS_TYPE_SNOC:
+		break;
+	default:
+		pr_err("Invalid device type\n");
+		break;
+	}
+}

+ 8 - 0
core/pld/src/pld_pcie.h

@@ -179,6 +179,14 @@ static inline int cnss_auto_resume(void)
 {
 	return 0;
 }
+static void cnss_lock_pm_sem(void)
+{
+	return;
+}
+static void cnss_release_pm_sem(void)
+{
+	return;
+}
 #else
 int pld_pcie_get_fw_files_for_target(struct pld_fw_files *pfw_files,
 				     u32 target_type, u32 target_version);