Lines Matching +full:pm +full:- +full:alive
1 // SPDX-License-Identifier: GPL-2.0-only
3 * mac80211 glue code for mac80211 ST-Ericsson CW1200 drivers
6 * Copyright (c) 2010, ST-Ericsson
73 seq_printf(seq, "Queue %d:\n", q->queue_id); in cw1200_queue_status_show()
74 seq_printf(seq, " capacity: %zu\n", q->capacity); in cw1200_queue_status_show()
75 seq_printf(seq, " queued: %zu\n", q->num_queued); in cw1200_queue_status_show()
76 seq_printf(seq, " pending: %zu\n", q->num_pending); in cw1200_queue_status_show()
77 seq_printf(seq, " sent: %zu\n", q->num_sent); in cw1200_queue_status_show()
78 seq_printf(seq, " locked: %s\n", q->tx_locked_cnt ? "yes" : "no"); in cw1200_queue_status_show()
79 seq_printf(seq, " overfull: %s\n", q->overfull ? "yes" : "no"); in cw1200_queue_status_show()
80 seq_puts(seq, " link map: 0-> "); in cw1200_queue_status_show()
81 for (i = 0; i < q->stats->map_capacity; ++i) in cw1200_queue_status_show()
82 seq_printf(seq, "%.2d ", q->link_map_cache[i]); in cw1200_queue_status_show()
83 seq_printf(seq, "<-%zu\n", q->stats->map_capacity); in cw1200_queue_status_show()
92 seq_printf(seq, "%s0-> ", label); in cw1200_debug_print_map()
93 for (i = 0; i < priv->tx_queue_stats.map_capacity; ++i) in cw1200_debug_print_map()
95 seq_printf(seq, "<-%zu\n", priv->tx_queue_stats.map_capacity - 1); in cw1200_debug_print_map()
102 struct cw1200_common *priv = seq->private; in cw1200_status_show()
103 struct cw1200_debug_priv *d = priv->debug; in cw1200_status_show()
107 priv->wsm_caps.hw_id, in cw1200_status_show()
108 priv->wsm_caps.hw_subid); in cw1200_status_show()
110 cw1200_fw_types[priv->wsm_caps.fw_type], in cw1200_status_show()
111 priv->wsm_caps.fw_ver, in cw1200_status_show()
112 priv->wsm_caps.fw_build); in cw1200_status_show()
114 priv->wsm_caps.fw_api); in cw1200_status_show()
116 priv->wsm_caps.fw_cap); in cw1200_status_show()
118 priv->wsm_caps.fw_label); in cw1200_status_show()
120 cw1200_debug_mode(priv->mode), in cw1200_status_show()
121 priv->listening ? " (listening)" : ""); in cw1200_status_show()
123 cw1200_debug_join_status[priv->join_status]); in cw1200_status_show()
124 if (priv->channel) in cw1200_status_show()
126 priv->channel->hw_value, in cw1200_status_show()
127 priv->channel_switch_in_progress ? in cw1200_status_show()
129 if (priv->rx_filter.promiscuous) in cw1200_status_show()
131 else if (priv->rx_filter.fcs) in cw1200_status_show()
133 if (priv->rx_filter.bssid) in cw1200_status_show()
135 if (!priv->disable_beacon_filter) in cw1200_status_show()
138 if (priv->enable_beacon || in cw1200_status_show()
139 priv->mode == NL80211_IFTYPE_AP || in cw1200_status_show()
140 priv->mode == NL80211_IFTYPE_ADHOC || in cw1200_status_show()
141 priv->mode == NL80211_IFTYPE_MESH_POINT || in cw1200_status_show()
142 priv->mode == NL80211_IFTYPE_P2P_GO) in cw1200_status_show()
144 priv->enable_beacon ? in cw1200_status_show()
149 priv->edca.params[i].cwmin, in cw1200_status_show()
150 priv->edca.params[i].cwmax, in cw1200_status_show()
151 priv->edca.params[i].aifns, in cw1200_status_show()
152 priv->edca.params[i].txop_limit, in cw1200_status_show()
153 priv->edca.params[i].max_rx_lifetime); in cw1200_status_show()
155 if (priv->join_status == CW1200_JOIN_STATUS_STA) { in cw1200_status_show()
157 switch (priv->powersave_mode.mode) { in cw1200_status_show()
169 cw1200_debug_preamble[priv->association_mode.preamble]); in cw1200_status_show()
171 priv->association_mode.mpdu_start_spacing); in cw1200_status_show()
173 le32_to_cpu(priv->association_mode.basic_rate_set)); in cw1200_status_show()
175 priv->bss_params.beacon_lost_count); in cw1200_status_show()
177 priv->bss_params.aid); in cw1200_status_show()
179 priv->bss_params.operational_rate_set); in cw1200_status_show()
183 cw1200_is_ht(&priv->ht_info) ? "on" : "off"); in cw1200_status_show()
184 if (cw1200_is_ht(&priv->ht_info)) { in cw1200_status_show()
186 cw1200_ht_greenfield(&priv->ht_info) ? "yes" : "no"); in cw1200_status_show()
188 cw1200_ht_ampdu_density(&priv->ht_info)); in cw1200_status_show()
191 priv->cqm_rssi_thold); in cw1200_status_show()
193 priv->cqm_rssi_hyst); in cw1200_status_show()
195 priv->long_frame_max_tx_count); in cw1200_status_show()
197 priv->short_frame_max_tx_count); in cw1200_status_show()
198 spin_lock_bh(&priv->tx_policy_cache.lock); in cw1200_status_show()
200 list_for_each(item, &priv->tx_policy_cache.used) in cw1200_status_show()
202 spin_unlock_bh(&priv->tx_policy_cache.lock); in cw1200_status_show()
207 cw1200_queue_status_show(seq, &priv->tx_queue[i]); in cw1200_status_show()
212 priv->link_id_map); in cw1200_status_show()
214 priv->sta_asleep_mask); in cw1200_status_show()
216 priv->pspoll_mask); in cw1200_status_show()
221 if (priv->link_id_db[i].status) { in cw1200_status_show()
222 seq_printf(seq, "Link %d: %s, %pM\n", in cw1200_status_show()
224 cw1200_debug_link_id[priv->link_id_db[i].status], in cw1200_status_show()
225 priv->link_id_db[i].mac); in cw1200_status_show()
232 atomic_read(&priv->bh_term) ? "terminated" : "alive"); in cw1200_status_show()
234 atomic_read(&priv->bh_rx)); in cw1200_status_show()
236 atomic_read(&priv->bh_tx)); in cw1200_status_show()
237 if (priv->bh_error) in cw1200_status_show()
239 priv->bh_error); in cw1200_status_show()
241 priv->wsm_caps.input_buffers, in cw1200_status_show()
242 priv->wsm_caps.input_buffer_size); in cw1200_status_show()
244 priv->hw_bufs_used); in cw1200_status_show()
246 priv->powersave_enabled ? "on" : "off"); in cw1200_status_show()
248 priv->device_can_sleep ? "asleep" : "awake"); in cw1200_status_show()
250 spin_lock(&priv->wsm_cmd.lock); in cw1200_status_show()
252 priv->wsm_cmd.done ? "idle" : "active"); in cw1200_status_show()
254 priv->wsm_cmd.cmd, priv->wsm_cmd.len); in cw1200_status_show()
256 priv->wsm_cmd.ret); in cw1200_status_show()
257 spin_unlock(&priv->wsm_cmd.lock); in cw1200_status_show()
260 atomic_read(&priv->tx_lock) ? "locked" : "unlocked"); in cw1200_status_show()
261 if (atomic_read(&priv->tx_lock)) in cw1200_status_show()
263 atomic_read(&priv->tx_lock)); in cw1200_status_show()
266 d->tx); in cw1200_status_show()
268 d->tx_agg); in cw1200_status_show()
270 d->tx_multi, d->tx_multi_frames); in cw1200_status_show()
272 d->rx); in cw1200_status_show()
274 d->rx_agg); in cw1200_status_show()
276 d->tx_cache_miss); in cw1200_status_show()
278 d->tx_align); in cw1200_status_show()
280 d->tx_burst); in cw1200_status_show()
282 d->tx_ttl); in cw1200_status_show()
284 atomic_read(&priv->scan.in_progress) ? "active" : "idle"); in cw1200_status_show()
294 struct cw1200_common *priv = seq->private; in cw1200_counters_show()
338 struct cw1200_common *priv = file->private_data; in cw1200_wsm_dumps()
342 return -EINVAL; in cw1200_wsm_dumps()
344 return -EFAULT; in cw1200_wsm_dumps()
347 priv->wsm_enable_wsm_dumps = 1; in cw1200_wsm_dumps()
349 priv->wsm_enable_wsm_dumps = 0; in cw1200_wsm_dumps()
362 int ret = -ENOMEM; in cw1200_debug_init()
365 priv->debug = d; in cw1200_debug_init()
369 d->debugfs_phy = debugfs_create_dir("cw1200", in cw1200_debug_init()
370 priv->hw->wiphy->debugfsdir); in cw1200_debug_init()
371 debugfs_create_file("status", 0400, d->debugfs_phy, priv, in cw1200_debug_init()
373 debugfs_create_file("counters", 0400, d->debugfs_phy, priv, in cw1200_debug_init()
375 debugfs_create_file("wsm_dumps", 0200, d->debugfs_phy, priv, in cw1200_debug_init()
383 struct cw1200_debug_priv *d = priv->debug; in cw1200_debug_release()
385 debugfs_remove_recursive(d->debugfs_phy); in cw1200_debug_release()
386 priv->debug = NULL; in cw1200_debug_release()