diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/mci.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/mci.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/mci.c b/drivers/net/wireless/ath/ath9k/mci.c index 7d34a504d617..64cc782587d8 100644 --- a/drivers/net/wireless/ath/ath9k/mci.c +++ b/drivers/net/wireless/ath/ath9k/mci.c | |||
@@ -233,8 +233,21 @@ static void ath_mci_process_profile(struct ath_softc *sc, | |||
233 | struct ath_mci_profile_info *entry = NULL; | 233 | struct ath_mci_profile_info *entry = NULL; |
234 | 234 | ||
235 | entry = ath_mci_find_profile(mci, info); | 235 | entry = ath_mci_find_profile(mci, info); |
236 | if (entry) | 236 | if (entry) { |
237 | /* | ||
238 | * Two MCI interrupts are generated while connecting to | ||
239 | * headset and A2DP profile, but only one MCI interrupt | ||
240 | * is generated with last added profile type while disconnecting | ||
241 | * both profiles. | ||
242 | * So while adding second profile type decrement | ||
243 | * the first one. | ||
244 | */ | ||
245 | if (entry->type != info->type) { | ||
246 | DEC_PROF(mci, entry); | ||
247 | INC_PROF(mci, info); | ||
248 | } | ||
237 | memcpy(entry, info, 10); | 249 | memcpy(entry, info, 10); |
250 | } | ||
238 | 251 | ||
239 | if (info->start) { | 252 | if (info->start) { |
240 | if (!entry && !ath_mci_add_profile(common, mci, info)) | 253 | if (!entry && !ath_mci_add_profile(common, mci, info)) |
@@ -335,7 +348,7 @@ static void ath_mci_msg(struct ath_softc *sc, u8 opcode, u8 *rx_payload) | |||
335 | 348 | ||
336 | seq_num = *((u32 *)(rx_payload + 12)); | 349 | seq_num = *((u32 *)(rx_payload + 12)); |
337 | ath_dbg(common, MCI, | 350 | ath_dbg(common, MCI, |
338 | "BT_Status_Update: is_link=%d, linkId=%d, state=%d, SEQ=%d\n", | 351 | "BT_Status_Update: is_link=%d, linkId=%d, state=%d, SEQ=%u\n", |
339 | profile_status.is_link, profile_status.conn_handle, | 352 | profile_status.is_link, profile_status.conn_handle, |
340 | profile_status.is_critical, seq_num); | 353 | profile_status.is_critical, seq_num); |
341 | 354 | ||