iwlwifi: dbg_ini: remove apply point, switch to time point API
Remove the "apply points" mechanism as preparation for the changed debug API where this is now a "time point" instead. Use a new API across the code at the trigger points ("time points"), but don't yet implement it since that requires some more preparation. Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
committed by
Luca Coelho
parent
a29f6576c3
commit
b108d8c782
@ -397,27 +397,6 @@ enum iwl_fw_ini_trigger_id {
|
||||
IWL_FW_TRIGGER_ID_NUM,
|
||||
}; /* FW_DEBUG_TLV_TRIGGER_ID_E_VER_1 */
|
||||
|
||||
/**
|
||||
* enum iwl_fw_ini_apply_point
|
||||
*
|
||||
* @IWL_FW_INI_APPLY_INVALID: invalid
|
||||
* @IWL_FW_INI_APPLY_EARLY: pre loading FW
|
||||
* @IWL_FW_INI_APPLY_AFTER_ALIVE: first cmd from host after alive
|
||||
* @IWL_FW_INI_APPLY_POST_INIT: last cmd in initialization sequence
|
||||
* @IWL_FW_INI_APPLY_MISSED_BEACONS: missed beacons notification
|
||||
* @IWL_FW_INI_APPLY_SCAN_COMPLETE: scan completed
|
||||
* @IWL_FW_INI_APPLY_NUM: number of apply points
|
||||
*/
|
||||
enum iwl_fw_ini_apply_point {
|
||||
IWL_FW_INI_APPLY_INVALID,
|
||||
IWL_FW_INI_APPLY_EARLY,
|
||||
IWL_FW_INI_APPLY_AFTER_ALIVE,
|
||||
IWL_FW_INI_APPLY_POST_INIT,
|
||||
IWL_FW_INI_APPLY_MISSED_BEACONS,
|
||||
IWL_FW_INI_APPLY_SCAN_COMPLETE,
|
||||
IWL_FW_INI_APPLY_NUM,
|
||||
}; /* FW_DEBUG_TLV_APPLY_POINT_E_VER_1 */
|
||||
|
||||
/**
|
||||
* enum iwl_fw_ini_allocation_id
|
||||
*
|
||||
@ -510,4 +489,72 @@ enum iwl_fw_ini_region_type {
|
||||
IWL_FW_INI_REGION_NUM
|
||||
}; /* FW_DEBUG_TLV_REGION_TYPE_E_VER_1 */
|
||||
|
||||
/**
|
||||
* enum iwl_fw_ini_time_point
|
||||
*
|
||||
* Hard coded time points in which the driver can send hcmd or perform dump
|
||||
* collection
|
||||
*
|
||||
* @IWL_FW_INI_TIME_POINT_EARLY: pre loading the FW
|
||||
* @IWL_FW_INI_TIME_POINT_AFTER_ALIVE: first cmd from host after alive notif
|
||||
* @IWL_FW_INI_TIME_POINT_POST_INIT: last cmd in series of init sequence
|
||||
* @IWL_FW_INI_TIME_POINT_FW_ASSERT: FW assert
|
||||
* @IWL_FW_INI_TIME_POINT_FW_HW_ERROR: FW HW error
|
||||
* @IWL_FW_INI_TIME_POINT_FW_TFD_Q_HANG: TFD queue hang
|
||||
* @IWL_FW_INI_TIME_POINT_FW_DHC_NOTIFOCATION: DHC cmd response and notif
|
||||
* @IWL_FW_INI_TIME_POINT_FW_RSP_OR_NOTIF: FW response or notification.
|
||||
* data field holds id and group
|
||||
* @IWL_FW_INI_TIME_POINT_USER_TRIGGER: user trigger time point
|
||||
* @IWL_FW_INI_TIME_POINT_PERIODIC: periodic timepoint that fires in constant
|
||||
* intervals. data field holds the interval time in msec
|
||||
* @IWL_FW_INI_TIME_POINT_WDG_TIMEOUT: watchdog timeout
|
||||
* @IWL_FW_INI_TIME_POINT_HOST_ASSERT: Unused
|
||||
* @IWL_FW_INI_TIME_POINT_HOST_ALIVE_TIMEOUT: alive timeout
|
||||
* @IWL_FW_INI_TIME_POINT_HOST_DEVICE_ENABLE: device enable
|
||||
* @IWL_FW_INI_TIME_POINT_HOST_DEVICE_DISABLE: device disable
|
||||
* @IWL_FW_INI_TIME_POINT_HOST_D3_START: D3 start
|
||||
* @IWL_FW_INI_TIME_POINT_HOST_D3_END: D3 end
|
||||
* @IWL_FW_INI_TIME_POINT_MISSED_BEACONS: missed beacons
|
||||
* @IWL_FW_INI_TIME_POINT_ASSOC_FAILED: association failure
|
||||
* @IWL_FW_INI_TIME_POINT_TX_FAILED: Tx frame failed
|
||||
* @IWL_FW_INI_TIME_POINT_TX_WFD_ACTION_FRAME_FAILED: wifi direct action
|
||||
* frame failed
|
||||
* @IWL_FW_INI_TIME_POINT_TX_LATENCY_THRESHOLD: Tx latency threshold
|
||||
* @IWL_FW_INI_TIME_POINT_HANG_OCCURRED: hang occurred
|
||||
* @IWL_FW_INI_TIME_POINT_EAPOL_FAILED: EAPOL failed
|
||||
* @IWL_FW_INI_TIME_POINT_FAKE_TX: fake Tx
|
||||
* @IWL_FW_INI_TIME_POINT_DEASSOC: de association
|
||||
* @IWL_FW_INI_TIME_POINT_NUM: number of time points
|
||||
*/
|
||||
enum iwl_fw_ini_time_point {
|
||||
IWL_FW_INI_TIME_POINT_INVALID,
|
||||
IWL_FW_INI_TIME_POINT_EARLY,
|
||||
IWL_FW_INI_TIME_POINT_AFTER_ALIVE,
|
||||
IWL_FW_INI_TIME_POINT_POST_INIT,
|
||||
IWL_FW_INI_TIME_POINT_FW_ASSERT,
|
||||
IWL_FW_INI_TIME_POINT_FW_HW_ERROR,
|
||||
IWL_FW_INI_TIME_POINT_FW_TFD_Q_HANG,
|
||||
IWL_FW_INI_TIME_POINT_FW_DHC_NOTIFOCATION,
|
||||
IWL_FW_INI_TIME_POINT_FW_RSP_OR_NOTIF,
|
||||
IWL_FW_INI_TIME_POINT_USER_TRIGGER,
|
||||
IWL_FW_INI_TIME_POINT_PERIODIC,
|
||||
IWL_FW_INI_TIME_POINT_WDG_TIMEOUT,
|
||||
IWL_FW_INI_TIME_POINT_HOST_ASSERT,
|
||||
IWL_FW_INI_TIME_POINT_HOST_ALIVE_TIMEOUT,
|
||||
IWL_FW_INI_TIME_POINT_HOST_DEVICE_ENABLE,
|
||||
IWL_FW_INI_TIME_POINT_HOST_DEVICE_DISABLE,
|
||||
IWL_FW_INI_TIME_POINT_HOST_D3_START,
|
||||
IWL_FW_INI_TIME_POINT_HOST_D3_END,
|
||||
IWL_FW_INI_TIME_POINT_MISSED_BEACONS,
|
||||
IWL_FW_INI_TIME_POINT_ASSOC_FAILED,
|
||||
IWL_FW_INI_TIME_POINT_TX_FAILED,
|
||||
IWL_FW_INI_TIME_POINT_TX_WFD_ACTION_FRAME_FAILED,
|
||||
IWL_FW_INI_TIME_POINT_TX_LATENCY_THRESHOLD,
|
||||
IWL_FW_INI_TIME_POINT_HANG_OCCURRED,
|
||||
IWL_FW_INI_TIME_POINT_EAPOL_FAILED,
|
||||
IWL_FW_INI_TIME_POINT_FAKE_TX,
|
||||
IWL_FW_INI_TIME_POINT_DEASSOC,
|
||||
IWL_FW_INI_TIME_POINT_NUM,
|
||||
}; /* FW_TLV_DEBUG_TIME_POINT_API_E */
|
||||
|
||||
#endif
|
||||
|
@ -352,51 +352,6 @@ struct iwl_dbg_mem_access_rsp {
|
||||
__le32 data[];
|
||||
} __packed; /* DEBUG_(U|L)MAC_RD_WR_RSP_API_S_VER_1 */
|
||||
|
||||
#define LDBG_CFG_COMMAND_SIZE 80
|
||||
#define BUFFER_ALLOCATION 0x27
|
||||
#define START_DEBUG_RECORDING 0x29
|
||||
#define STOP_DEBUG_RECORDING 0x2A
|
||||
|
||||
/* maximum fragments to be allocated per target of allocationId */
|
||||
#define IWL_BUFFER_LOCATION_MAX_FRAGS 2
|
||||
|
||||
/**
|
||||
* struct iwl_fragment_data single fragment structure
|
||||
* @address: 64bit start address
|
||||
* @size: size in bytes
|
||||
*/
|
||||
struct iwl_fragment_data {
|
||||
__le64 address;
|
||||
__le32 size;
|
||||
} __packed; /* FRAGMENT_STRUCTURE_API_S_VER_1 */
|
||||
|
||||
/**
|
||||
* struct iwl_buffer_allocation_cmd - buffer allocation command structure
|
||||
* @allocation_id: id of the allocation
|
||||
* @buffer_location: location of the buffer
|
||||
* @num_frags: number of fragments
|
||||
* @fragments: memory fragments
|
||||
*/
|
||||
struct iwl_buffer_allocation_cmd {
|
||||
__le32 allocation_id;
|
||||
__le32 buffer_location;
|
||||
__le32 num_frags;
|
||||
struct iwl_fragment_data fragments[IWL_BUFFER_LOCATION_MAX_FRAGS];
|
||||
} __packed; /* BUFFER_ALLOCATION_CMD_API_S_VER_1 */
|
||||
|
||||
/**
|
||||
* struct iwl_ldbg_config_cmd - LDBG config command
|
||||
* @type: configuration type
|
||||
* @pad: reserved space for type-dependent data
|
||||
*/
|
||||
struct iwl_ldbg_config_cmd {
|
||||
__le32 type;
|
||||
union {
|
||||
u8 pad[LDBG_CFG_COMMAND_SIZE - sizeof(__le32)];
|
||||
struct iwl_buffer_allocation_cmd buffer_allocation;
|
||||
}; /* LDBG_CFG_BODY_API_U_VER_2 (partially) */
|
||||
} __packed; /* LDBG_CFG_CMD_API_S_VER_2 */
|
||||
|
||||
/**
|
||||
* struct iwl_dbg_suspend_resume_cmd - dbgc suspend resume command
|
||||
* @operation: suspend or resume operation, uses
|
||||
|
Reference in New Issue
Block a user