Explorar o código

Merge "qcacmn: Change the return value for non-TLV targets"

Linux Build Service Account %!s(int64=3) %!d(string=hai) anos
pai
achega
c050c1cf6e
Modificáronse 2 ficheiros con 27 adicións e 4 borrados
  1. 12 0
      target_if/twt/src/target_if_twt.c
  2. 15 4
      wmi/src/wmi_unified.c

+ 12 - 0
target_if/twt/src/target_if_twt.c

@@ -48,6 +48,8 @@ target_if_twt_register_events(struct wlan_objmgr_psoc *psoc)
 					WMI_RX_WORK_CTX);
 	if (QDF_IS_STATUS_ERROR(status)) {
 		target_if_err("Failed to register twt enable event cb");
+		if (status ==  QDF_STATUS_E_NOSUPPORT)
+			status = QDF_STATUS_SUCCESS;
 		return status;
 	}
 
@@ -57,12 +59,16 @@ target_if_twt_register_events(struct wlan_objmgr_psoc *psoc)
 				WMI_RX_WORK_CTX);
 	if (QDF_IS_STATUS_ERROR(status)) {
 		target_if_err("Failed to register twt disable event cb");
+		if (status ==  QDF_STATUS_E_NOSUPPORT)
+			status = QDF_STATUS_SUCCESS;
 		return status;
 	}
 
 	status = target_if_twt_register_ext_events(psoc);
 	if (QDF_IS_STATUS_ERROR(status)) {
 		target_if_err("Failed to register twt ext events");
+		if (status ==  QDF_STATUS_E_NOSUPPORT)
+			status = QDF_STATUS_SUCCESS;
 		return status;
 	}
 
@@ -90,6 +96,8 @@ target_if_twt_deregister_events(struct wlan_objmgr_psoc *psoc)
 					wmi_twt_enable_complete_event_id);
 	if (QDF_IS_STATUS_ERROR(status)) {
 		target_if_err("Failed to deregister twt enable event cb");
+		if (status ==  QDF_STATUS_E_NOSUPPORT)
+			status = QDF_STATUS_SUCCESS;
 		return status;
 	}
 
@@ -97,12 +105,16 @@ target_if_twt_deregister_events(struct wlan_objmgr_psoc *psoc)
 					 wmi_twt_disable_complete_event_id);
 	if (QDF_IS_STATUS_ERROR(status)) {
 		target_if_err("Failed to deregister twt disable event cb");
+		if (status ==  QDF_STATUS_E_NOSUPPORT)
+			status = QDF_STATUS_SUCCESS;
 		return status;
 	}
 
 	status = target_if_twt_deregister_ext_events(psoc);
 	if (QDF_IS_STATUS_ERROR(status)) {
 		target_if_err("Failed to deregister twt ext events");
+		if (status ==  QDF_STATUS_E_NOSUPPORT)
+			status = QDF_STATUS_SUCCESS;
 		return status;
 	}
 

+ 15 - 4
wmi/src/wmi_unified.c

@@ -2167,13 +2167,19 @@ wmi_register_event_handler_with_ctx(wmi_unified_t wmi_handle,
 
 	soc = wmi_handle->soc;
 
-	if (event_id >= wmi_events_max ||
-		wmi_handle->wmi_events[event_id] == WMI_EVENT_ID_INVALID) {
+	if (event_id >= wmi_events_max) {
 		QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_INFO,
 			  "%s: Event id %d is unavailable",
 					__func__, event_id);
 		return QDF_STATUS_E_FAILURE;
 	}
+
+	if (wmi_handle->wmi_events[event_id] == WMI_EVENT_ID_INVALID) {
+		QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_DEBUG,
+			  "%s: Event id %d is not supported",
+			  __func__, event_id);
+		return QDF_STATUS_E_NOSUPPORT;
+	}
 	evt_id = wmi_handle->wmi_events[event_id];
 
 	if (wmi_unified_get_event_handler_ix(wmi_handle, evt_id) != -1) {
@@ -2299,11 +2305,16 @@ QDF_STATUS wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
 
 	soc = wmi_handle->soc;
 
-	if (event_id >= wmi_events_max ||
-		wmi_handle->wmi_events[event_id] == WMI_EVENT_ID_INVALID) {
+	if (event_id >= wmi_events_max) {
 		wmi_err("Event id %d is unavailable", event_id);
 		return QDF_STATUS_E_FAILURE;
 	}
+
+	if (wmi_handle->wmi_events[event_id] == WMI_EVENT_ID_INVALID) {
+		wmi_debug("Event id %d is not supported", event_id);
+		return QDF_STATUS_E_NOSUPPORT;
+	}
+
 	evt_id = wmi_handle->wmi_events[event_id];
 
 	idx = wmi_unified_get_event_handler_ix(wmi_handle, evt_id);