Loading dp/inc/cdp_txrx_misc.h +21 −0 Original line number Diff line number Diff line Loading @@ -566,6 +566,27 @@ static inline void cdp_pkt_log_con_service(ol_txrx_soc_handle soc, return; } /** * cdp_pkt_log_exit() - API to cleanup packet log info * @soc: data path soc handle * @pdev_id: id of data path pdev handle * * Return: void */ static inline void cdp_pkt_log_exit(ol_txrx_soc_handle soc, uint8_t pdev_id) { if (!soc || !soc->ops || !soc->ops->misc_ops) { QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, "%s invalid instance", __func__); return; } if (soc->ops->misc_ops->pkt_log_exit) return soc->ops->misc_ops->pkt_log_exit(soc, pdev_id); return; } /** * cdp_get_num_rx_contexts() - API to get the number of RX contexts * @soc: soc handle Loading dp/inc/cdp_txrx_ops.h +1 −0 Original line number Diff line number Diff line Loading @@ -1265,6 +1265,7 @@ struct cdp_misc_ops { void *scn); void (*pkt_log_con_service)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, void *scn); void (*pkt_log_exit)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id); int (*get_num_rx_contexts)(struct cdp_soc_t *soc_hdl); void (*register_pktdump_cb)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, ol_txrx_pktdump_cb tx_cb, Loading dp/wifi3.0/dp_main.c +27 −0 Original line number Diff line number Diff line Loading @@ -543,6 +543,28 @@ static void dp_pktlogmod_exit(struct dp_pdev *pdev) pktlogmod_exit(scn); pdev->pkt_log_init = false; } /** * dp_pkt_log_exit() - Wrapper API to cleanup pktlog info * @soc_hdl: Datapath soc handle * @pdev_id: id of data path pdev handle * * Return: none */ static void dp_pkt_log_exit(struct cdp_soc_t *soc_hdl, uint8_t pdev_id) { struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); struct dp_pdev *pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); if (!pdev) { dp_err("pdev handle is NULL"); return; } dp_pktlogmod_exit(pdev); } #else static void dp_pkt_log_con_service(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, void *scn) Loading @@ -550,6 +572,10 @@ static void dp_pkt_log_con_service(struct cdp_soc_t *soc_hdl, } static void dp_pktlogmod_exit(struct dp_pdev *handle) { } static void dp_pkt_log_exit(struct cdp_soc_t *soc_hdl, uint8_t pdev_id) { } #endif /** * dp_get_num_rx_contexts() - get number of RX contexts Loading Loading @@ -11945,6 +11971,7 @@ static struct cdp_misc_ops dp_ops_misc = { #endif /* FEATURE_RUNTIME_PM */ .pkt_log_init = dp_pkt_log_init, .pkt_log_con_service = dp_pkt_log_con_service, .pkt_log_exit = dp_pkt_log_exit, .get_num_rx_contexts = dp_get_num_rx_contexts, .get_tx_ack_stats = dp_tx_get_success_ack_stats, #ifdef WLAN_SUPPORT_DATA_STALL Loading os_if/linux/qca_vendor.h +54 −0 Original line number Diff line number Diff line Loading @@ -5344,6 +5344,14 @@ enum qca_wlan_vendor_attr_thermal_cmd { * there is any critical ongoing operation. */ QCA_WLAN_VENDOR_ATTR_THERMAL_COMPLETION_WINDOW = 3, /* Nested attribute, driver/firmware uses this attribute to report * thermal stats of different thermal levels to userspace when requested * using QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS command * type. This attribute contains nested array of records of thermal * statistics of multiple levels. The attributes used inside this nested * attribute are defined in enum qca_wlan_vendor_attr_thermal_stats. */ QCA_WLAN_VENDOR_ATTR_THERMAL_STATS = 4, /* keep last */ QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_MAX = Loading @@ -5368,6 +5376,16 @@ enum qca_wlan_vendor_attr_thermal_cmd { * resume action. * @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SET_LEVEL: Configure thermal level to * the driver/firmware. * @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_LEVEL: Request to get the current * thermal level from the driver/firmware. The driver should respond with a * thermal level defined in enum qca_wlan_vendor_thermal_level. * @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS: Request to get the * current thermal stats from the driver/firmware. The driver should respond * with stats of all thermal levels encapsulated in attribute * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS. * @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_CLEAR_THERMAL_STATS: Request to clear * the current thermal stats all thermal levels maintained in the * driver/firmware and start counting from zero again. */ enum qca_wlan_vendor_attr_thermal_cmd_type { QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_PARAMS, Loading @@ -5375,6 +5393,9 @@ enum qca_wlan_vendor_attr_thermal_cmd_type { QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SUSPEND, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_RESUME, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SET_LEVEL, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_LEVEL, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_CLEAR_THERMAL_STATS, }; /** Loading Loading @@ -7676,6 +7697,35 @@ enum qca_wlan_vendor_attr_mac_info { }; /** * enum qca_wlan_vendor_attr_thermal_stats - vendor subcmd attributes * to get thermal status from driver/firmware. * enum values are used for NL attributes encapsulated inside * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS nested attribute. * * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MIN_TEMPERATURE: Minimum temperature * of a thermal level in Celsius. u32 size. * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX_TEMPERATURE: Maximum temperature * of a thermal level in Celsius. u32 size. * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_DWELL_TIME: The total time spent on each * thermal level in milliseconds. u32 size. * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_TEMP_LEVEL_COUNTER: Indicates the number * of times the temperature crossed into the temperature range defined by the * thermal level from both higher and lower directions. u32 size. */ enum qca_wlan_vendor_attr_thermal_stats { QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_INVALID = 0, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MIN_TEMPERATURE, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX_TEMPERATURE, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_DWELL_TIME, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_TEMP_LEVEL_COUNTER, /* keep last */ QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX = QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_AFTER_LAST - 1, }; /** * enum he_fragmentation_val - HE fragmentation support values * Indicates level of dynamic fragmentation that is supported by Loading Loading @@ -8748,6 +8798,9 @@ enum qca_wlan_vendor_attr_twt_setup { * setup request due to channel switch in progress. * @QCA_WLAN_VENDOR_TWT_STATUS_SCAN_IN_PROGRESS: FW rejected the TWT setup * request due to scan in progress. * QCA_WLAN_VENDOR_TWT_STATUS_POWER_SAVE_EXIT_TERMINATE: The driver requested to * terminate an existing TWT session on power save exit request from userspace. * Used on the TWT_TERMINATE notification from the driver/firmware. */ enum qca_wlan_vendor_twt_status { QCA_WLAN_VENDOR_TWT_STATUS_OK = 0, Loading @@ -8772,6 +8825,7 @@ enum qca_wlan_vendor_twt_status { QCA_WLAN_VENDOR_TWT_STATUS_ROAMING_IN_PROGRESS = 19, QCA_WLAN_VENDOR_TWT_STATUS_CHANNEL_SWITCH_IN_PROGRESS = 20, QCA_WLAN_VENDOR_TWT_STATUS_SCAN_IN_PROGRESS = 21, QCA_WLAN_VENDOR_TWT_STATUS_POWER_SAVE_EXIT_TERMINATE = 22, }; /** Loading qdf/linux/src/qdf_mem.c +2 −0 Original line number Diff line number Diff line Loading @@ -2003,6 +2003,8 @@ int qdf_mem_multi_page_link(qdf_device_t osdev, c_elem = (void **)page_info; for (i_int = 0; i_int < pages->num_element_per_page; i_int++) { if (i_int == (pages->num_element_per_page - 1)) { if ((i + 1) == pages->num_pages) break; if (cacheable) *c_elem = pages-> cacheable_pages[i + 1]; Loading Loading
dp/inc/cdp_txrx_misc.h +21 −0 Original line number Diff line number Diff line Loading @@ -566,6 +566,27 @@ static inline void cdp_pkt_log_con_service(ol_txrx_soc_handle soc, return; } /** * cdp_pkt_log_exit() - API to cleanup packet log info * @soc: data path soc handle * @pdev_id: id of data path pdev handle * * Return: void */ static inline void cdp_pkt_log_exit(ol_txrx_soc_handle soc, uint8_t pdev_id) { if (!soc || !soc->ops || !soc->ops->misc_ops) { QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL, "%s invalid instance", __func__); return; } if (soc->ops->misc_ops->pkt_log_exit) return soc->ops->misc_ops->pkt_log_exit(soc, pdev_id); return; } /** * cdp_get_num_rx_contexts() - API to get the number of RX contexts * @soc: soc handle Loading
dp/inc/cdp_txrx_ops.h +1 −0 Original line number Diff line number Diff line Loading @@ -1265,6 +1265,7 @@ struct cdp_misc_ops { void *scn); void (*pkt_log_con_service)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, void *scn); void (*pkt_log_exit)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id); int (*get_num_rx_contexts)(struct cdp_soc_t *soc_hdl); void (*register_pktdump_cb)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, ol_txrx_pktdump_cb tx_cb, Loading
dp/wifi3.0/dp_main.c +27 −0 Original line number Diff line number Diff line Loading @@ -543,6 +543,28 @@ static void dp_pktlogmod_exit(struct dp_pdev *pdev) pktlogmod_exit(scn); pdev->pkt_log_init = false; } /** * dp_pkt_log_exit() - Wrapper API to cleanup pktlog info * @soc_hdl: Datapath soc handle * @pdev_id: id of data path pdev handle * * Return: none */ static void dp_pkt_log_exit(struct cdp_soc_t *soc_hdl, uint8_t pdev_id) { struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); struct dp_pdev *pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id); if (!pdev) { dp_err("pdev handle is NULL"); return; } dp_pktlogmod_exit(pdev); } #else static void dp_pkt_log_con_service(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, void *scn) Loading @@ -550,6 +572,10 @@ static void dp_pkt_log_con_service(struct cdp_soc_t *soc_hdl, } static void dp_pktlogmod_exit(struct dp_pdev *handle) { } static void dp_pkt_log_exit(struct cdp_soc_t *soc_hdl, uint8_t pdev_id) { } #endif /** * dp_get_num_rx_contexts() - get number of RX contexts Loading Loading @@ -11945,6 +11971,7 @@ static struct cdp_misc_ops dp_ops_misc = { #endif /* FEATURE_RUNTIME_PM */ .pkt_log_init = dp_pkt_log_init, .pkt_log_con_service = dp_pkt_log_con_service, .pkt_log_exit = dp_pkt_log_exit, .get_num_rx_contexts = dp_get_num_rx_contexts, .get_tx_ack_stats = dp_tx_get_success_ack_stats, #ifdef WLAN_SUPPORT_DATA_STALL Loading
os_if/linux/qca_vendor.h +54 −0 Original line number Diff line number Diff line Loading @@ -5344,6 +5344,14 @@ enum qca_wlan_vendor_attr_thermal_cmd { * there is any critical ongoing operation. */ QCA_WLAN_VENDOR_ATTR_THERMAL_COMPLETION_WINDOW = 3, /* Nested attribute, driver/firmware uses this attribute to report * thermal stats of different thermal levels to userspace when requested * using QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS command * type. This attribute contains nested array of records of thermal * statistics of multiple levels. The attributes used inside this nested * attribute are defined in enum qca_wlan_vendor_attr_thermal_stats. */ QCA_WLAN_VENDOR_ATTR_THERMAL_STATS = 4, /* keep last */ QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_MAX = Loading @@ -5368,6 +5376,16 @@ enum qca_wlan_vendor_attr_thermal_cmd { * resume action. * @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SET_LEVEL: Configure thermal level to * the driver/firmware. * @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_LEVEL: Request to get the current * thermal level from the driver/firmware. The driver should respond with a * thermal level defined in enum qca_wlan_vendor_thermal_level. * @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS: Request to get the * current thermal stats from the driver/firmware. The driver should respond * with stats of all thermal levels encapsulated in attribute * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS. * @QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_CLEAR_THERMAL_STATS: Request to clear * the current thermal stats all thermal levels maintained in the * driver/firmware and start counting from zero again. */ enum qca_wlan_vendor_attr_thermal_cmd_type { QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_PARAMS, Loading @@ -5375,6 +5393,9 @@ enum qca_wlan_vendor_attr_thermal_cmd_type { QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SUSPEND, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_RESUME, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_SET_LEVEL, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_LEVEL, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS, QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_CLEAR_THERMAL_STATS, }; /** Loading Loading @@ -7676,6 +7697,35 @@ enum qca_wlan_vendor_attr_mac_info { }; /** * enum qca_wlan_vendor_attr_thermal_stats - vendor subcmd attributes * to get thermal status from driver/firmware. * enum values are used for NL attributes encapsulated inside * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS nested attribute. * * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MIN_TEMPERATURE: Minimum temperature * of a thermal level in Celsius. u32 size. * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX_TEMPERATURE: Maximum temperature * of a thermal level in Celsius. u32 size. * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_DWELL_TIME: The total time spent on each * thermal level in milliseconds. u32 size. * QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_TEMP_LEVEL_COUNTER: Indicates the number * of times the temperature crossed into the temperature range defined by the * thermal level from both higher and lower directions. u32 size. */ enum qca_wlan_vendor_attr_thermal_stats { QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_INVALID = 0, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MIN_TEMPERATURE, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX_TEMPERATURE, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_DWELL_TIME, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_TEMP_LEVEL_COUNTER, /* keep last */ QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_MAX = QCA_WLAN_VENDOR_ATTR_THERMAL_STATS_AFTER_LAST - 1, }; /** * enum he_fragmentation_val - HE fragmentation support values * Indicates level of dynamic fragmentation that is supported by Loading Loading @@ -8748,6 +8798,9 @@ enum qca_wlan_vendor_attr_twt_setup { * setup request due to channel switch in progress. * @QCA_WLAN_VENDOR_TWT_STATUS_SCAN_IN_PROGRESS: FW rejected the TWT setup * request due to scan in progress. * QCA_WLAN_VENDOR_TWT_STATUS_POWER_SAVE_EXIT_TERMINATE: The driver requested to * terminate an existing TWT session on power save exit request from userspace. * Used on the TWT_TERMINATE notification from the driver/firmware. */ enum qca_wlan_vendor_twt_status { QCA_WLAN_VENDOR_TWT_STATUS_OK = 0, Loading @@ -8772,6 +8825,7 @@ enum qca_wlan_vendor_twt_status { QCA_WLAN_VENDOR_TWT_STATUS_ROAMING_IN_PROGRESS = 19, QCA_WLAN_VENDOR_TWT_STATUS_CHANNEL_SWITCH_IN_PROGRESS = 20, QCA_WLAN_VENDOR_TWT_STATUS_SCAN_IN_PROGRESS = 21, QCA_WLAN_VENDOR_TWT_STATUS_POWER_SAVE_EXIT_TERMINATE = 22, }; /** Loading
qdf/linux/src/qdf_mem.c +2 −0 Original line number Diff line number Diff line Loading @@ -2003,6 +2003,8 @@ int qdf_mem_multi_page_link(qdf_device_t osdev, c_elem = (void **)page_info; for (i_int = 0; i_int < pages->num_element_per_page; i_int++) { if (i_int == (pages->num_element_per_page - 1)) { if ((i + 1) == pages->num_pages) break; if (cacheable) *c_elem = pages-> cacheable_pages[i + 1]; Loading