Commit 606b9ab6 authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by Luca Coelho

iwlwifi: mvm: fix firmware statistics usage

The new (CDB) statistics API is used by non-CDB devices
as well. Look at the right TLV flag to know which version
of the statistics notification to use.
To avoid confusion, remove the _cdb suffix from the
structure name.
While at it, remove a structure that was never used.
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Fixes: 678d9b6d ("iwlwifi: mvm: update rx statistics cmd api")
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 5b74a936
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
* Copyright (C) 2018 Intel Corporation
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as * it under the terms of version 2 of the GNU General Public License as
...@@ -29,6 +30,7 @@ ...@@ -29,6 +30,7 @@
* *
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
* Copyright (C) 2018 Intel Corporation
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
...@@ -363,14 +365,7 @@ struct mvm_statistics_general_v8 { ...@@ -363,14 +365,7 @@ struct mvm_statistics_general_v8 {
u8 reserved[4 - (NUM_MAC_INDEX % 4)]; u8 reserved[4 - (NUM_MAC_INDEX % 4)];
} __packed; /* STATISTICS_GENERAL_API_S_VER_8 */ } __packed; /* STATISTICS_GENERAL_API_S_VER_8 */
struct mvm_statistics_general_cdb_v9 { struct mvm_statistics_general {
struct mvm_statistics_general_common_v19 common;
__le32 beacon_counter[NUM_MAC_INDEX_CDB];
u8 beacon_average_energy[NUM_MAC_INDEX_CDB];
u8 reserved[4 - (NUM_MAC_INDEX_CDB % 4)];
} __packed; /* STATISTICS_GENERAL_API_S_VER_9 */
struct mvm_statistics_general_cdb {
struct mvm_statistics_general_common common; struct mvm_statistics_general_common common;
__le32 beacon_counter[MAC_INDEX_AUX]; __le32 beacon_counter[MAC_INDEX_AUX];
u8 beacon_average_energy[MAC_INDEX_AUX]; u8 beacon_average_energy[MAC_INDEX_AUX];
...@@ -435,11 +430,11 @@ struct iwl_notif_statistics_v11 { ...@@ -435,11 +430,11 @@ struct iwl_notif_statistics_v11 {
struct mvm_statistics_load_v1 load_stats; struct mvm_statistics_load_v1 load_stats;
} __packed; /* STATISTICS_NTFY_API_S_VER_11 */ } __packed; /* STATISTICS_NTFY_API_S_VER_11 */
struct iwl_notif_statistics_cdb { struct iwl_notif_statistics {
__le32 flag; __le32 flag;
struct mvm_statistics_rx rx; struct mvm_statistics_rx rx;
struct mvm_statistics_tx tx; struct mvm_statistics_tx tx;
struct mvm_statistics_general_cdb general; struct mvm_statistics_general general;
struct mvm_statistics_load load_stats; struct mvm_statistics_load load_stats;
} __packed; /* STATISTICS_NTFY_API_S_VER_13 */ } __packed; /* STATISTICS_NTFY_API_S_VER_13 */
......
...@@ -599,8 +599,8 @@ static void iwl_mvm_stat_iterator(void *_data, u8 *mac, ...@@ -599,8 +599,8 @@ static void iwl_mvm_stat_iterator(void *_data, u8 *mac,
* data copied into the "data" struct, but rather the data from * data copied into the "data" struct, but rather the data from
* the notification directly. * the notification directly.
*/ */
if (iwl_mvm_is_cdb_supported(mvm)) { if (iwl_mvm_has_new_rx_stats_api(mvm)) {
struct mvm_statistics_general_cdb *general = struct mvm_statistics_general *general =
data->general; data->general;
mvmvif->beacon_stats.num_beacons = mvmvif->beacon_stats.num_beacons =
...@@ -723,7 +723,7 @@ void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm, ...@@ -723,7 +723,7 @@ void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm,
else else
expected_size = sizeof(struct iwl_notif_statistics_v10); expected_size = sizeof(struct iwl_notif_statistics_v10);
} else { } else {
expected_size = sizeof(struct iwl_notif_statistics_cdb); expected_size = sizeof(struct iwl_notif_statistics);
} }
if (WARN_ONCE(iwl_rx_packet_payload_len(pkt) != expected_size, if (WARN_ONCE(iwl_rx_packet_payload_len(pkt) != expected_size,
...@@ -753,7 +753,7 @@ void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm, ...@@ -753,7 +753,7 @@ void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm,
flags = stats->flag; flags = stats->flag;
} else { } else {
struct iwl_notif_statistics_cdb *stats = (void *)&pkt->data; struct iwl_notif_statistics *stats = (void *)&pkt->data;
data.mac_id = stats->rx.general.mac_id; data.mac_id = stats->rx.general.mac_id;
data.beacon_filter_average_energy = data.beacon_filter_average_energy =
...@@ -792,7 +792,7 @@ void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm, ...@@ -792,7 +792,7 @@ void iwl_mvm_handle_rx_statistics(struct iwl_mvm *mvm,
bytes = (void *)&v11->load_stats.byte_count; bytes = (void *)&v11->load_stats.byte_count;
air_time = (void *)&v11->load_stats.air_time; air_time = (void *)&v11->load_stats.air_time;
} else { } else {
struct iwl_notif_statistics_cdb *stats = (void *)&pkt->data; struct iwl_notif_statistics *stats = (void *)&pkt->data;
energy = (void *)&stats->load_stats.avg_energy; energy = (void *)&stats->load_stats.avg_energy;
bytes = (void *)&stats->load_stats.byte_count; bytes = (void *)&stats->load_stats.byte_count;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment