ALSA: usb-audio: scarlett2: Always enable interrupt polling
authorGeoffrey D. Bennett <g@b4.vu>
Mon, 21 Jun 2021 18:09:20 +0000 (03:39 +0930)
committerTakashi Iwai <tiwai@suse.de>
Tue, 22 Jun 2021 19:36:00 +0000 (21:36 +0200)
Always enable interrupt polling as every model has some sort of
status to report.

Signed-off-by: Geoffrey D. Bennett <g@b4.vu>
Link: https://lore.kernel.org/r/8f49a6b9a9805ee0db221706193b7bb43b7fff75.1624294591.git.g@b4.vu
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer_scarlett_gen2.c

index 0b1967d..620f1e8 100644 (file)
@@ -2059,11 +2059,16 @@ static void scarlett2_notify_monitor(
        struct usb_mixer_interface *mixer)
 {
        struct scarlett2_data *private = mixer->private_data;
-       const struct scarlett2_ports *ports = private->info->ports;
+       const struct scarlett2_device_info *info = private->info;
+       const struct scarlett2_ports *ports = info->ports;
        int num_line_out =
                ports[SCARLETT2_PORT_TYPE_ANALOGUE].num[SCARLETT2_PORT_OUT];
        int i;
 
+       /* if line_out_hw_vol is 0, there are no controls to update */
+       if (!info->line_out_hw_vol)
+               return;
+
        private->vol_updated = 1;
 
        snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE,
@@ -2197,12 +2202,10 @@ static int snd_scarlett_gen2_controls_create(struct usb_mixer_interface *mixer,
        if (err < 0)
                return err;
 
-       /* Set up the interrupt polling if there are hardware buttons */
-       if (info->line_out_hw_vol) {
-               err = scarlett2_init_notify(mixer);
-               if (err < 0)
-                       return err;
-       }
+       /* Set up the interrupt polling */
+       err = scarlett2_init_notify(mixer);
+       if (err < 0)
+               return err;
 
        return 0;
 }