mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-12 15:44:01 +08:00
ath9k: fix incorrect profile type manupulation
Two MCI interrupts are generated while adding A2DP and headset profiles with different types and same connection handle. While disconnecting, only one MCI interrupt is generated with last added profile type value for both profiles. While adding second profile type decrement first one. Signed-off-by: Bala Shanmugam <bkamatch@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
84b60c144c
commit
305dd09f8c
@ -233,8 +233,21 @@ static void ath_mci_process_profile(struct ath_softc *sc,
|
||||
struct ath_mci_profile_info *entry = NULL;
|
||||
|
||||
entry = ath_mci_find_profile(mci, info);
|
||||
if (entry)
|
||||
if (entry) {
|
||||
/*
|
||||
* Two MCI interrupts are generated while connecting to
|
||||
* headset and A2DP profile, but only one MCI interrupt
|
||||
* is generated with last added profile type while disconnecting
|
||||
* both profiles.
|
||||
* So while adding second profile type decrement
|
||||
* the first one.
|
||||
*/
|
||||
if (entry->type != info->type) {
|
||||
DEC_PROF(mci, entry);
|
||||
INC_PROF(mci, info);
|
||||
}
|
||||
memcpy(entry, info, 10);
|
||||
}
|
||||
|
||||
if (info->start) {
|
||||
if (!entry && !ath_mci_add_profile(common, mci, info))
|
||||
|
Loading…
Reference in New Issue
Block a user