Forráskód Böngészése

qcacld-3.0: Add new WMI wakeup reason

Add the new WMI wakeup reason “WOW_REASON_LOCAL_DATA_UC_DROP".

Change-Id: Ibae5d98de8e63b03930837de8ce3062fef319718
CRs-Fixed: 2798184
Abdul Muqtadeer Ahmed 4 éve
szülő
commit
1eb57fce21

+ 2 - 0
components/cp_stats/dispatcher/inc/wlan_cp_stats_mc_defs.h

@@ -131,6 +131,7 @@ enum txrate_gi {
  * @pno_complete_wake_up_count: pno complete wakeup count
  * @pno_match_wake_up_count:    pno match wakeup count
  * @oem_response_wake_up_count: oem response wakeup count
+ * @uc_drop_wake_up_count:      local data uc drop wakeup count
  * @pwr_save_fail_detected:     pwr save fail detected wakeup count
  * @scan_11d                    11d scan wakeup count
  * @mgmt_assoc: association request management frame
@@ -158,6 +159,7 @@ struct wake_lock_stats {
 	uint32_t pno_complete_wake_up_count;
 	uint32_t pno_match_wake_up_count;
 	uint32_t oem_response_wake_up_count;
+	uint32_t uc_drop_wake_up_count;
 	uint32_t pwr_save_fail_detected;
 	uint32_t scan_11d;
 	uint32_t mgmt_assoc;

+ 3 - 0
components/cp_stats/dispatcher/src/wlan_cp_stats_mc_ucfg_api.c

@@ -551,6 +551,7 @@ static void vdev_iterator(struct wlan_objmgr_psoc *psoc, void *vdev, void *arg)
 	stats->pno_match_wake_up_count += vdev_stats->pno_match_wake_up_count;
 	stats->oem_response_wake_up_count +=
 			vdev_stats->oem_response_wake_up_count;
+	stats->uc_drop_wake_up_count += vdev_stats->uc_drop_wake_up_count;
 	stats->pwr_save_fail_detected += vdev_stats->pwr_save_fail_detected;
 	stats->scan_11d += vdev_stats->scan_11d;
 }
@@ -661,6 +662,7 @@ QDF_STATUS ucfg_mc_cp_stats_write_wow_stats(
 			     "\tG-Scan: %u\n"
 			     "\tPNO Complete: %u\n"
 			     "\tPNO Match: %u\n"
+			     "\tUC Drop wake_count: %u\n"
 			     "\tOEM rsp wake_count: %u\n"
 			     "\twake count due to pwr_save_fail_detected: %u\n"
 			     "\twake count due to 11d scan: %u\n",
@@ -679,6 +681,7 @@ QDF_STATUS ucfg_mc_cp_stats_write_wow_stats(
 			     wow_stats.gscan_wake_up_count,
 			     wow_stats.pno_complete_wake_up_count,
 			     wow_stats.pno_match_wake_up_count,
+			     wow_stats.uc_drop_wake_up_count,
 			     wow_stats.oem_response_wake_up_count,
 			     wow_stats.pwr_save_fail_detected,
 			     wow_stats.scan_11d);

+ 4 - 0
components/target_if/cp_stats/src/target_if_mc_cp_stats.c

@@ -1069,6 +1069,10 @@ static void target_if_cp_stats_inc_wake_lock_stats(uint32_t reason,
 		stats->pwr_save_fail_detected++;
 		break;
 
+	case WOW_REASON_LOCAL_DATA_UC_DROP:
+		stats->uc_drop_wake_up_count++;
+		break;
+
 	default:
 		break;
 	}

+ 5 - 1
core/wma/src/wma_features.c

@@ -1477,6 +1477,8 @@ static const uint8_t *wma_wow_wake_reason_str(A_INT32 wake_reason)
 		return "ROAM_PMKID_REQUEST";
 	case WOW_REASON_VDEV_DISCONNECT:
 		return "VDEV_DISCONNECT";
+	case WOW_REASON_LOCAL_DATA_UC_DROP:
+		return "LOCAL_DATA_UC_DROP";
 	default:
 		return "unknown";
 	}
@@ -1505,6 +1507,7 @@ static bool wma_wow_reason_has_stats(enum wake_reason_e reason)
 	case WOW_REASON_OEM_RESPONSE_EVENT:
 	case WOW_REASON_CHIP_POWER_FAILURE_DETECT:
 	case WOW_REASON_11D_SCAN:
+	case WOW_REASON_LOCAL_DATA_UC_DROP:
 		return true;
 #ifdef WLAN_FEATURE_MOTION_DETECTION
 	case WOW_REASON_WLAN_MD:
@@ -1551,13 +1554,14 @@ static void wma_wow_stats_display(struct wake_lock_stats *stats)
 		      stats->mgmt_action);
 
 	wma_nofl_alert("pno_match:%d pno_complete:%d gscan:%d "
-		      "low_rssi:%d rssi_breach:%d oem:%d scan_11d:%d",
+		      "low_rssi:%d rssi_breach:%d oem:%d ucdrop:%d scan_11d:%d",
 		      stats->pno_match_wake_up_count,
 		      stats->pno_complete_wake_up_count,
 		      stats->gscan_wake_up_count,
 		      stats->low_rssi_wake_up_count,
 		      stats->rssi_breach_wake_up_count,
 		      stats->oem_response_wake_up_count,
+		      stats->uc_drop_wake_up_count,
 		      stats->scan_11d);
 }
 

+ 2 - 0
core/wma/src/wma_main.c

@@ -1813,6 +1813,7 @@ static void wma_state_info_dump(char **buf_ptr, uint16_t *size)
 			"\tipv6_mcast_ns %u\n"
 			"\tipv6_mcast_na %u\n"
 			"\toem_response %u\n"
+			"\tuc_drop %u\n"
 			"dtimPeriod %d\n"
 			"chan_width %d\n"
 			"vdev_active %d\n"
@@ -1838,6 +1839,7 @@ static void wma_state_info_dump(char **buf_ptr, uint16_t *size)
 			stats.ipv6_mcast_ns_stats,
 			stats.ipv6_mcast_na_stats,
 			stats.oem_response_wake_up_count,
+			stats.uc_drop_wake_up_count,
 			iface->dtimPeriod,
 			iface->chan_width,
 			iface->vdev_active,