Merge tag 'sound-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[sfrench/cifs-2.6.git] / sound / usb / line6 / toneport.c
index 19bee725de00dd46b2f8ade8334574e43c41b646..e28368d8eba263a6fee87e3e94bac0784fff92f9 100644 (file)
@@ -54,8 +54,8 @@ struct usb_line6_toneport {
        /* Firmware version (x 100) */
        u8 firmware_version;
 
-       /* Timer for delayed PCM startup */
-       struct timer_list timer;
+       /* Work for delayed PCM startup */
+       struct delayed_work pcm_work;
 
        /* Device type */
        enum line6_device_type type;
@@ -241,9 +241,10 @@ static int snd_toneport_source_put(struct snd_kcontrol *kcontrol,
        return 1;
 }
 
-static void toneport_start_pcm(struct timer_list *t)
+static void toneport_start_pcm(struct work_struct *work)
 {
-       struct usb_line6_toneport *toneport = from_timer(toneport, t, timer);
+       struct usb_line6_toneport *toneport =
+               container_of(work, struct usb_line6_toneport, pcm_work.work);
        struct usb_line6 *line6 = &toneport->line6;
 
        line6_pcm_acquire(line6->line6pcm, LINE6_STREAM_MONITOR, true);
@@ -291,8 +292,8 @@ static bool toneport_has_led(struct usb_line6_toneport *toneport)
        }
 }
 
-static const char * const led_colors[2] = { "red", "green" };
-static const int led_init_vals[2] = { 0x00, 0x26 };
+static const char * const toneport_led_colors[2] = { "red", "green" };
+static const int toneport_led_init_vals[2] = { 0x00, 0x26 };
 
 static void toneport_update_led(struct usb_line6_toneport *toneport)
 {
@@ -320,9 +321,9 @@ static int toneport_init_leds(struct usb_line6_toneport *toneport)
 
                led->toneport = toneport;
                snprintf(led->name, sizeof(led->name), "%s::%s",
-                        dev_name(dev), led_colors[i]);
+                        dev_name(dev), toneport_led_colors[i]);
                leddev->name = led->name;
-               leddev->brightness = led_init_vals[i];
+               leddev->brightness = toneport_led_init_vals[i];
                leddev->max_brightness = 0x26;
                leddev->brightness_set = toneport_led_brightness_set;
                err = led_classdev_register(dev, leddev);
@@ -393,7 +394,8 @@ static int toneport_setup(struct usb_line6_toneport *toneport)
        if (toneport_has_led(toneport))
                toneport_update_led(toneport);
 
-       mod_timer(&toneport->timer, jiffies + TONEPORT_PCM_DELAY * HZ);
+       schedule_delayed_work(&toneport->pcm_work,
+                             msecs_to_jiffies(TONEPORT_PCM_DELAY * 1000));
        return 0;
 }
 
@@ -405,7 +407,7 @@ static void line6_toneport_disconnect(struct usb_line6 *line6)
        struct usb_line6_toneport *toneport =
                (struct usb_line6_toneport *)line6;
 
-       del_timer_sync(&toneport->timer);
+       cancel_delayed_work_sync(&toneport->pcm_work);
 
        if (toneport_has_led(toneport))
                toneport_remove_leds(toneport);
@@ -422,7 +424,7 @@ static int toneport_init(struct usb_line6 *line6,
        struct usb_line6_toneport *toneport =  (struct usb_line6_toneport *) line6;
 
        toneport->type = id->driver_info;
-       timer_setup(&toneport->timer, toneport_start_pcm, 0);
+       INIT_DELAYED_WORK(&toneport->pcm_work, toneport_start_pcm);
 
        line6->disconnect = line6_toneport_disconnect;