#define BTUSB_BULK_RUNNING     1
 #define BTUSB_ISOC_RUNNING     2
 #define BTUSB_SUSPENDING       3
+#define BTUSB_DID_ISO_RESUME   4
 
 struct btusb_data {
        struct hci_dev       *hdev;
        unsigned int sco_num;
        int isoc_altsetting;
        int suspend_count;
-       int did_iso_resume:1;
 };
 
 static int inc_tx(struct btusb_data *data)
        int err;
 
        if (hdev->conn_hash.sco_num > 0) {
-               if (!data->did_iso_resume) {
+               if (!test_bit(BTUSB_DID_ISO_RESUME, &data->flags)) {
                        err = usb_autopm_get_interface(data->isoc);
                        if (err < 0) {
                                clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
                                return;
                        }
 
-                       data->did_iso_resume = 1;
+                       set_bit(BTUSB_DID_ISO_RESUME, &data->flags);
                }
                if (data->isoc_altsetting != 2) {
                        clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
                usb_kill_anchored_urbs(&data->isoc_anchor);
 
                __set_isoc_interface(hdev, 0);
-               if (data->did_iso_resume) {
-                       data->did_iso_resume = 0;
+               if (test_and_clear_bit(BTUSB_DID_ISO_RESUME, &data->flags))
                        usb_autopm_put_interface(data->isoc);
-               }
        }
 }