ath10k: make wmi service bitmap non-debug
The service bitmap can be used to determine firmware capabilities. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:

committed by
Kalle Valo

parent
37b9f933e0
commit
acfe7ecfa4
@@ -123,6 +123,7 @@ struct ath10k_wmi {
|
|||||||
struct completion service_ready;
|
struct completion service_ready;
|
||||||
struct completion unified_ready;
|
struct completion unified_ready;
|
||||||
wait_queue_head_t tx_credits_wq;
|
wait_queue_head_t tx_credits_wq;
|
||||||
|
DECLARE_BITMAP(svc_map, WMI_SERVICE_MAX);
|
||||||
struct wmi_cmd_map *cmd;
|
struct wmi_cmd_map *cmd;
|
||||||
struct wmi_vdev_param_map *vdev_param;
|
struct wmi_vdev_param_map *vdev_param;
|
||||||
struct wmi_pdev_param_map *pdev_param;
|
struct wmi_pdev_param_map *pdev_param;
|
||||||
@@ -313,7 +314,6 @@ struct ath10k_debug {
|
|||||||
struct ath10k_fw_stats fw_stats;
|
struct ath10k_fw_stats fw_stats;
|
||||||
struct completion fw_stats_complete;
|
struct completion fw_stats_complete;
|
||||||
bool fw_stats_done;
|
bool fw_stats_done;
|
||||||
DECLARE_BITMAP(wmi_service_bitmap, WMI_SERVICE_MAX);
|
|
||||||
|
|
||||||
unsigned long htt_stats_mask;
|
unsigned long htt_stats_mask;
|
||||||
struct delayed_work htt_stats_dwork;
|
struct delayed_work htt_stats_dwork;
|
||||||
|
@@ -179,13 +179,6 @@ EXPORT_SYMBOL(ath10k_warn);
|
|||||||
|
|
||||||
#ifdef CONFIG_ATH10K_DEBUGFS
|
#ifdef CONFIG_ATH10K_DEBUGFS
|
||||||
|
|
||||||
void ath10k_debug_read_service_map(struct ath10k *ar,
|
|
||||||
const void *service_map,
|
|
||||||
size_t map_size)
|
|
||||||
{
|
|
||||||
memcpy(ar->debug.wmi_service_bitmap, service_map, map_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t ath10k_read_wmi_services(struct file *file,
|
static ssize_t ath10k_read_wmi_services(struct file *file,
|
||||||
char __user *user_buf,
|
char __user *user_buf,
|
||||||
size_t count, loff_t *ppos)
|
size_t count, loff_t *ppos)
|
||||||
@@ -207,8 +200,9 @@ static ssize_t ath10k_read_wmi_services(struct file *file,
|
|||||||
if (len > buf_len)
|
if (len > buf_len)
|
||||||
len = buf_len;
|
len = buf_len;
|
||||||
|
|
||||||
|
spin_lock_bh(&ar->data_lock);
|
||||||
for (i = 0; i < WMI_SERVICE_MAX; i++) {
|
for (i = 0; i < WMI_SERVICE_MAX; i++) {
|
||||||
enabled = test_bit(i, ar->debug.wmi_service_bitmap);
|
enabled = test_bit(i, ar->wmi.svc_map);
|
||||||
name = wmi_service_name(i);
|
name = wmi_service_name(i);
|
||||||
|
|
||||||
if (!name) {
|
if (!name) {
|
||||||
@@ -224,6 +218,7 @@ static ssize_t ath10k_read_wmi_services(struct file *file,
|
|||||||
"%-40s %s\n",
|
"%-40s %s\n",
|
||||||
name, enabled ? "enabled" : "-");
|
name, enabled ? "enabled" : "-");
|
||||||
}
|
}
|
||||||
|
spin_unlock_bh(&ar->data_lock);
|
||||||
|
|
||||||
ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len);
|
ret_cnt = simple_read_from_buffer(user_buf, count, ppos, buf, len);
|
||||||
|
|
||||||
|
@@ -62,9 +62,6 @@ int ath10k_debug_create(struct ath10k *ar);
|
|||||||
void ath10k_debug_destroy(struct ath10k *ar);
|
void ath10k_debug_destroy(struct ath10k *ar);
|
||||||
int ath10k_debug_register(struct ath10k *ar);
|
int ath10k_debug_register(struct ath10k *ar);
|
||||||
void ath10k_debug_unregister(struct ath10k *ar);
|
void ath10k_debug_unregister(struct ath10k *ar);
|
||||||
void ath10k_debug_read_service_map(struct ath10k *ar,
|
|
||||||
const void *service_map,
|
|
||||||
size_t map_size);
|
|
||||||
void ath10k_debug_fw_stats_process(struct ath10k *ar, struct sk_buff *skb);
|
void ath10k_debug_fw_stats_process(struct ath10k *ar, struct sk_buff *skb);
|
||||||
struct ath10k_fw_crash_data *
|
struct ath10k_fw_crash_data *
|
||||||
ath10k_debug_get_new_fw_crash_data(struct ath10k *ar);
|
ath10k_debug_get_new_fw_crash_data(struct ath10k *ar);
|
||||||
@@ -109,12 +106,6 @@ static inline void ath10k_debug_unregister(struct ath10k *ar)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ath10k_debug_read_service_map(struct ath10k *ar,
|
|
||||||
const void *service_map,
|
|
||||||
size_t map_size)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void ath10k_debug_fw_stats_process(struct ath10k *ar,
|
static inline void ath10k_debug_fw_stats_process(struct ath10k *ar,
|
||||||
struct sk_buff *skb)
|
struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
@@ -2511,16 +2511,17 @@ static void ath10k_wmi_event_service_ready(struct ath10k *ar,
|
|||||||
{
|
{
|
||||||
struct wmi_svc_rdy_ev_arg arg = {};
|
struct wmi_svc_rdy_ev_arg arg = {};
|
||||||
u32 num_units, req_id, unit_size, num_mem_reqs, num_unit_info, i;
|
u32 num_units, req_id, unit_size, num_mem_reqs, num_unit_info, i;
|
||||||
DECLARE_BITMAP(svc_bmap, WMI_SERVICE_MAX) = {};
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
memset(&ar->wmi.svc_map, 0, sizeof(ar->wmi.svc_map));
|
||||||
|
|
||||||
if (test_bit(ATH10K_FW_FEATURE_WMI_10X, ar->fw_features)) {
|
if (test_bit(ATH10K_FW_FEATURE_WMI_10X, ar->fw_features)) {
|
||||||
ret = ath10k_wmi_10x_pull_svc_rdy_ev(skb, &arg);
|
ret = ath10k_wmi_10x_pull_svc_rdy_ev(skb, &arg);
|
||||||
wmi_10x_svc_map(arg.service_map, svc_bmap,
|
wmi_10x_svc_map(arg.service_map, ar->wmi.svc_map,
|
||||||
arg.service_map_len);
|
arg.service_map_len);
|
||||||
} else {
|
} else {
|
||||||
ret = ath10k_wmi_main_pull_svc_rdy_ev(skb, &arg);
|
ret = ath10k_wmi_main_pull_svc_rdy_ev(skb, &arg);
|
||||||
wmi_main_svc_map(arg.service_map, svc_bmap,
|
wmi_main_svc_map(arg.service_map, ar->wmi.svc_map,
|
||||||
arg.service_map_len);
|
arg.service_map_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2543,7 +2544,6 @@ static void ath10k_wmi_event_service_ready(struct ath10k *ar,
|
|||||||
ar->num_rf_chains = __le32_to_cpu(arg.num_rf_chains);
|
ar->num_rf_chains = __le32_to_cpu(arg.num_rf_chains);
|
||||||
ar->ath_common.regulatory.current_rd = __le32_to_cpu(arg.eeprom_rd);
|
ar->ath_common.regulatory.current_rd = __le32_to_cpu(arg.eeprom_rd);
|
||||||
|
|
||||||
ath10k_debug_read_service_map(ar, svc_bmap, sizeof(svc_bmap));
|
|
||||||
ath10k_dbg_dump(ar, ATH10K_DBG_WMI, NULL, "wmi svc: ",
|
ath10k_dbg_dump(ar, ATH10K_DBG_WMI, NULL, "wmi svc: ",
|
||||||
arg.service_map, arg.service_map_len);
|
arg.service_map, arg.service_map_len);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user