Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6162afa authored by Kees Cook's avatar Kees Cook Committed by Takashi Iwai
Browse files

ALSA: usb-audio: Convert timers to use timer_setup()



In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.

Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 0011a33f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -199,9 +199,9 @@ static int line6_send_raw_message_async_part(struct message *msg,
	Setup and start timer.
*/
void line6_start_timer(struct timer_list *timer, unsigned long msecs,
		       void (*function)(unsigned long), unsigned long data)
		       void (*function)(struct timer_list *t))
{
	setup_timer(timer, function, data);
	timer->function = (TIMER_FUNC_TYPE)function;
	mod_timer(timer, jiffies + msecs_to_jiffies(msecs));
}
EXPORT_SYMBOL_GPL(line6_start_timer);
+1 −2
Original line number Diff line number Diff line
@@ -198,8 +198,7 @@ extern int line6_send_sysex_message(struct usb_line6 *line6,
extern ssize_t line6_set_raw(struct device *dev, struct device_attribute *attr,
			     const char *buf, size_t count);
extern void line6_start_timer(struct timer_list *timer, unsigned long msecs,
			      void (*function)(unsigned long),
			      unsigned long data);
			      void (*function)(struct timer_list *t));
extern int line6_version_request_async(struct usb_line6 *line6);
extern int line6_write_data(struct usb_line6 *line6, unsigned address,
			    void *data, unsigned datalen);
+5 −6
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ static const char pod_version_header[] = {
};

/* forward declarations: */
static void pod_startup2(unsigned long data);
static void pod_startup2(struct timer_list *t);
static void pod_startup3(struct usb_line6_pod *pod);

static char *pod_alloc_sysex_buffer(struct usb_line6_pod *pod, int code,
@@ -286,13 +286,12 @@ static void pod_startup1(struct usb_line6_pod *pod)
	CHECK_STARTUP_PROGRESS(pod->startup_progress, POD_STARTUP_INIT);

	/* delay startup procedure: */
	line6_start_timer(&pod->startup_timer, POD_STARTUP_DELAY, pod_startup2,
			  (unsigned long)pod);
	line6_start_timer(&pod->startup_timer, POD_STARTUP_DELAY, pod_startup2);
}

static void pod_startup2(unsigned long data)
static void pod_startup2(struct timer_list *t)
{
	struct usb_line6_pod *pod = (struct usb_line6_pod *)data;
	struct usb_line6_pod *pod = from_timer(pod, t, startup_timer);
	struct usb_line6 *line6 = &pod->line6;

	CHECK_STARTUP_PROGRESS(pod->startup_progress, POD_STARTUP_VERSIONREQ);
@@ -413,7 +412,7 @@ static int pod_init(struct usb_line6 *line6,
	line6->process_message = line6_pod_process_message;
	line6->disconnect = line6_pod_disconnect;

	init_timer(&pod->startup_timer);
	timer_setup(&pod->startup_timer, NULL, 0);
	INIT_WORK(&pod->startup_work, pod_startup4);

	/* create sysfs entries: */
+5 −5
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ static struct line6_pcm_properties podx3_pcm_properties = {
};
static struct usb_driver podhd_driver;

static void podhd_startup_start_workqueue(unsigned long data);
static void podhd_startup_start_workqueue(struct timer_list *t);
static void podhd_startup_workqueue(struct work_struct *work);
static int podhd_startup_finalize(struct usb_line6_podhd *pod);

@@ -208,12 +208,12 @@ static void podhd_startup(struct usb_line6_podhd *pod)

	/* delay startup procedure: */
	line6_start_timer(&pod->startup_timer, PODHD_STARTUP_DELAY,
		podhd_startup_start_workqueue, (unsigned long)pod);
		podhd_startup_start_workqueue);
}

static void podhd_startup_start_workqueue(unsigned long data)
static void podhd_startup_start_workqueue(struct timer_list *t)
{
	struct usb_line6_podhd *pod = (struct usb_line6_podhd *)data;
	struct usb_line6_podhd *pod = from_timer(pod, t, startup_timer);

	CHECK_STARTUP_PROGRESS(pod->startup_progress,
		PODHD_STARTUP_SCHEDULE_WORKQUEUE);
@@ -319,7 +319,7 @@ static int podhd_init(struct usb_line6 *line6,

	line6->disconnect = podhd_disconnect;

	init_timer(&pod->startup_timer);
	timer_setup(&pod->startup_timer, NULL, 0);
	INIT_WORK(&pod->startup_work, podhd_startup_workqueue);

	if (pod->line6.properties->capabilities & LINE6_CAP_CONTROL) {
+3 −4
Original line number Diff line number Diff line
@@ -241,9 +241,9 @@ static int snd_toneport_source_put(struct snd_kcontrol *kcontrol,
	return 1;
}

static void toneport_start_pcm(unsigned long arg)
static void toneport_start_pcm(struct timer_list *t)
{
	struct usb_line6_toneport *toneport = (struct usb_line6_toneport *)arg;
	struct usb_line6_toneport *toneport = from_timer(toneport, t, timer);
	struct usb_line6 *line6 = &toneport->line6;

	line6_pcm_acquire(line6->line6pcm, LINE6_STREAM_MONITOR, true);
@@ -415,8 +415,7 @@ static int toneport_init(struct usb_line6 *line6,
	struct usb_line6_toneport *toneport =  (struct usb_line6_toneport *) line6;

	toneport->type = id->driver_info;
	setup_timer(&toneport->timer, toneport_start_pcm,
		    (unsigned long)toneport);
	timer_setup(&toneport->timer, toneport_start_pcm, 0);

	line6->disconnect = line6_toneport_disconnect;

Loading