iwlwifi: mvm/api: define system control command
authorJohannes Berg <johannes.berg@intel.com>
Sat, 4 Dec 2021 15:49:34 +0000 (17:49 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 7 Dec 2021 18:06:45 +0000 (20:06 +0200)
The firmware is exposing a new system features control command,
define the necessary data structures etc. Rename "soc.h" to
"system.h" since the SoC command is also in the system group
and adding another file for just one more struct seemed like a
waste of files.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20211204174545.94a120687887.I79acffcf0793ea9e4ddec24b06420961bfb4fe94@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/commands.h
drivers/net/wireless/intel/iwlwifi/fw/api/soc.h [deleted file]
drivers/net/wireless/intel/iwlwifi/fw/api/system.h [new file with mode: 0644]
drivers/net/wireless/intel/iwlwifi/fw/init.c
drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h
drivers/net/wireless/intel/iwlwifi/mvm/ops.c

index 2792fd5d9c9b51d2c52cff378c5679ec8484eea0..dab02a6a2622f8bebd9ab58b8ce3dd23a9a7153b 100644 (file)
@@ -614,6 +614,11 @@ enum iwl_system_subcmd_ids {
         * @RFI_GET_FREQ_TABLE_CMD: &struct iwl_rfi_config_cmd
         */
        RFI_GET_FREQ_TABLE_CMD = 0xc,
+
+       /**
+        * @SYSTEM_FEATURES_CONTROL_CMD: &struct iwl_system_features_control_cmd
+        */
+       SYSTEM_FEATURES_CONTROL_CMD = 0xd,
 };
 
 #endif /* __iwl_fw_api_commands_h__ */
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/soc.h b/drivers/net/wireless/intel/iwlwifi/fw/api/soc.h
deleted file mode 100644 (file)
index c5df117..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
-/*
- * Copyright (C) 2012-2014, 2019-2020 Intel Corporation
- * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
- * Copyright (C) 2016-2017 Intel Deutschland GmbH
- */
-#ifndef __iwl_fw_api_soc_h__
-#define __iwl_fw_api_soc_h__
-
-#define SOC_CONFIG_CMD_FLAGS_DISCRETE          BIT(0)
-#define SOC_CONFIG_CMD_FLAGS_LOW_LATENCY       BIT(1)
-
-#define SOC_FLAGS_LTR_APPLY_DELAY_MASK         0xc
-#define SOC_FLAGS_LTR_APPLY_DELAY_NONE         0
-#define SOC_FLAGS_LTR_APPLY_DELAY_200          1
-#define SOC_FLAGS_LTR_APPLY_DELAY_2500         2
-#define SOC_FLAGS_LTR_APPLY_DELAY_1820         3
-
-/**
- * struct iwl_soc_configuration_cmd - Set device stabilization latency
- *
- * @flags: soc settings flags.  In VER_1, we can only set the DISCRETE
- *     flag, because the FW treats the whole value as an integer. In
- *     VER_2, we can set the bits independently.
- * @latency: time for SOC to ensure stable power & XTAL
- */
-struct iwl_soc_configuration_cmd {
-       __le32 flags;
-       __le32 latency;
-} __packed; /*
-            * SOC_CONFIGURATION_CMD_S_VER_1 (see description above)
-            * SOC_CONFIGURATION_CMD_S_VER_2
-            */
-
-#endif /* __iwl_fw_api_soc_h__ */
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/system.h b/drivers/net/wireless/intel/iwlwifi/fw/api/system.h
new file mode 100644 (file)
index 0000000..acf5d4b
--- /dev/null
@@ -0,0 +1,43 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2012-2014, 2019-2021 Intel Corporation
+ * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
+ * Copyright (C) 2016-2017 Intel Deutschland GmbH
+ */
+#ifndef __iwl_fw_api_system_h__
+#define __iwl_fw_api_system_h__
+
+#define SOC_CONFIG_CMD_FLAGS_DISCRETE          BIT(0)
+#define SOC_CONFIG_CMD_FLAGS_LOW_LATENCY       BIT(1)
+
+#define SOC_FLAGS_LTR_APPLY_DELAY_MASK         0xc
+#define SOC_FLAGS_LTR_APPLY_DELAY_NONE         0
+#define SOC_FLAGS_LTR_APPLY_DELAY_200          1
+#define SOC_FLAGS_LTR_APPLY_DELAY_2500         2
+#define SOC_FLAGS_LTR_APPLY_DELAY_1820         3
+
+/**
+ * struct iwl_soc_configuration_cmd - Set device stabilization latency
+ *
+ * @flags: soc settings flags.  In VER_1, we can only set the DISCRETE
+ *     flag, because the FW treats the whole value as an integer. In
+ *     VER_2, we can set the bits independently.
+ * @latency: time for SOC to ensure stable power & XTAL
+ */
+struct iwl_soc_configuration_cmd {
+       __le32 flags;
+       __le32 latency;
+} __packed; /*
+            * SOC_CONFIGURATION_CMD_S_VER_1 (see description above)
+            * SOC_CONFIGURATION_CMD_S_VER_2
+            */
+
+/**
+ * struct iwl_system_features_control_cmd - system features control command
+ * @features: bitmap of features to disable
+ */
+struct iwl_system_features_control_cmd {
+       __le32 features[4];
+} __packed; /* SYSTEM_FEATURES_CONTROL_CMD_API_S_VER_1 */
+
+#endif /* __iwl_fw_api_system_h__ */
index 566957ac45393ccdbc71bc81c494302c7533a854..139ece879fab59d81342da83b34001bb5b8e9f0a 100644 (file)
@@ -8,7 +8,7 @@
 #include "dbg.h"
 #include "debugfs.h"
 
-#include "fw/api/soc.h"
+#include "fw/api/system.h"
 #include "fw/api/commands.h"
 #include "fw/api/rx.h"
 #include "fw/api/datapath.h"
index 73a82f07dc594960f04903bf89693b163774e908..083f86fa501754957207b8a81a31b6a76cb6968f 100644 (file)
@@ -15,7 +15,7 @@
 #include "fw/api/datapath.h"
 #include "fw/api/phy.h"
 #include "fw/api/config.h"
-#include "fw/api/soc.h"
+#include "fw/api/system.h"
 #include "fw/api/alive.h"
 #include "fw/api/binding.h"
 #include "fw/api/cmdhdr.h"
index 9e53769b800aa5ede096ba348ae1c27053369b13..8056018600add7637ed5c9a9545583589defe3a1 100644 (file)
@@ -500,6 +500,7 @@ static const struct iwl_hcmd_names iwl_mvm_system_names[] = {
        HCMD_NAME(FW_ERROR_RECOVERY_CMD),
        HCMD_NAME(RFI_CONFIG_CMD),
        HCMD_NAME(RFI_GET_FREQ_TABLE_CMD),
+       HCMD_NAME(SYSTEM_FEATURES_CONTROL_CMD),
 };
 
 /* Please keep this array *SORTED* by hex value.