Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 056bf558 authored by Srikanth Marepalli's avatar Srikanth Marepalli Committed by Madan Koyyalamudi
Browse files

qcacld-3.0: Add wow event and reason for roam event stats

This change sends the new wow event in the bitmap to FW only
when the roam stats suspend mode attribute is enabled from the
user space.
Also, the new wow reason is added to wake up the host while
sending the roam event stats.

Change-Id: Iaefb229929e8791870f33bf787487f7c20daf218
CRs-Fixed: 3050830
parent 6f83bfd8
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -838,6 +838,9 @@ wlan_cm_update_roam_rt_stats(struct wlan_objmgr_psoc *psoc,
	case ROAM_RT_STATS_ENABLE:
		roam_rt_stats->roam_stats_enabled = value;
		break;
	case ROAM_RT_STATS_SUSPEND_MODE_ENABLE:
		roam_rt_stats->roam_stats_wow_sent = value;
		break;
	default:
		break;
	}
@@ -863,6 +866,9 @@ uint8_t wlan_cm_get_roam_rt_stats(struct wlan_objmgr_psoc *psoc,
	case ROAM_RT_STATS_ENABLE:
		rstats_value = roam_rt_stats->roam_stats_enabled;
		break;
	case ROAM_RT_STATS_SUSPEND_MODE_ENABLE:
		rstats_value = roam_rt_stats->roam_stats_wow_sent;
		break;
	default:
		break;
	}
+16 −0
Original line number Diff line number Diff line
@@ -15400,6 +15400,22 @@ static int __wlan_hdd_cfg80211_set_roam_events(struct wiphy *wiphy,
	ucfg_cm_update_roam_rt_stats(hdd_ctx->psoc,
				     param, ROAM_RT_STATS_ENABLE);
	if (param == (ROAM_RT_STATS_ENABLED |
		      ROAM_RT_STATS_ENABLED_IN_SUSPEND_MODE)) {
		ucfg_pmo_enable_wakeup_event(hdd_ctx->psoc, adapter->vdev_id,
					     WOW_ROAM_STATS_EVENT);
		ucfg_cm_update_roam_rt_stats(hdd_ctx->psoc,
					     ROAM_RT_STATS_ENABLED,
					     ROAM_RT_STATS_SUSPEND_MODE_ENABLE);
	} else if (ucfg_cm_get_roam_rt_stats(hdd_ctx->psoc,
					   ROAM_RT_STATS_SUSPEND_MODE_ENABLE)) {
		ucfg_pmo_disable_wakeup_event(hdd_ctx->psoc, adapter->vdev_id,
					      WOW_ROAM_STATS_EVENT);
		ucfg_cm_update_roam_rt_stats(hdd_ctx->psoc,
					     ROAM_RT_STATS_DISABLED,
					     ROAM_RT_STATS_SUSPEND_MODE_ENABLE);
	}
	status = ucfg_cm_roam_send_rt_stats_config(hdd_ctx->pdev,
						   adapter->vdev_id, param);
+3 −0
Original line number Diff line number Diff line
@@ -1498,6 +1498,8 @@ static const uint8_t *wma_wow_wake_reason_str(A_INT32 wake_reason)
		return "GENERIC_WAKE";
	case WOW_REASON_TWT:
		return "TWT Event";
	case WOW_REASON_ROAM_STATS:
		return "ROAM_STATS";
	default:
		return "unknown";
	}
@@ -2493,6 +2495,7 @@ static int wma_wake_event_no_payload(
		return wma_wake_reason_nlod(wma, wake_info->vdev_id);

	case WOW_REASON_GENERIC_WAKE:
	case WOW_REASON_ROAM_STATS:
		wma_info("Wake reason %s",
			 wma_wow_wake_reason_str(wake_info->wake_reason));
		return 0;