Skip to content

Commit

Permalink
staging: line6: drop dump requests from pod startup
Browse files Browse the repository at this point in the history
The pod startup procedure dumps model data.  This is no longer useful
since the sysfs attrs which expose this information to userspace have
been removed.  The dump request wasn't been processed anymore.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Stefan Hajnoczi authored and Greg Kroah-Hartman committed Nov 27, 2012
1 parent 323246b commit 09fda10
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 47 deletions.
44 changes: 4 additions & 40 deletions drivers/staging/line6/pod.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,18 +111,13 @@ static struct line6_pcm_properties pod_pcm_properties = {
.bytes_per_frame = POD_BYTES_PER_FRAME
};

static const char pod_request_channel[] = {
0xf0, 0x00, 0x01, 0x0c, 0x03, 0x75, 0xf7
};

static const char pod_version_header[] = {
0xf2, 0x7e, 0x7f, 0x06, 0x02
};

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

static char *pod_alloc_sysex_buffer(struct usb_line6_pod *pod, int code,
int size)
Expand Down Expand Up @@ -157,17 +152,13 @@ void line6_pod_process_message(struct usb_line6_pod *pod)

case LINE6_PROGRAM_CHANGE | LINE6_CHANNEL_DEVICE:
case LINE6_PROGRAM_CHANGE | LINE6_CHANNEL_HOST:
line6_dump_request_async(&pod->dumpreq, &pod->line6, 0,
LINE6_DUMP_CURRENT);
break;

case LINE6_SYSEX_BEGIN | LINE6_CHANNEL_DEVICE:
case LINE6_SYSEX_BEGIN | LINE6_CHANNEL_UNKNOWN:
if (memcmp(buf + 1, line6_midi_id, sizeof(line6_midi_id)) == 0) {
switch (buf[5]) {
case POD_SYSEX_DUMP:
line6_dump_finished(&pod->dumpreq);
pod_startup3(pod);
break;

case POD_SYSEX_SYSTEM:{
Expand Down Expand Up @@ -208,7 +199,7 @@ void line6_pod_process_message(struct usb_line6_pod *pod)
pod->device_id =
((int)buf[8] << 16) | ((int)buf[9] << 8) | (int)
buf[10];
pod_startup4(pod);
pod_startup3(pod);
} else
dev_dbg(pod->line6.ifcdev, "unknown sysex header\n");

Expand Down Expand Up @@ -308,38 +299,22 @@ static void pod_startup1(struct usb_line6_pod *pod)
static void pod_startup2(unsigned long data)
{
struct usb_line6_pod *pod = (struct usb_line6_pod *)data;

/* schedule another startup procedure until startup is complete: */
if (pod->startup_progress >= POD_STARTUP_LAST)
return;

pod->startup_progress = POD_STARTUP_DUMPREQ;
line6_start_timer(&pod->startup_timer, POD_STARTUP_DELAY, pod_startup2,
(unsigned long)pod);

/* current channel dump: */
line6_dump_request_async(&pod->dumpreq, &pod->line6, 0,
LINE6_DUMP_CURRENT);
}

static void pod_startup3(struct usb_line6_pod *pod)
{
struct usb_line6 *line6 = &pod->line6;
CHECK_STARTUP_PROGRESS(pod->startup_progress, POD_STARTUP_VERSIONREQ);

/* request firmware version: */
line6_version_request_async(line6);
}

static void pod_startup4(struct usb_line6_pod *pod)
static void pod_startup3(struct usb_line6_pod *pod)
{
CHECK_STARTUP_PROGRESS(pod->startup_progress, POD_STARTUP_WORKQUEUE);

/* schedule work for global work queue: */
schedule_work(&pod->startup_work);
}

static void pod_startup5(struct work_struct *work)
static void pod_startup4(struct work_struct *work)
{
struct usb_line6_pod *pod =
container_of(work, struct usb_line6_pod, startup_work);
Expand Down Expand Up @@ -422,9 +397,6 @@ static void pod_destruct(struct usb_interface *interface)

del_timer(&pod->startup_timer);
cancel_work_sync(&pod->startup_work);

/* free dump request data: */
line6_dumpreq_destruct(&pod->dumpreq);
}

/*
Expand All @@ -450,19 +422,11 @@ static int pod_try_init(struct usb_interface *interface,
struct usb_line6 *line6 = &pod->line6;

init_timer(&pod->startup_timer);
INIT_WORK(&pod->startup_work, pod_startup5);
INIT_WORK(&pod->startup_work, pod_startup4);

if ((interface == NULL) || (pod == NULL))
return -ENODEV;

/* initialize USB buffers: */
err = line6_dumpreq_init(&pod->dumpreq, pod_request_channel,
sizeof(pod_request_channel));
if (err < 0) {
dev_err(&interface->dev, "Out of memory\n");
return -ENOMEM;
}

/* create sysfs entries: */
err = pod_create_files2(&interface->dev);
if (err < 0)
Expand Down
7 changes: 0 additions & 7 deletions drivers/staging/line6/pod.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
#include <sound/core.h>

#include "driver.h"
#include "dumprequest.h"

/*
PODxt Live interfaces
Expand All @@ -45,7 +44,6 @@
*/
enum {
POD_STARTUP_INIT = 1,
POD_STARTUP_DUMPREQ,
POD_STARTUP_VERSIONREQ,
POD_STARTUP_WORKQUEUE,
POD_STARTUP_SETUP,
Expand All @@ -58,11 +56,6 @@ struct usb_line6_pod {
*/
struct usb_line6 line6;

/**
Dump request structure.
*/
struct line6_dump_request dumpreq;

/**
Instrument monitor level.
*/
Expand Down

0 comments on commit 09fda10

Please sign in to comment.