aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-commands.h
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2010-08-23 10:57:05 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-08-25 14:34:19 -0400
commitaeb4a2eec2b1d2ac6507e9cec2aecc46fdba8741 (patch)
tree9a54c2916234a95a90eeb03ecdda2d05901b4b57 /drivers/net/wireless/iwlwifi/iwl-commands.h
parentbee008b78307ccc2e17c7ec152dd2098d5f2e1fa (diff)
iwlagn: wifi/bt coex configuration sequence
bt config command need to send before the init calibration command, driver need to let uCode know that calibrations are being performed now in order to assure antenna is not being taken to BT use during radio/dsp reads/writes Also, bt_coex_priorty_table command need to be send right after the bt_config_command during init sequence. Followed by bt coex envelope command to initialize and prepare uCode bt state machine Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-commands.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h59
1 files changed, 44 insertions, 15 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 67eaeb6822cb..b45882aa68fe 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -4078,34 +4078,63 @@ struct iwl_bt_coex_profile_notif {
4078 u8 reserved; 4078 u8 reserved;
4079} __attribute__((packed)); 4079} __attribute__((packed));
4080 4080
4081#define IWL_BT_COEX_PRIO_SHARED_ANTENNA 0x1 4081#define IWL_BT_COEX_PRIO_TBL_SHARED_ANTENNA_POS 0
4082#define IWL_BT_COEX_PRIO_PRIO_MASK 0xe 4082#define IWL_BT_COEX_PRIO_TBL_SHARED_ANTENNA_MSK 0x1
4083#define IWL_BT_COEX_PRIO_PRIO_SHIFT 1 4083#define IWL_BT_COEX_PRIO_TBL_PRIO_POS 1
4084#define IWL_BT_COEX_PRIO_TBL_PRIO_MASK 0x0e
4085#define IWL_BT_COEX_PRIO_TBL_RESERVED_POS 4
4086#define IWL_BT_COEX_PRIO_TBL_RESERVED_MASK 0xf0
4087#define IWL_BT_COEX_PRIO_TBL_PRIO_SHIFT 1
4084 4088
4085/* 4089/*
4086 * BT Coexistence Priority table 4090 * BT Coexistence Priority table
4087 * REPLY_BT_COEX_PRIO_TABLE = 0xcc 4091 * REPLY_BT_COEX_PRIO_TABLE = 0xcc
4088 */ 4092 */
4093enum bt_coex_prio_table_events {
4094 BT_COEX_PRIO_TBL_EVT_INIT_CALIB1 = 0,
4095 BT_COEX_PRIO_TBL_EVT_INIT_CALIB2 = 1,
4096 BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_LOW1 = 2,
4097 BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_LOW2 = 3, /* DC calib */
4098 BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_HIGH1 = 4,
4099 BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_HIGH2 = 5,
4100 BT_COEX_PRIO_TBL_EVT_DTIM = 6,
4101 BT_COEX_PRIO_TBL_EVT_SCAN52 = 7,
4102 BT_COEX_PRIO_TBL_EVT_SCAN24 = 8,
4103 BT_COEX_PRIO_TBL_EVT_RESERVED0 = 9,
4104 BT_COEX_PRIO_TBL_EVT_RESERVED1 = 10,
4105 BT_COEX_PRIO_TBL_EVT_RESERVED2 = 11,
4106 BT_COEX_PRIO_TBL_EVT_RESERVED3 = 12,
4107 BT_COEX_PRIO_TBL_EVT_RESERVED4 = 13,
4108 BT_COEX_PRIO_TBL_EVT_RESERVED5 = 14,
4109 BT_COEX_PRIO_TBL_EVT_RESERVED6 = 15,
4110 /* BT_COEX_PRIO_TBL_EVT_MAX should always be last */
4111 BT_COEX_PRIO_TBL_EVT_MAX,
4112};
4113
4114enum bt_coex_prio_table_priorities {
4115 BT_COEX_PRIO_TBL_DISABLED = 0,
4116 BT_COEX_PRIO_TBL_PRIO_LOW = 1,
4117 BT_COEX_PRIO_TBL_PRIO_HIGH = 2,
4118 BT_COEX_PRIO_TBL_PRIO_BYPASS = 3,
4119 BT_COEX_PRIO_TBL_PRIO_COEX_OFF = 4,
4120 BT_COEX_PRIO_TBL_PRIO_COEX_ON = 5,
4121 BT_COEX_PRIO_TBL_PRIO_RSRVD1 = 6,
4122 BT_COEX_PRIO_TBL_PRIO_RSRVD2 = 7,
4123 BT_COEX_PRIO_TBL_MAX,
4124};
4125
4089struct iwl_bt_coex_prio_table_cmd { 4126struct iwl_bt_coex_prio_table_cmd {
4090 u8 init_calib_protection_cfg1, 4127 u8 prio_tbl[BT_COEX_PRIO_TBL_EVT_MAX];
4091 init_calib_protection_cfg2,
4092 init_calib_protection_lowprio_cfg1,
4093 init_calib_protection_lowprio_cfg2,
4094 init_calib_protection_highprio_cfg1,
4095 init_calib_protection_highprio_cfg2,
4096 dtim_protection_prio_cfg,
4097 scan_52_protection_cfg,
4098 scan_24_protection_cfg,
4099 bc_mc_protection_cfg;
4100 u8 reserved[6];
4101} __attribute__((packed)); 4128} __attribute__((packed));
4102 4129
4130#define IWL_BT_COEX_ENV_CLOSE 0
4131#define IWL_BT_COEX_ENV_OPEN 1
4103/* 4132/*
4104 * BT Protection Envelope 4133 * BT Protection Envelope
4105 * REPLY_BT_COEX_PROT_ENV = 0xcd 4134 * REPLY_BT_COEX_PROT_ENV = 0xcd
4106 */ 4135 */
4107struct iwl_bt_coex_prot_env_cmd { 4136struct iwl_bt_coex_prot_env_cmd {
4108 u8 open; /* 0 = closed, 1 = open */ 4137 u8 action; /* 0 = closed, 1 = open */
4109 u8 type; /* 0 .. 15 */ 4138 u8 type; /* 0 .. 15 */
4110 u8 reserved[2]; 4139 u8 reserved[2];
4111} __attribute__((packed)); 4140} __attribute__((packed));