root/drivers/net/wireless/ti/wl12xx/event.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * This file is part of wl12xx
   4  *
   5  * Copyright (C) 2012 Texas Instruments. All rights reserved.
   6  */
   7 
   8 #ifndef __WL12XX_EVENT_H__
   9 #define __WL12XX_EVENT_H__
  10 
  11 #include "../wlcore/wlcore.h"
  12 
  13 enum {
  14         MEASUREMENT_START_EVENT_ID               = BIT(8),
  15         MEASUREMENT_COMPLETE_EVENT_ID            = BIT(9),
  16         SCAN_COMPLETE_EVENT_ID                   = BIT(10),
  17         WFD_DISCOVERY_COMPLETE_EVENT_ID          = BIT(11),
  18         AP_DISCOVERY_COMPLETE_EVENT_ID           = BIT(12),
  19         RESERVED1                                = BIT(13),
  20         PSPOLL_DELIVERY_FAILURE_EVENT_ID         = BIT(14),
  21         ROLE_STOP_COMPLETE_EVENT_ID              = BIT(15),
  22         RADAR_DETECTED_EVENT_ID                  = BIT(16),
  23         CHANNEL_SWITCH_COMPLETE_EVENT_ID         = BIT(17),
  24         BSS_LOSE_EVENT_ID                        = BIT(18),
  25         REGAINED_BSS_EVENT_ID                    = BIT(19),
  26         MAX_TX_RETRY_EVENT_ID                    = BIT(20),
  27         DUMMY_PACKET_EVENT_ID                    = BIT(21),
  28         SOFT_GEMINI_SENSE_EVENT_ID               = BIT(22),
  29         CHANGE_AUTO_MODE_TIMEOUT_EVENT_ID        = BIT(23),
  30         SOFT_GEMINI_AVALANCHE_EVENT_ID           = BIT(24),
  31         PLT_RX_CALIBRATION_COMPLETE_EVENT_ID     = BIT(25),
  32         INACTIVE_STA_EVENT_ID                    = BIT(26),
  33         PEER_REMOVE_COMPLETE_EVENT_ID            = BIT(27),
  34         PERIODIC_SCAN_COMPLETE_EVENT_ID          = BIT(28),
  35         PERIODIC_SCAN_REPORT_EVENT_ID            = BIT(29),
  36         BA_SESSION_RX_CONSTRAINT_EVENT_ID        = BIT(30),
  37         REMAIN_ON_CHANNEL_COMPLETE_EVENT_ID      = BIT(31),
  38 };
  39 
  40 struct wl12xx_event_mailbox {
  41         __le32 events_vector;
  42         __le32 events_mask;
  43         __le32 reserved_1;
  44         __le32 reserved_2;
  45 
  46         u8 number_of_scan_results;
  47         u8 scan_tag;
  48         u8 completed_scan_status;
  49         u8 reserved_3;
  50 
  51         u8 soft_gemini_sense_info;
  52         u8 soft_gemini_protective_info;
  53         s8 rssi_snr_trigger_metric[NUM_OF_RSSI_SNR_TRIGGERS];
  54         u8 change_auto_mode_timeout;
  55         u8 scheduled_scan_status;
  56         u8 reserved4;
  57         /* tuned channel (roc) */
  58         u8 roc_channel;
  59 
  60         __le16 hlid_removed_bitmap;
  61 
  62         /* bitmap of aged stations (by HLID) */
  63         __le16 sta_aging_status;
  64 
  65         /* bitmap of stations (by HLID) which exceeded max tx retries */
  66         __le16 sta_tx_retry_exceeded;
  67 
  68         /* discovery completed results */
  69         u8 discovery_tag;
  70         u8 number_of_preq_results;
  71         u8 number_of_prsp_results;
  72         u8 reserved_5;
  73 
  74         /* rx ba constraint */
  75         u8 role_id; /* 0xFF means any role. */
  76         u8 rx_ba_allowed;
  77         u8 reserved_6[2];
  78 
  79         /* Channel switch results */
  80 
  81         u8 channel_switch_role_id;
  82         u8 channel_switch_status;
  83         u8 reserved_7[2];
  84 
  85         u8 ps_poll_delivery_failure_role_ids;
  86         u8 stopped_role_ids;
  87         u8 started_role_ids;
  88 
  89         u8 reserved_8[9];
  90 } __packed;
  91 
  92 int wl12xx_wait_for_event(struct wl1271 *wl, enum wlcore_wait_event event,
  93                           bool *timeout);
  94 int wl12xx_process_mailbox_events(struct wl1271 *wl);
  95 
  96 #endif
  97 

/* [<][>][^][v][top][bottom][index][help] */