Commit 0fdef36a authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Staging: line6: fix checkpatch errors in pod.c

2 errors left, but they are minor.
Lots of warnings also fixed up.

Cc: Markus Grabner <grabner@icg.tugraz.at>
Cc: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 010f378e
...@@ -113,7 +113,7 @@ static struct line6_pcm_properties pod_pcm_properties = { ...@@ -113,7 +113,7 @@ static struct line6_pcm_properties pod_pcm_properties = {
static const char pod_request_version[] = { 0xf0, 0x7e, 0x7f, 0x06, 0x01, 0xf7 }; static const char pod_request_version[] = { 0xf0, 0x7e, 0x7f, 0x06, 0x01, 0xf7 };
static const char pod_request_channel[] = { 0xf0, 0x00, 0x01, 0x0c, 0x03, 0x75, 0xf7 }; static const char pod_request_channel[] = { 0xf0, 0x00, 0x01, 0x0c, 0x03, 0x75, 0xf7 };
static const char pod_version_header [] = { 0xf2, 0x7e, 0x7f, 0x06, 0x02 }; static const char pod_version_header[] = { 0xf2, 0x7e, 0x7f, 0x06, 0x02 };
/* /*
...@@ -123,7 +123,7 @@ static void pod_mark_batch_all_dirty(struct usb_line6_pod *pod) ...@@ -123,7 +123,7 @@ static void pod_mark_batch_all_dirty(struct usb_line6_pod *pod)
{ {
int i; int i;
for(i = POD_CONTROL_SIZE; i--;) for (i = POD_CONTROL_SIZE; i--;)
set_bit(i, pod->param_dirty); set_bit(i, pod->param_dirty);
} }
...@@ -153,20 +153,19 @@ static void pod_startup_timeout(unsigned long arg) ...@@ -153,20 +153,19 @@ static void pod_startup_timeout(unsigned long arg)
int request = REQUEST_NONE; int request = REQUEST_NONE;
struct usb_line6_pod *pod = (struct usb_line6_pod *)arg; struct usb_line6_pod *pod = (struct usb_line6_pod *)arg;
if(pod->dumpreq.ok) { if (pod->dumpreq.ok) {
if(!pod->versionreq_ok) if (!pod->versionreq_ok)
request = REQUEST_VERSION; request = REQUEST_VERSION;
} } else {
else { if (pod->versionreq_ok)
if(pod->versionreq_ok)
request = REQUEST_DUMP; request = REQUEST_DUMP;
else if(pod->startup_count++ & 1) else if (pod->startup_count++ & 1)
request = REQUEST_DUMP; request = REQUEST_DUMP;
else else
request = REQUEST_VERSION; request = REQUEST_VERSION;
} }
switch(request) { switch (request) {
case REQUEST_DUMP: case REQUEST_DUMP:
line6_dump_request_async(&pod->dumpreq, &pod->line6, 0); line6_dump_request_async(&pod->dumpreq, &pod->line6, 0);
break; break;
...@@ -194,8 +193,11 @@ static void pod_dump(struct usb_line6_pod *pod, const unsigned char *data) ...@@ -194,8 +193,11 @@ static void pod_dump(struct usb_line6_pod *pod, const unsigned char *data)
{ {
int size = 1 + sizeof(pod->prog_data); int size = 1 + sizeof(pod->prog_data);
char *sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_DUMP, size); char *sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_DUMP, size);
if(!sysex) return; if (!sysex)
sysex[SYSEX_DATA_OFS] = 5; /* Don't know what this is good for, but PODxt Pro transmits it, so we also do... */ return;
/* Don't know what this is good for, but PODxt Pro transmits it, so we
* also do... */
sysex[SYSEX_DATA_OFS] = 5;
memcpy(sysex + SYSEX_DATA_OFS + 1, data, sizeof(pod->prog_data)); memcpy(sysex + SYSEX_DATA_OFS + 1, data, sizeof(pod->prog_data));
line6_send_sysex_message(&pod->line6, sysex, size); line6_send_sysex_message(&pod->line6, sysex, size);
memcpy(&pod->prog_data, data, sizeof(pod->prog_data)); memcpy(&pod->prog_data, data, sizeof(pod->prog_data));
...@@ -230,7 +232,7 @@ void pod_process_message(struct usb_line6_pod *pod) ...@@ -230,7 +232,7 @@ void pod_process_message(struct usb_line6_pod *pod)
const unsigned char *buf = pod->line6.buffer_message; const unsigned char *buf = pod->line6.buffer_message;
/* filter messages by type */ /* filter messages by type */
switch(buf[0] & 0xf0) { switch (buf[0] & 0xf0) {
case LINE6_PARAM_CHANGE: case LINE6_PARAM_CHANGE:
case LINE6_PROGRAM_CHANGE: case LINE6_PROGRAM_CHANGE:
case LINE6_SYSEX_BEGIN: case LINE6_SYSEX_BEGIN:
...@@ -241,13 +243,15 @@ void pod_process_message(struct usb_line6_pod *pod) ...@@ -241,13 +243,15 @@ void pod_process_message(struct usb_line6_pod *pod)
} }
/* process all remaining messages */ /* process all remaining messages */
switch(buf[0]) { switch (buf[0]) {
case LINE6_PARAM_CHANGE | LINE6_CHANNEL_DEVICE: case LINE6_PARAM_CHANGE | LINE6_CHANNEL_DEVICE:
pod_store_parameter(pod, buf[1], buf[2]); pod_store_parameter(pod, buf[1], buf[2]);
/* intentionally no break here! */ /* intentionally no break here! */
case LINE6_PARAM_CHANGE | LINE6_CHANNEL_HOST: case LINE6_PARAM_CHANGE | LINE6_CHANNEL_HOST:
if((buf[1] == POD_amp_model_setup) || (buf[1] == POD_effect_setup)) /* these also affect other settings */ if ((buf[1] == POD_amp_model_setup) ||
(buf[1] == POD_effect_setup))
/* these also affect other settings */
line6_dump_request_async(&pod->dumpreq, &pod->line6, 0); line6_dump_request_async(&pod->dumpreq, &pod->line6, 0);
break; break;
...@@ -262,11 +266,11 @@ void pod_process_message(struct usb_line6_pod *pod) ...@@ -262,11 +266,11 @@ void pod_process_message(struct usb_line6_pod *pod)
case LINE6_SYSEX_BEGIN | LINE6_CHANNEL_DEVICE: case LINE6_SYSEX_BEGIN | LINE6_CHANNEL_DEVICE:
case LINE6_SYSEX_BEGIN | LINE6_CHANNEL_UNKNOWN: case LINE6_SYSEX_BEGIN | LINE6_CHANNEL_UNKNOWN:
if(memcmp(buf + 1, line6_midi_id, sizeof(line6_midi_id)) == 0) { if (memcmp(buf + 1, line6_midi_id, sizeof(line6_midi_id)) == 0) {
switch(buf[5]) { switch (buf[5]) {
case POD_SYSEX_DUMP: case POD_SYSEX_DUMP:
if(pod->line6.message_length == sizeof(pod->prog_data) + 7) { if (pod->line6.message_length == sizeof(pod->prog_data) + 7) {
switch(pod->dumpreq.in_progress) { switch (pod->dumpreq.in_progress) {
case LINE6_DUMP_CURRENT: case LINE6_DUMP_CURRENT:
memcpy(&pod->prog_data, buf + 7, sizeof(pod->prog_data)); memcpy(&pod->prog_data, buf + 7, sizeof(pod->prog_data));
pod_mark_batch_all_dirty(pod); pod_mark_batch_all_dirty(pod);
...@@ -282,8 +286,7 @@ void pod_process_message(struct usb_line6_pod *pod) ...@@ -282,8 +286,7 @@ void pod_process_message(struct usb_line6_pod *pod)
} }
line6_dump_finished(&pod->dumpreq); line6_dump_finished(&pod->dumpreq);
} } else
else
DEBUG_MESSAGES(dev_err(pod->line6.ifcdev, "wrong size of channel dump message (%d instead of %d)\n", DEBUG_MESSAGES(dev_err(pod->line6.ifcdev, "wrong size of channel dump message (%d instead of %d)\n",
pod->line6.message_length, (int)sizeof(pod->prog_data) + 7)); pod->line6.message_length, (int)sizeof(pod->prog_data) + 7));
...@@ -298,7 +301,7 @@ void pod_process_message(struct usb_line6_pod *pod) ...@@ -298,7 +301,7 @@ void pod_process_message(struct usb_line6_pod *pod)
wake_up_interruptible(&pod->x.wait); \ wake_up_interruptible(&pod->x.wait); \
break; break;
switch(buf[6]) { switch (buf[6]) {
PROCESS_SYSTEM_PARAM(monitor_level); PROCESS_SYSTEM_PARAM(monitor_level);
PROCESS_SYSTEM_PARAM(routing); PROCESS_SYSTEM_PARAM(routing);
PROCESS_SYSTEM_PARAM(tuner_mute); PROCESS_SYSTEM_PARAM(tuner_mute);
...@@ -336,9 +339,8 @@ void pod_process_message(struct usb_line6_pod *pod) ...@@ -336,9 +339,8 @@ void pod_process_message(struct usb_line6_pod *pod)
default: default:
DEBUG_MESSAGES(dev_err(pod->line6.ifcdev, "unknown sysex message %02X\n", buf[5])); DEBUG_MESSAGES(dev_err(pod->line6.ifcdev, "unknown sysex message %02X\n", buf[5]));
} }
} } else if (memcmp(buf, pod_version_header, sizeof(pod_version_header)) == 0) {
else if(memcmp(buf, pod_version_header, sizeof(pod_version_header)) == 0) { if (pod->versionreq_ok == 0) {
if(pod->versionreq_ok == 0) {
pod->firmware_version = buf[13] * 100 + buf[14] * 10 + buf[15]; pod->firmware_version = buf[13] * 100 + buf[14] * 10 + buf[15];
pod->device_id = ((int)buf[8] << 16) | ((int)buf[9] << 8) | (int)buf[10]; pod->device_id = ((int)buf[8] << 16) | ((int)buf[9] << 8) | (int)buf[10];
pod->versionreq_ok = 1; pod->versionreq_ok = 1;
...@@ -347,11 +349,9 @@ void pod_process_message(struct usb_line6_pod *pod) ...@@ -347,11 +349,9 @@ void pod_process_message(struct usb_line6_pod *pod)
handler to create the special files: */ handler to create the special files: */
INIT_WORK(&pod->create_files_work, pod_create_files_work); INIT_WORK(&pod->create_files_work, pod_create_files_work);
queue_work(line6_workqueue, &pod->create_files_work); queue_work(line6_workqueue, &pod->create_files_work);
} } else
else
DEBUG_MESSAGES(dev_err(pod->line6.ifcdev, "multiple firmware version message\n")); DEBUG_MESSAGES(dev_err(pod->line6.ifcdev, "multiple firmware version message\n"));
} } else
else
DEBUG_MESSAGES(dev_err(pod->line6.ifcdev, "unknown sysex header\n")); DEBUG_MESSAGES(dev_err(pod->line6.ifcdev, "unknown sysex header\n"));
break; break;
...@@ -379,16 +379,15 @@ void pod_midi_postprocess(struct usb_line6_pod *pod, unsigned char *data, int le ...@@ -379,16 +379,15 @@ void pod_midi_postprocess(struct usb_line6_pod *pod, unsigned char *data, int le
{ {
int i; int i;
if(!pod->midi_postprocess) if (!pod->midi_postprocess)
return; return;
for(i = 0; i < length; ++i) { for (i = 0; i < length; ++i) {
if(data[i] == (LINE6_PROGRAM_CHANGE | LINE6_CHANNEL_HOST)) { if (data[i] == (LINE6_PROGRAM_CHANGE | LINE6_CHANNEL_HOST)) {
line6_invalidate_current(&pod->dumpreq); line6_invalidate_current(&pod->dumpreq);
break; break;
} } else if ((data[i] == (LINE6_PARAM_CHANGE | LINE6_CHANNEL_HOST)) && (i < length - 1))
else if((data[i] == (LINE6_PARAM_CHANGE | LINE6_CHANNEL_HOST)) && (i < length - 1)) if ((data[i + 1] == POD_amp_model_setup) || (data[i + 1] == POD_effect_setup)) {
if((data[i + 1] == POD_amp_model_setup) || (data[i + 1] == POD_effect_setup)) {
line6_invalidate_current(&pod->dumpreq); line6_invalidate_current(&pod->dumpreq);
break; break;
} }
...@@ -402,7 +401,7 @@ static void pod_send_channel(struct usb_line6_pod *pod, int value) ...@@ -402,7 +401,7 @@ static void pod_send_channel(struct usb_line6_pod *pod, int value)
{ {
line6_invalidate_current(&pod->dumpreq); line6_invalidate_current(&pod->dumpreq);
if(line6_send_program(&pod->line6, value) == 0) if (line6_send_program(&pod->line6, value) == 0)
pod->channel_num = value; pod->channel_num = value;
else else
line6_dump_finished(&pod->dumpreq); line6_dump_finished(&pod->dumpreq);
...@@ -413,10 +412,10 @@ static void pod_send_channel(struct usb_line6_pod *pod, int value) ...@@ -413,10 +412,10 @@ static void pod_send_channel(struct usb_line6_pod *pod, int value)
*/ */
void pod_transmit_parameter(struct usb_line6_pod *pod, int param, int value) void pod_transmit_parameter(struct usb_line6_pod *pod, int param, int value)
{ {
if(line6_transmit_parameter(&pod->line6, param, value) == 0) if (line6_transmit_parameter(&pod->line6, param, value) == 0)
pod_store_parameter(pod, param, value); pod_store_parameter(pod, param, value);
if((param == POD_amp_model_setup) || (param == POD_effect_setup)) /* these also affect other settings */ if ((param == POD_amp_model_setup) || (param == POD_effect_setup)) /* these also affect other settings */
line6_invalidate_current(&pod->dumpreq); line6_invalidate_current(&pod->dumpreq);
} }
...@@ -442,7 +441,8 @@ static ssize_t pod_send_store_command(struct device *dev, const char *buf, size_ ...@@ -442,7 +441,8 @@ static ssize_t pod_send_store_command(struct device *dev, const char *buf, size_
int size = 3 + sizeof(pod->prog_data_buf); int size = 3 + sizeof(pod->prog_data_buf);
char *sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_STORE, size); char *sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_STORE, size);
if(!sysex) return 0; if (!sysex)
return 0;
sysex[SYSEX_DATA_OFS] = 5; /* see pod_dump() */ sysex[SYSEX_DATA_OFS] = 5; /* see pod_dump() */
pod_resolve(buf, block0, block1, sysex + SYSEX_DATA_OFS + 1); pod_resolve(buf, block0, block1, sysex + SYSEX_DATA_OFS + 1);
...@@ -461,17 +461,18 @@ static ssize_t pod_send_retrieve_command(struct device *dev, const char *buf, si ...@@ -461,17 +461,18 @@ static ssize_t pod_send_retrieve_command(struct device *dev, const char *buf, si
{ {
struct usb_interface *interface = to_usb_interface(dev); struct usb_interface *interface = to_usb_interface(dev);
struct usb_line6_pod *pod = usb_get_intfdata(interface); struct usb_line6_pod *pod = usb_get_intfdata(interface);
int size = 4; int size = 4;
char *sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_DUMPMEM, size); char *sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_DUMPMEM, size);
if(!sysex) return 0;
if (!sysex)
return 0;
pod_resolve(buf, block0, block1, sysex + SYSEX_DATA_OFS); pod_resolve(buf, block0, block1, sysex + SYSEX_DATA_OFS);
sysex[SYSEX_DATA_OFS + 2] = 0; sysex[SYSEX_DATA_OFS + 2] = 0;
sysex[SYSEX_DATA_OFS + 3] = 0; sysex[SYSEX_DATA_OFS + 3] = 0;
line6_dump_started(&pod->dumpreq, POD_DUMP_MEMORY); line6_dump_started(&pod->dumpreq, POD_DUMP_MEMORY);
if(line6_send_sysex_message(&pod->line6, sysex, size) < size) if (line6_send_sysex_message(&pod->line6, sysex, size) < size)
line6_dump_finished(&pod->dumpreq); line6_dump_finished(&pod->dumpreq);
kfree(sysex); kfree(sysex);
...@@ -490,12 +491,15 @@ static ssize_t get_name_generic(struct usb_line6_pod *pod, const char *str, char ...@@ -490,12 +491,15 @@ static ssize_t get_name_generic(struct usb_line6_pod *pod, const char *str, char
char *last_non_space = buf; char *last_non_space = buf;
int retval = line6_wait_dump(&pod->dumpreq, 0); int retval = line6_wait_dump(&pod->dumpreq, 0);
if(retval < 0) return retval; if (retval < 0)
return retval;
for(p1 = str, p2 = buf; *p1; ++p1, ++p2) { for (p1 = str, p2 = buf; *p1; ++p1, ++p2) {
*p2 = *p1; *p2 = *p1;
if(*p2 != ' ') last_non_space = p2; if (*p2 != ' ')
if(++length == POD_NAME_LENGTH) break; last_non_space = p2;
if (++length == POD_NAME_LENGTH)
break;
} }
*(last_non_space + 1) = '\n'; *(last_non_space + 1) = '\n';
...@@ -558,7 +562,8 @@ static ssize_t pod_get_dump(struct device *dev, struct device_attribute *attr, ...@@ -558,7 +562,8 @@ static ssize_t pod_get_dump(struct device *dev, struct device_attribute *attr,
struct usb_interface *interface = to_usb_interface(dev); struct usb_interface *interface = to_usb_interface(dev);
struct usb_line6_pod *pod = usb_get_intfdata(interface); struct usb_line6_pod *pod = usb_get_intfdata(interface);
int retval = line6_wait_dump(&pod->dumpreq, 0); int retval = line6_wait_dump(&pod->dumpreq, 0);
if(retval < 0) return retval; if (retval < 0)
return retval;
memcpy(buf, &pod->prog_data, sizeof(pod->prog_data)); memcpy(buf, &pod->prog_data, sizeof(pod->prog_data));
return sizeof(pod->prog_data); return sizeof(pod->prog_data);
} }
...@@ -572,7 +577,7 @@ static ssize_t pod_set_dump(struct device *dev, struct device_attribute *attr, ...@@ -572,7 +577,7 @@ static ssize_t pod_set_dump(struct device *dev, struct device_attribute *attr,
struct usb_interface *interface = to_usb_interface(dev); struct usb_interface *interface = to_usb_interface(dev);
struct usb_line6_pod *pod = usb_get_intfdata(interface); struct usb_line6_pod *pod = usb_get_intfdata(interface);
if(count != sizeof(pod->prog_data)) { if (count != sizeof(pod->prog_data)) {
dev_err(pod->line6.ifcdev, dev_err(pod->line6.ifcdev,
"data block must be exactly %d bytes\n", "data block must be exactly %d bytes\n",
(int)sizeof(pod->prog_data)); (int)sizeof(pod->prog_data));
...@@ -595,13 +600,14 @@ static ssize_t pod_get_system_param(struct usb_line6_pod *pod, char *buf, int co ...@@ -595,13 +600,14 @@ static ssize_t pod_get_system_param(struct usb_line6_pod *pod, char *buf, int co
int retval = 0; int retval = 0;
DECLARE_WAITQUEUE(wait, current); DECLARE_WAITQUEUE(wait, current);
if(((pod->prog_data.control[POD_tuner] & 0x40) == 0) && tuner) if (((pod->prog_data.control[POD_tuner] & 0x40) == 0) && tuner)
return -ENODEV; return -ENODEV;
/* send value request to tuner: */ /* send value request to tuner: */
param->value = POD_system_invalid; param->value = POD_system_invalid;
sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_SYSTEMREQ, size); sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_SYSTEMREQ, size);
if(!sysex) return 0; if (!sysex)
return 0;
sysex[SYSEX_DATA_OFS] = code; sysex[SYSEX_DATA_OFS] = code;
line6_send_sysex_message(&pod->line6, sysex, size); line6_send_sysex_message(&pod->line6, sysex, size);
kfree(sysex); kfree(sysex);
...@@ -610,19 +616,18 @@ static ssize_t pod_get_system_param(struct usb_line6_pod *pod, char *buf, int co ...@@ -610,19 +616,18 @@ static ssize_t pod_get_system_param(struct usb_line6_pod *pod, char *buf, int co
add_wait_queue(&param->wait, &wait); add_wait_queue(&param->wait, &wait);
current->state = TASK_INTERRUPTIBLE; current->state = TASK_INTERRUPTIBLE;
while(param->value == POD_system_invalid) { while (param->value == POD_system_invalid) {
if(signal_pending(current)) { if (signal_pending(current)) {
retval = -ERESTARTSYS; retval = -ERESTARTSYS;
break; break;
} } else
else
schedule(); schedule();
} }
current->state = TASK_RUNNING; current->state = TASK_RUNNING;
remove_wait_queue(&param->wait, &wait); remove_wait_queue(&param->wait, &wait);
if(retval < 0) if (retval < 0)
return retval; return retval;
value = sign ? (int)(signed short)param->value : (int)(unsigned short)param->value; value = sign ? (int)(signed short)param->value : (int)(unsigned short)param->value;
...@@ -633,18 +638,21 @@ static ssize_t pod_get_system_param(struct usb_line6_pod *pod, char *buf, int co ...@@ -633,18 +638,21 @@ static ssize_t pod_get_system_param(struct usb_line6_pod *pod, char *buf, int co
Send system parameter. Send system parameter.
@param tuner non-zero, if code refers to a tuner parameter @param tuner non-zero, if code refers to a tuner parameter
*/ */
static ssize_t pod_set_system_param(struct usb_line6_pod *pod, const char *buf, int count, int code, unsigned short mask, int tuner) static ssize_t pod_set_system_param(struct usb_line6_pod *pod, const char *buf,
int count, int code, unsigned short mask,
int tuner)
{ {
char *sysex; char *sysex;
static const int size = 5; static const int size = 5;
unsigned short value; unsigned short value;
if(((pod->prog_data.control[POD_tuner] & 0x40) == 0) && tuner) if (((pod->prog_data.control[POD_tuner] & 0x40) == 0) && tuner)
return -EINVAL; return -EINVAL;
/* send value to tuner: */ /* send value to tuner: */
sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_SYSTEM, size); sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_SYSTEM, size);
if(!sysex) return 0; if (!sysex)
return 0;
value = simple_strtoul(buf, NULL, 10) & mask; value = simple_strtoul(buf, NULL, 10) & mask;
sysex[SYSEX_DATA_OFS] = code; sysex[SYSEX_DATA_OFS] = code;
sysex[SYSEX_DATA_OFS + 1] = (value >> 12) & 0x0f; sysex[SYSEX_DATA_OFS + 1] = (value >> 12) & 0x0f;
...@@ -665,7 +673,8 @@ static ssize_t pod_get_dump_buf(struct device *dev, ...@@ -665,7 +673,8 @@ static ssize_t pod_get_dump_buf(struct device *dev,
struct usb_interface *interface = to_usb_interface(dev); struct usb_interface *interface = to_usb_interface(dev);
struct usb_line6_pod *pod = usb_get_intfdata(interface); struct usb_line6_pod *pod = usb_get_intfdata(interface);
int retval = line6_wait_dump(&pod->dumpreq, 0); int retval = line6_wait_dump(&pod->dumpreq, 0);
if(retval < 0) return retval; if (retval < 0)
return retval;
memcpy(buf, &pod->prog_data_buf, sizeof(pod->prog_data_buf)); memcpy(buf, &pod->prog_data_buf, sizeof(pod->prog_data_buf));
return sizeof(pod->prog_data_buf); return sizeof(pod->prog_data_buf);
} }
...@@ -680,7 +689,7 @@ static ssize_t pod_set_dump_buf(struct device *dev, ...@@ -680,7 +689,7 @@ static ssize_t pod_set_dump_buf(struct device *dev,
struct usb_interface *interface = to_usb_interface(dev); struct usb_interface *interface = to_usb_interface(dev);
struct usb_line6_pod *pod = usb_get_intfdata(interface); struct usb_line6_pod *pod = usb_get_intfdata(interface);
if(count != sizeof(pod->prog_data)) { if (count != sizeof(pod->prog_data)) {
dev_err(pod->line6.ifcdev, dev_err(pod->line6.ifcdev,
"data block must be exactly %d bytes\n", "data block must be exactly %d bytes\n",
(int)sizeof(pod->prog_data)); (int)sizeof(pod->prog_data));
...@@ -702,7 +711,8 @@ static ssize_t pod_set_finish(struct device *dev, ...@@ -702,7 +711,8 @@ static ssize_t pod_set_finish(struct device *dev,
struct usb_line6_pod *pod = usb_get_intfdata(interface); struct usb_line6_pod *pod = usb_get_intfdata(interface);
int size = 0; int size = 0;
char *sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_FINISH, size); char *sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_FINISH, size);
if(!sysex) return 0; if (!sysex)
return 0;
line6_send_sysex_message(&pod->line6, sysex, size); line6_send_sysex_message(&pod->line6, sysex, size);
kfree(sysex); kfree(sysex);
return count; return count;
...@@ -827,7 +837,8 @@ static ssize_t pod_get_firmware_version(struct device *dev, ...@@ -827,7 +837,8 @@ static ssize_t pod_get_firmware_version(struct device *dev,
{ {
struct usb_interface *interface = to_usb_interface(dev); struct usb_interface *interface = to_usb_interface(dev);
struct usb_line6_pod *pod = usb_get_intfdata(interface); struct usb_line6_pod *pod = usb_get_intfdata(interface);
return sprintf(buf, "%d.%02d\n", pod->firmware_version / 100, pod->firmware_version % 100); return sprintf(buf, "%d.%02d\n", pod->firmware_version / 100,
pod->firmware_version % 100);
} }
/* /*
...@@ -855,12 +866,11 @@ static ssize_t pod_wait_for_clip(struct device *dev, ...@@ -855,12 +866,11 @@ static ssize_t pod_wait_for_clip(struct device *dev,
add_wait_queue(&pod->clipping.wait, &wait); add_wait_queue(&pod->clipping.wait, &wait);
current->state = TASK_INTERRUPTIBLE; current->state = TASK_INTERRUPTIBLE;
while(pod->clipping.value == 0) { while (pod->clipping.value == 0) {
if(signal_pending(current)) { if (signal_pending(current)) {
err = -ERESTARTSYS; err = -ERESTARTSYS;
break; break;
} } else
else
schedule(); schedule();
} }
...@@ -875,18 +885,20 @@ static ssize_t pod_get_ ## code(struct device *dev, \ ...@@ -875,18 +885,20 @@ static ssize_t pod_get_ ## code(struct device *dev, \
{ \ { \
struct usb_interface *interface = to_usb_interface(dev); \ struct usb_interface *interface = to_usb_interface(dev); \
struct usb_line6_pod *pod = usb_get_intfdata(interface); \ struct usb_line6_pod *pod = usb_get_intfdata(interface); \
return pod_get_system_param(pod, buf, POD_ ## code, &pod->code, tuner, sign); \ return pod_get_system_param(pod, buf, POD_ ## code, &pod->code, \
tuner, sign); \
} }
#define POD_GET_SET_SYSTEM_PARAM(code, mask, tuner, sign) \ #define POD_GET_SET_SYSTEM_PARAM(code, mask, tuner, sign) \
POD_GET_SYSTEM_PARAM(code, tuner, sign) \ POD_GET_SYSTEM_PARAM(code, tuner, sign) \
static ssize_t pod_set_ ## code(struct device *dev, \ static ssize_t pod_set_ ## code(struct device *dev, \
struct device_attribute *attr, const char *buf, \ struct device_attribute *attr, \
size_t count) \ const char *buf, size_t count) \
{ \ { \
struct usb_interface *interface = to_usb_interface(dev); \ struct usb_interface *interface = to_usb_interface(dev); \
struct usb_line6_pod *pod = usb_get_intfdata(interface); \ struct usb_line6_pod *pod = usb_get_intfdata(interface); \
return pod_set_system_param(pod, buf, count, POD_ ## code, mask, tuner); \ return pod_set_system_param(pod, buf, count, POD_ ## code, mask, \
tuner); \
} }
POD_GET_SET_SYSTEM_PARAM(monitor_level, 0xffff, 0, 0); POD_GET_SET_SYSTEM_PARAM(monitor_level, 0xffff, 0, 0);
...@@ -937,15 +949,17 @@ static void pod_destruct(struct usb_interface *interface) ...@@ -937,15 +949,17 @@ static void pod_destruct(struct usb_interface *interface)
struct usb_line6_pod *pod = usb_get_intfdata(interface); struct usb_line6_pod *pod = usb_get_intfdata(interface);
struct usb_line6 *line6; struct usb_line6 *line6;
if(pod == NULL) return; if (pod == NULL)
return;
line6 = &pod->line6; line6 = &pod->line6;
if(line6 == NULL) return; if (line6 == NULL)
return;
line6_cleanup_audio(line6); line6_cleanup_audio(line6);
/* free dump request data: */ /* free dump request data: */
line6_dumpreq_destruct(&pod->dumpreq); line6_dumpreq_destruct(&pod->dumpreq);
if(pod->buffer_versionreq) kfree(pod->buffer_versionreq); kfree(pod->buffer_versionreq);
} }
/* /*
...@@ -995,7 +1009,8 @@ int pod_init(struct usb_interface *interface, struct usb_line6_pod *pod) ...@@ -995,7 +1009,8 @@ int pod_init(struct usb_interface *interface, struct usb_line6_pod *pod)
int err; int err;
struct usb_line6 *line6 = &pod->line6; struct usb_line6 *line6 = &pod->line6;
if((interface == NULL) || (pod == NULL)) return -ENODEV; if ((interface == NULL) || (pod == NULL))
return -ENODEV;
pod->channel_num = 255; pod->channel_num = 255;
...@@ -1011,57 +1026,65 @@ int pod_init(struct usb_interface *interface, struct usb_line6_pod *pod) ...@@ -1011,57 +1026,65 @@ int pod_init(struct usb_interface *interface, struct usb_line6_pod *pod)
memset(pod->param_dirty, 0xff, sizeof(pod->param_dirty)); memset(pod->param_dirty, 0xff, sizeof(pod->param_dirty));
/* initialize USB buffers: */ /* initialize USB buffers: */
err = line6_dumpreq_init(&pod->dumpreq, pod_request_channel, sizeof(pod_request_channel)); err = line6_dumpreq_init(&pod->dumpreq, pod_request_channel,
sizeof(pod_request_channel));
if(err < 0) { if (err < 0) {
dev_err(&interface->dev, "Out of memory\n"); dev_err(&interface->dev, "Out of memory\n");
pod_destruct(interface); pod_destruct(interface);
return -ENOMEM; return -ENOMEM;
} }
pod->buffer_versionreq = kmalloc(sizeof(pod_request_version), GFP_KERNEL); pod->buffer_versionreq = kmalloc(sizeof(pod_request_version),
GFP_KERNEL);
if(pod->buffer_versionreq == NULL) { if (pod->buffer_versionreq == NULL) {
dev_err(&interface->dev, "Out of memory\n"); dev_err(&interface->dev, "Out of memory\n");
pod_destruct(interface); pod_destruct(interface);
return -ENOMEM; return -ENOMEM;
} }
memcpy(pod->buffer_versionreq, pod_request_version, sizeof(pod_request_version)); memcpy(pod->buffer_versionreq, pod_request_version,
sizeof(pod_request_version));
/* create sysfs entries: */ /* create sysfs entries: */
if((err = pod_create_files2(&interface->dev)) < 0) { err = pod_create_files2(&interface->dev);
if (err < 0) {
pod_destruct(interface); pod_destruct(interface);
return err; return err;
} }
/* initialize audio system: */ /* initialize audio system: */
if((err = line6_init_audio(line6)) < 0) { err = line6_init_audio(line6);
if (err < 0) {
pod_destruct(interface); pod_destruct(interface);
return err; return err;
} }
/* initialize MIDI subsystem: */ /* initialize MIDI subsystem: */
if((err = line6_init_midi(line6)) < 0) { err = line6_init_midi(line6);
if (err < 0) {
pod_destruct(interface); pod_destruct(interface);
return err; return err;
} }
/* initialize PCM subsystem: */ /* initialize PCM subsystem: */
if((err = line6_init_pcm(line6, &pod_pcm_properties)) < 0) { err = line6_init_pcm(line6, &pod_pcm_properties);
if (err < 0) {
pod_destruct(interface); pod_destruct(interface);
return err; return err;
} }
/* register audio system: */ /* register audio system: */
if((err = line6_register_audio(line6)) < 0) { err = line6_register_audio(line6);
if (err < 0) {
pod_destruct(interface); pod_destruct(interface);
return err; return err;
} }
if(pod->line6.properties->capabilities & LINE6_BIT_CONTROL) { if (pod->line6.properties->capabilities & LINE6_BIT_CONTROL) {
/* query some data: */ /* query some data: */
line6_startup_delayed(&pod->dumpreq, POD_STARTUP_DELAY, pod_startup_timeout, pod); line6_startup_delayed(&pod->dumpreq, POD_STARTUP_DELAY,
pod_startup_timeout, pod);
line6_read_serial_number(&pod->line6, &pod->serial_number); line6_read_serial_number(&pod->line6, &pod->serial_number);
} }
...@@ -1075,21 +1098,22 @@ void pod_disconnect(struct usb_interface *interface) ...@@ -1075,21 +1098,22 @@ void pod_disconnect(struct usb_interface *interface)
{ {
struct usb_line6_pod *pod; struct usb_line6_pod *pod;
if(interface == NULL) return; if (interface == NULL)
return;
pod = usb_get_intfdata(interface); pod = usb_get_intfdata(interface);
if(pod != NULL) { if (pod != NULL) {
struct snd_line6_pcm *line6pcm = pod->line6.line6pcm; struct snd_line6_pcm *line6pcm = pod->line6.line6pcm;
struct device *dev = &interface->dev; struct device *dev = &interface->dev;
if(line6pcm != NULL) { if (line6pcm != NULL) {
unlink_wait_clear_audio_out_urbs(line6pcm); unlink_wait_clear_audio_out_urbs(line6pcm);
unlink_wait_clear_audio_in_urbs(line6pcm); unlink_wait_clear_audio_in_urbs(line6pcm);
} }
if(dev != NULL) { if (dev != NULL) {
/* remove sysfs entries: */ /* remove sysfs entries: */
if(pod->versionreq_ok) if (pod->versionreq_ok)
pod_remove_files(pod->firmware_version, pod->line6.properties->device_bit, dev); pod_remove_files(pod->firmware_version, pod->line6.properties->device_bit, dev);
device_remove_file(dev, &dev_attr_channel); device_remove_file(dev, &dev_attr_channel);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment