linux/drivers/net/wireless/ti/wl12xx/event.h
<<
>>
Prefs
   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
  13enum {
  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
  40struct 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
  92int wl12xx_wait_for_event(struct wl1271 *wl, enum wlcore_wait_event event,
  93                          bool *timeout);
  94int wl12xx_process_mailbox_events(struct wl1271 *wl);
  95
  96#endif
  97
  98