iwlwifi: fw api: add DRAM buffer allocation command
authorShahar S Matityahu <shahar.s.matityahu@intel.com>
Thu, 4 Jul 2019 14:53:52 +0000 (17:53 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 6 Sep 2019 12:52:06 +0000 (15:52 +0300)
Add support code to be able to use the DRAM buffer allocation command,
which allows us to send information about a buffer to the firmware
to use it with the DBGC hardware.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/debug.h
drivers/net/wireless/intel/iwlwifi/fw/file.h
drivers/net/wireless/intel/iwlwifi/mvm/ops.c

index c67a6ab..98e957e 100644 (file)
@@ -88,6 +88,12 @@ enum iwl_debug_cmds {
         */
        DBGC_SUSPEND_RESUME = 0x7,
        /**
+        * @BUFFER_ALLOCATION:
+        * passes DRAM buffers to a DBGC
+        * &struct iwl_buf_alloc_cmd
+        */
+       BUFFER_ALLOCATION = 0x8,
+       /**
         * @MFU_ASSERT_DUMP_NTF:
         * &struct iwl_mfu_assert_dump_notif
         */
@@ -361,4 +367,30 @@ struct iwl_dbg_suspend_resume_cmd {
        __le32 operation;
 } __packed;
 
+#define BUF_ALLOC_MAX_NUM_FRAGS 16
+
+/**
+ * struct iwl_buf_alloc_frag - a DBGC fragment
+ * @addr: base address of the fragment
+ * @size: size of the fragment
+ */
+struct iwl_buf_alloc_frag {
+       __le64 addr;
+       __le32 size;
+} __packed; /* FRAGMENT_STRUCTURE_API_S_VER_1 */
+
+/**
+ * struct iwl_buf_alloc_cmd - buffer allocation command
+ * @alloc_id: &enum iwl_fw_ini_allocation_id
+ * @buf_location: &enum iwl_fw_ini_buffer_location
+ * @num_frags: number of fragments
+ * @frags: fragments array
+ */
+struct iwl_buf_alloc_cmd {
+       __le32 alloc_id;
+       __le32 buf_location;
+       __le32 num_frags;
+       struct iwl_buf_alloc_frag frags[BUF_ALLOC_MAX_NUM_FRAGS];
+} __packed; /* BUFFER_ALLOCATION_CMD_API_S_VER_2 */
+
 #endif /* __iwl_fw_api_debug_h__ */
index 1bdcab9..423cc0c 100644 (file)
@@ -468,6 +468,7 @@ enum iwl_ucode_tlv_capa {
        IWL_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT      = (__force iwl_ucode_tlv_capa_t)89,
        IWL_UCODE_TLV_CAPA_CSI_REPORTING                = (__force iwl_ucode_tlv_capa_t)90,
        IWL_UCODE_TLV_CAPA_DBG_SUSPEND_RESUME_CMD_SUPP  = (__force iwl_ucode_tlv_capa_t)92,
+       IWL_UCODE_TLV_CAPA_DBG_BUF_ALLOC_CMD_SUPP       = (__force iwl_ucode_tlv_capa_t)93,
 
        /* set 3 */
        IWL_UCODE_TLV_CAPA_MLME_OFFLOAD                 = (__force iwl_ucode_tlv_capa_t)96,
index 28e836a..35af56a 100644 (file)
@@ -468,6 +468,7 @@ static const struct iwl_hcmd_names iwl_mvm_data_path_names[] = {
  */
 static const struct iwl_hcmd_names iwl_mvm_debug_names[] = {
        HCMD_NAME(DBGC_SUSPEND_RESUME),
+       HCMD_NAME(BUFFER_ALLOCATION),
        HCMD_NAME(MFU_ASSERT_DUMP_NTF),
 };