diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 32 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-commands.h | 1 |
2 files changed, 20 insertions, 13 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index f8fe5f44e19..3342513ca6b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |||
@@ -1814,6 +1814,7 @@ void iwlagn_send_advance_bt_config(struct iwl_priv *priv) | |||
1814 | bt_cmd.prio_boost = 0; | 1814 | bt_cmd.prio_boost = 0; |
1815 | bt_cmd.kill_ack_mask = priv->kill_ack_mask; | 1815 | bt_cmd.kill_ack_mask = priv->kill_ack_mask; |
1816 | bt_cmd.kill_cts_mask = priv->kill_cts_mask; | 1816 | bt_cmd.kill_cts_mask = priv->kill_cts_mask; |
1817 | |||
1817 | bt_cmd.valid = priv->bt_valid; | 1818 | bt_cmd.valid = priv->bt_valid; |
1818 | bt_cmd.tx_prio_boost = 0; | 1819 | bt_cmd.tx_prio_boost = 0; |
1819 | bt_cmd.rx_prio_boost = 0; | 1820 | bt_cmd.rx_prio_boost = 0; |
@@ -1996,24 +1997,29 @@ static void iwlagn_print_uartmsg(struct iwl_priv *priv, | |||
1996 | BT_UART_MSG_FRAME7CONNECTABLE_POS); | 1997 | BT_UART_MSG_FRAME7CONNECTABLE_POS); |
1997 | } | 1998 | } |
1998 | 1999 | ||
1999 | static void iwlagn_set_kill_ack_msk(struct iwl_priv *priv, | 2000 | static void iwlagn_set_kill_msk(struct iwl_priv *priv, |
2000 | struct iwl_bt_uart_msg *uart_msg) | 2001 | struct iwl_bt_uart_msg *uart_msg) |
2001 | { | 2002 | { |
2002 | u8 kill_ack_msk; | 2003 | u8 kill_msk; |
2003 | static const __le32 bt_kill_ack_msg[2] = { | 2004 | static const __le32 bt_kill_ack_msg[2] = { |
2004 | cpu_to_le32(0xFFFFFFF), cpu_to_le32(0xFFFFFC00) }; | 2005 | IWLAGN_BT_KILL_ACK_MASK_DEFAULT, |
2005 | 2006 | IWLAGN_BT_KILL_ACK_CTS_MASK_SCO }; | |
2006 | kill_ack_msk = (((BT_UART_MSG_FRAME3A2DP_MSK | | 2007 | static const __le32 bt_kill_cts_msg[2] = { |
2007 | BT_UART_MSG_FRAME3SNIFF_MSK | | 2008 | IWLAGN_BT_KILL_CTS_MASK_DEFAULT, |
2008 | BT_UART_MSG_FRAME3SCOESCO_MSK) & | 2009 | IWLAGN_BT_KILL_ACK_CTS_MASK_SCO }; |
2009 | uart_msg->frame3) == 0) ? 1 : 0; | 2010 | |
2010 | if (priv->kill_ack_mask != bt_kill_ack_msg[kill_ack_msk]) { | 2011 | kill_msk = (BT_UART_MSG_FRAME3SCOESCO_MSK & uart_msg->frame3) |
2012 | ? 1 : 0; | ||
2013 | if (priv->kill_ack_mask != bt_kill_ack_msg[kill_msk] || | ||
2014 | priv->kill_cts_mask != bt_kill_cts_msg[kill_msk]) { | ||
2011 | priv->bt_valid |= IWLAGN_BT_VALID_KILL_ACK_MASK; | 2015 | priv->bt_valid |= IWLAGN_BT_VALID_KILL_ACK_MASK; |
2012 | priv->kill_ack_mask = bt_kill_ack_msg[kill_ack_msk]; | 2016 | priv->kill_ack_mask = bt_kill_ack_msg[kill_msk]; |
2017 | priv->bt_valid |= IWLAGN_BT_VALID_KILL_CTS_MASK; | ||
2018 | priv->kill_cts_mask = bt_kill_cts_msg[kill_msk]; | ||
2019 | |||
2013 | /* schedule to send runtime bt_config */ | 2020 | /* schedule to send runtime bt_config */ |
2014 | queue_work(priv->workqueue, &priv->bt_runtime_config); | 2021 | queue_work(priv->workqueue, &priv->bt_runtime_config); |
2015 | } | 2022 | } |
2016 | |||
2017 | } | 2023 | } |
2018 | 2024 | ||
2019 | void iwlagn_bt_coex_profile_notif(struct iwl_priv *priv, | 2025 | void iwlagn_bt_coex_profile_notif(struct iwl_priv *priv, |
@@ -2064,7 +2070,7 @@ void iwlagn_bt_coex_profile_notif(struct iwl_priv *priv, | |||
2064 | } | 2070 | } |
2065 | } | 2071 | } |
2066 | 2072 | ||
2067 | iwlagn_set_kill_ack_msk(priv, uart_msg); | 2073 | iwlagn_set_kill_msk(priv, uart_msg); |
2068 | 2074 | ||
2069 | /* FIXME: based on notification, adjust the prio_boost */ | 2075 | /* FIXME: based on notification, adjust the prio_boost */ |
2070 | 2076 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h index c9448cba1e2..f893d4a6aa8 100644 --- a/drivers/net/wireless/iwlwifi/iwl-commands.h +++ b/drivers/net/wireless/iwlwifi/iwl-commands.h | |||
@@ -2453,6 +2453,7 @@ struct iwl_bt_cmd { | |||
2453 | 2453 | ||
2454 | #define IWLAGN_BT_KILL_ACK_MASK_DEFAULT cpu_to_le32(0xffff0000) | 2454 | #define IWLAGN_BT_KILL_ACK_MASK_DEFAULT cpu_to_le32(0xffff0000) |
2455 | #define IWLAGN_BT_KILL_CTS_MASK_DEFAULT cpu_to_le32(0xffff0000) | 2455 | #define IWLAGN_BT_KILL_CTS_MASK_DEFAULT cpu_to_le32(0xffff0000) |
2456 | #define IWLAGN_BT_KILL_ACK_CTS_MASK_SCO cpu_to_le32(0xffffffff) | ||
2456 | 2457 | ||
2457 | #define IWLAGN_BT3_PRIO_SAMPLE_DEFAULT 2 | 2458 | #define IWLAGN_BT3_PRIO_SAMPLE_DEFAULT 2 |
2458 | 2459 | ||