@@ -113,6 +120,12 @@ static int q6usb_alsa_connection_cb(struct snd_soc_usb *usb,
if (connected) {
/* We only track the latest USB headset plugged in */
data->active_usb_chip_idx = sdev->card_idx;
+
+ set_bit(sdev->card_idx, &data->available_card_slot);
+ data->status[sdev->card_idx].sdev = sdev;
Not following the 'only track the latest USB headset plugged in', I
don't see anything that discard the previously latest headset...
If you plug headset1, then headset2, how is headset1 marked as not
available for USB offload?