|
@@ -236,28 +236,8 @@ void line6_pod_process_message(struct usb_line6_pod *pod)
|
|
|
<< 8) |
|
|
|
((int)buf[9] << 4) | (int)buf[10];
|
|
|
|
|
|
-#define PROCESS_SYSTEM_PARAM(x) \
|
|
|
- case POD_ ## x: \
|
|
|
- pod->x.value = value; \
|
|
|
- wake_up(&pod->x.wait); \
|
|
|
- break;
|
|
|
-
|
|
|
- switch (buf[6]) {
|
|
|
- case POD_monitor_level:
|
|
|
+ if (buf[6] == POD_monitor_level)
|
|
|
pod->monitor_level = value;
|
|
|
- break;
|
|
|
-
|
|
|
- PROCESS_SYSTEM_PARAM
|
|
|
- (tuner_pitch);
|
|
|
-
|
|
|
-#undef PROCESS_SYSTEM_PARAM
|
|
|
-
|
|
|
- default:
|
|
|
- dev_dbg(pod->line6.ifcdev,
|
|
|
- "unknown tuner/system response %02X\n",
|
|
|
- buf[6]);
|
|
|
- }
|
|
|
-
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -362,66 +342,6 @@ static bool pod_is_tuner(int code)
|
|
|
(code == POD_tuner_note) || (code == POD_tuner_pitch);
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- Get system parameter (as integer).
|
|
|
- @param tuner non-zero, if code refers to a tuner parameter
|
|
|
-*/
|
|
|
-static int pod_get_system_param_int(struct usb_line6_pod *pod, int *value,
|
|
|
- int code, struct ValueWait *param, int sign)
|
|
|
-{
|
|
|
- char *sysex;
|
|
|
- static const int size = 1;
|
|
|
- int retval = 0;
|
|
|
-
|
|
|
- if (((pod->prog_data.control[POD_tuner] & 0x40) == 0)
|
|
|
- && pod_is_tuner(code))
|
|
|
- return -ENODEV;
|
|
|
-
|
|
|
- /* send value request to device: */
|
|
|
- param->value = POD_system_invalid;
|
|
|
- sysex = pod_alloc_sysex_buffer(pod, POD_SYSEX_SYSTEMREQ, size);
|
|
|
-
|
|
|
- if (!sysex)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- sysex[SYSEX_DATA_OFS] = code;
|
|
|
- line6_send_sysex_message(&pod->line6, sysex, size);
|
|
|
- kfree(sysex);
|
|
|
-
|
|
|
- /* wait for device to respond: */
|
|
|
- retval =
|
|
|
- wait_event_interruptible(param->wait,
|
|
|
- param->value != POD_system_invalid);
|
|
|
-
|
|
|
- if (retval < 0)
|
|
|
- return retval;
|
|
|
-
|
|
|
- *value = sign ? (int)(signed short)param->value : (int)(unsigned short)
|
|
|
- param->value;
|
|
|
-
|
|
|
- if (*value == POD_system_invalid)
|
|
|
- *value = 0; /* don't report uninitialized values */
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- Get system parameter (as string).
|
|
|
- @param tuner non-zero, if code refers to a tuner parameter
|
|
|
-*/
|
|
|
-static ssize_t pod_get_system_param_string(struct usb_line6_pod *pod, char *buf,
|
|
|
- int code, struct ValueWait *param,
|
|
|
- int sign)
|
|
|
-{
|
|
|
- int retval, value = 0;
|
|
|
- retval = pod_get_system_param_int(pod, &value, code, param, sign);
|
|
|
-
|
|
|
- if (retval < 0)
|
|
|
- return retval;
|
|
|
-
|
|
|
- return sprintf(buf, "%d\n", value);
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
Send system parameter (from integer).
|
|
|
@param tuner non-zero, if code refers to a tuner parameter
|
|
@@ -604,20 +524,6 @@ static void pod_startup5(struct work_struct *work)
|
|
|
line6->properties->device_bit, line6->ifcdev);
|
|
|
}
|
|
|
|
|
|
-#define POD_GET_SYSTEM_PARAM(code, sign) \
|
|
|
-static ssize_t pod_get_ ## code(struct device *dev, \
|
|
|
- struct device_attribute *attr, char *buf) \
|
|
|
-{ \
|
|
|
- struct usb_interface *interface = to_usb_interface(dev); \
|
|
|
- struct usb_line6_pod *pod = usb_get_intfdata(interface); \
|
|
|
- return pod_get_system_param_string(pod, buf, POD_ ## code, \
|
|
|
- &pod->code, sign); \
|
|
|
-}
|
|
|
-
|
|
|
-POD_GET_SYSTEM_PARAM(tuner_pitch, 1);
|
|
|
-
|
|
|
-#undef GET_SYSTEM_PARAM
|
|
|
-
|
|
|
/* POD special files: */
|
|
|
static DEVICE_ATTR(device_id, S_IRUGO, pod_get_device_id, line6_nop_write);
|
|
|
static DEVICE_ATTR(finish, S_IWUSR, line6_nop_read, pod_set_finish);
|
|
@@ -627,7 +533,6 @@ static DEVICE_ATTR(midi_postprocess, S_IWUSR | S_IRUGO,
|
|
|
pod_get_midi_postprocess, pod_set_midi_postprocess);
|
|
|
static DEVICE_ATTR(serial_number, S_IRUGO, pod_get_serial_number,
|
|
|
line6_nop_write);
|
|
|
-static DEVICE_ATTR(tuner_pitch, S_IRUGO, pod_get_tuner_pitch, line6_nop_write);
|
|
|
|
|
|
#ifdef CONFIG_LINE6_USB_RAW
|
|
|
static DEVICE_ATTR(raw, S_IWUSR, line6_nop_read, line6_set_raw);
|
|
@@ -711,7 +616,6 @@ static int pod_create_files2(struct device *dev)
|
|
|
CHECK_RETURN(device_create_file(dev, &dev_attr_firmware_version));
|
|
|
CHECK_RETURN(device_create_file(dev, &dev_attr_midi_postprocess));
|
|
|
CHECK_RETURN(device_create_file(dev, &dev_attr_serial_number));
|
|
|
- CHECK_RETURN(device_create_file(dev, &dev_attr_tuner_pitch));
|
|
|
|
|
|
#ifdef CONFIG_LINE6_USB_RAW
|
|
|
CHECK_RETURN(device_create_file(dev, &dev_attr_raw));
|
|
@@ -735,9 +639,6 @@ static int pod_try_init(struct usb_interface *interface,
|
|
|
if ((interface == NULL) || (pod == NULL))
|
|
|
return -ENODEV;
|
|
|
|
|
|
- /* initialize wait queues: */
|
|
|
- init_waitqueue_head(&pod->tuner_pitch.wait);
|
|
|
-
|
|
|
/* initialize USB buffers: */
|
|
|
err = line6_dumpreq_init(&pod->dumpreq, pod_request_channel,
|
|
|
sizeof(pod_request_channel));
|
|
@@ -830,7 +731,6 @@ void line6_pod_disconnect(struct usb_interface *interface)
|
|
|
device_remove_file(dev, &dev_attr_firmware_version);
|
|
|
device_remove_file(dev, &dev_attr_midi_postprocess);
|
|
|
device_remove_file(dev, &dev_attr_serial_number);
|
|
|
- device_remove_file(dev, &dev_attr_tuner_pitch);
|
|
|
|
|
|
#ifdef CONFIG_LINE6_USB_RAW
|
|
|
device_remove_file(dev, &dev_attr_raw);
|