Enable the FW Logger to work over the SDIO interface in addition to over UART interface. In the new design we use fw internal memory instead of packet ram that was used in older (wl12xx) design. This change reduces the impact on TP and stability. A new event was added to notify fw logger is ready for reading. Dynamic configuration to debugfs was added as well. Signed-off-by: Shahar Patury <shaharp@ti.com> Signed-off-by: Guy Mishol <guym@ti.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
117 lines
3.1 KiB
C
117 lines
3.1 KiB
C
/*
|
|
* This file is part of wl18xx
|
|
*
|
|
* Copyright (C) 2012 Texas Instruments. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
|
* 02110-1301 USA
|
|
*
|
|
*/
|
|
|
|
#ifndef __WL18XX_EVENT_H__
|
|
#define __WL18XX_EVENT_H__
|
|
|
|
#include "../wlcore/wlcore.h"
|
|
|
|
enum {
|
|
SCAN_COMPLETE_EVENT_ID = BIT(8),
|
|
RADAR_DETECTED_EVENT_ID = BIT(9),
|
|
CHANNEL_SWITCH_COMPLETE_EVENT_ID = BIT(10),
|
|
BSS_LOSS_EVENT_ID = BIT(11),
|
|
MAX_TX_FAILURE_EVENT_ID = BIT(12),
|
|
DUMMY_PACKET_EVENT_ID = BIT(13),
|
|
INACTIVE_STA_EVENT_ID = BIT(14),
|
|
PEER_REMOVE_COMPLETE_EVENT_ID = BIT(15),
|
|
PERIODIC_SCAN_COMPLETE_EVENT_ID = BIT(16),
|
|
BA_SESSION_RX_CONSTRAINT_EVENT_ID = BIT(17),
|
|
REMAIN_ON_CHANNEL_COMPLETE_EVENT_ID = BIT(18),
|
|
DFS_CHANNELS_CONFIG_COMPLETE_EVENT = BIT(19),
|
|
PERIODIC_SCAN_REPORT_EVENT_ID = BIT(20),
|
|
SMART_CONFIG_SYNC_EVENT_ID = BIT(22),
|
|
SMART_CONFIG_DECODE_EVENT_ID = BIT(23),
|
|
TIME_SYNC_EVENT_ID = BIT(24),
|
|
FW_LOGGER_INDICATION = BIT(25),
|
|
};
|
|
|
|
enum wl18xx_radar_types {
|
|
RADAR_TYPE_NONE,
|
|
RADAR_TYPE_REGULAR,
|
|
RADAR_TYPE_CHIRP
|
|
};
|
|
|
|
struct wl18xx_event_mailbox {
|
|
__le32 events_vector;
|
|
|
|
u8 number_of_scan_results;
|
|
u8 number_of_sched_scan_results;
|
|
|
|
__le16 channel_switch_role_id_bitmap;
|
|
|
|
s8 rssi_snr_trigger_metric[NUM_OF_RSSI_SNR_TRIGGERS];
|
|
|
|
/* bitmap of removed links */
|
|
__le32 hlid_removed_bitmap;
|
|
|
|
/* rx ba constraint */
|
|
__le16 rx_ba_role_id_bitmap; /* 0xfff means any role. */
|
|
__le16 rx_ba_allowed_bitmap;
|
|
|
|
/* bitmap of roc completed (by role id) */
|
|
__le16 roc_completed_bitmap;
|
|
|
|
/* bitmap of stations (by role id) with bss loss */
|
|
__le16 bss_loss_bitmap;
|
|
|
|
/* bitmap of stations (by HLID) which exceeded max tx retries */
|
|
__le32 tx_retry_exceeded_bitmap;
|
|
|
|
/* bitmap of inactive stations (by HLID) */
|
|
__le32 inactive_sta_bitmap;
|
|
|
|
/* rx BA win size indicated by RX_BA_WIN_SIZE_CHANGE_EVENT_ID */
|
|
u8 rx_ba_role_id;
|
|
u8 rx_ba_link_id;
|
|
u8 rx_ba_win_size;
|
|
u8 padding;
|
|
|
|
/* smart config */
|
|
u8 sc_ssid_len;
|
|
u8 sc_pwd_len;
|
|
u8 sc_token_len;
|
|
u8 padding1;
|
|
u8 sc_ssid[32];
|
|
u8 sc_pwd[64];
|
|
u8 sc_token[32];
|
|
|
|
/* smart config sync channel */
|
|
u8 sc_sync_channel;
|
|
u8 sc_sync_band;
|
|
|
|
/* time sync msb*/
|
|
u16 time_sync_tsf_msb;
|
|
/* radar detect */
|
|
u8 radar_channel;
|
|
u8 radar_type;
|
|
|
|
/* time sync lsb*/
|
|
u16 time_sync_tsf_lsb;
|
|
|
|
} __packed;
|
|
|
|
int wl18xx_wait_for_event(struct wl1271 *wl, enum wlcore_wait_event event,
|
|
bool *timeout);
|
|
int wl18xx_process_mailbox_events(struct wl1271 *wl);
|
|
|
|
#endif
|