|
@@ -3116,8 +3116,19 @@ target_if_get_spectral_config(struct wlan_objmgr_pdev *pdev,
|
|
struct target_if_spectral *spectral = NULL;
|
|
struct target_if_spectral *spectral = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
|
|
|
|
|
|
+ if (!p_sops) {
|
|
|
|
+ spectral_err("p_sops is null");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (smode >= SPECTRAL_SCAN_MODE_MAX) {
|
|
if (smode >= SPECTRAL_SCAN_MODE_MAX) {
|
|
spectral_err("Invalid Spectral mode %u", smode);
|
|
spectral_err("Invalid Spectral mode %u", smode);
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
@@ -3920,6 +3931,11 @@ target_if_start_spectral_scan(struct wlan_objmgr_pdev *pdev,
|
|
}
|
|
}
|
|
*err = SPECTRAL_SCAN_ERR_INVALID;
|
|
*err = SPECTRAL_SCAN_ERR_INVALID;
|
|
|
|
|
|
|
|
+ if (!pdev) {
|
|
|
|
+ spectral_err("pdev object is NUll");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
psoc = wlan_pdev_get_psoc(pdev);
|
|
psoc = wlan_pdev_get_psoc(pdev);
|
|
if (!psoc) {
|
|
if (!psoc) {
|
|
spectral_err("psoc is null");
|
|
spectral_err("psoc is null");
|
|
@@ -3932,10 +3948,6 @@ target_if_start_spectral_scan(struct wlan_objmgr_pdev *pdev,
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
}
|
|
}
|
|
|
|
|
|
- if (!pdev) {
|
|
|
|
- spectral_err("pdev object is NUll");
|
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
|
- }
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
if (!spectral) {
|
|
if (!spectral) {
|
|
spectral_err("Spectral LMAC object is NUll");
|
|
spectral_err("Spectral LMAC object is NUll");
|
|
@@ -3943,6 +3955,10 @@ target_if_start_spectral_scan(struct wlan_objmgr_pdev *pdev,
|
|
}
|
|
}
|
|
|
|
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
|
|
+ if (!p_sops) {
|
|
|
|
+ spectral_err("p_sops is null");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
|
|
if (smode == SPECTRAL_SCAN_MODE_AGILE) {
|
|
if (smode == SPECTRAL_SCAN_MODE_AGILE) {
|
|
QDF_STATUS status;
|
|
QDF_STATUS status;
|
|
@@ -4143,8 +4159,19 @@ target_if_is_spectral_active(struct wlan_objmgr_pdev *pdev,
|
|
struct target_if_spectral_ops *p_sops = NULL;
|
|
struct target_if_spectral_ops *p_sops = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
|
|
|
|
|
|
+ if (!p_sops) {
|
|
|
|
+ spectral_err("p_sops is null");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (smode >= SPECTRAL_SCAN_MODE_MAX) {
|
|
if (smode >= SPECTRAL_SCAN_MODE_MAX) {
|
|
spectral_err("Invalid Spectral mode %u", smode);
|
|
spectral_err("Invalid Spectral mode %u", smode);
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
@@ -4170,8 +4197,19 @@ target_if_is_spectral_enabled(struct wlan_objmgr_pdev *pdev,
|
|
struct target_if_spectral_ops *p_sops = NULL;
|
|
struct target_if_spectral_ops *p_sops = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
|
|
|
|
|
|
+ if (!p_sops) {
|
|
|
|
+ spectral_err("p_sops is null");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (smode >= SPECTRAL_SCAN_MODE_MAX) {
|
|
if (smode >= SPECTRAL_SCAN_MODE_MAX) {
|
|
spectral_err("Invalid Spectral mode %u", smode);
|
|
spectral_err("Invalid Spectral mode %u", smode);
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
@@ -4472,6 +4510,11 @@ target_if_get_spectral_capinfo(struct wlan_objmgr_pdev *pdev,
|
|
struct target_if_spectral *spectral = NULL;
|
|
struct target_if_spectral *spectral = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
qdf_mem_copy(scaps, &spectral->capability,
|
|
qdf_mem_copy(scaps, &spectral->capability,
|
|
sizeof(struct spectral_caps));
|
|
sizeof(struct spectral_caps));
|
|
|
|
|
|
@@ -4494,6 +4537,11 @@ target_if_get_spectral_diagstats(struct wlan_objmgr_pdev *pdev,
|
|
struct target_if_spectral *spectral = NULL;
|
|
struct target_if_spectral *spectral = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
qdf_mem_copy(stats, &spectral->diag_stats,
|
|
qdf_mem_copy(stats, &spectral->diag_stats,
|
|
sizeof(struct spectral_diag_stats));
|
|
sizeof(struct spectral_diag_stats));
|
|
|
|
|
|
@@ -4538,6 +4586,12 @@ target_if_register_netlink_cb(
|
|
struct target_if_spectral *spectral = NULL;
|
|
struct target_if_spectral *spectral = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
qdf_mem_copy(&spectral->nl_cb, nl_cb, sizeof(struct spectral_nl_cb));
|
|
qdf_mem_copy(&spectral->nl_cb, nl_cb, sizeof(struct spectral_nl_cb));
|
|
|
|
|
|
if (spectral->use_nl_bcast)
|
|
if (spectral->use_nl_bcast)
|
|
@@ -4559,6 +4613,12 @@ target_if_use_nl_bcast(struct wlan_objmgr_pdev *pdev)
|
|
struct target_if_spectral *spectral = NULL;
|
|
struct target_if_spectral *spectral = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
return spectral->use_nl_bcast;
|
|
return spectral->use_nl_bcast;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -4590,8 +4650,18 @@ target_if_process_spectral_report(struct wlan_objmgr_pdev *pdev,
|
|
struct target_if_spectral_ops *p_sops = NULL;
|
|
struct target_if_spectral_ops *p_sops = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return -EPERM;
|
|
|
|
+ }
|
|
|
|
+
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
|
|
|
|
|
|
+ if (!p_sops) {
|
|
|
|
+ spectral_err("p_sops is null");
|
|
|
|
+ return -EPERM;
|
|
|
|
+ }
|
|
|
|
+
|
|
return p_sops->process_spectral_report(pdev, payload);
|
|
return p_sops->process_spectral_report(pdev, payload);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -4668,6 +4738,18 @@ target_if_spectral_send_intf_found_msg(struct wlan_objmgr_pdev *pdev,
|
|
struct target_if_spectral *spectral = NULL;
|
|
struct target_if_spectral *spectral = NULL;
|
|
|
|
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
spectral = get_target_if_spectral_handle_from_pdev(pdev);
|
|
|
|
+
|
|
|
|
+ if (!spectral) {
|
|
|
|
+ spectral_err("SPECTRAL : Module doesn't exist");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
|
|
+ if (!p_sops) {
|
|
|
|
+ spectral_err("p_sops is null");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
msg = (struct spectral_samp_msg *)spectral->nl_cb.get_sbuff(
|
|
msg = (struct spectral_samp_msg *)spectral->nl_cb.get_sbuff(
|
|
spectral->pdev_obj,
|
|
spectral->pdev_obj,
|
|
SPECTRAL_MSG_INTERFERENCE_NOTIFICATION,
|
|
SPECTRAL_MSG_INTERFERENCE_NOTIFICATION,
|
|
@@ -4678,7 +4760,6 @@ target_if_spectral_send_intf_found_msg(struct wlan_objmgr_pdev *pdev,
|
|
SPECTRAL_DCS_INT_CW : SPECTRAL_DCS_INT_WIFI;
|
|
SPECTRAL_DCS_INT_CW : SPECTRAL_DCS_INT_WIFI;
|
|
msg->dcs_enabled = dcs_enabled;
|
|
msg->dcs_enabled = dcs_enabled;
|
|
msg->signature = SPECTRAL_SIGNATURE;
|
|
msg->signature = SPECTRAL_SIGNATURE;
|
|
- p_sops = GET_TARGET_IF_SPECTRAL_OPS(spectral);
|
|
|
|
p_sops->get_mac_address(spectral, msg->macaddr);
|
|
p_sops->get_mac_address(spectral, msg->macaddr);
|
|
if (spectral->send_phy_data
|
|
if (spectral->send_phy_data
|
|
(pdev,
|
|
(pdev,
|