staging: line6: drop tuner_pitch sysfs attr

Dropping this final tuner sysfs attr also leaves the
POD_GET_SYSTEM_PARAM() macro, pod_get_system_param_string(), and
pod_get_system_param_int() unused.  Remove them immediately to avoid
compiler warnings.

POD_monitor_level is now the only SYSEX value that needs to be watched
by the driver since the ALSA volume control should reflect the current
monitor volume level used by the device.  Therefore, drop the switch
statement entirely and just check for POD_monitor_level, ignoring
unknown system parameter changes.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Stefan Hajnoczi 2012-11-22 20:49:00 +01:00 committed by Greg Kroah-Hartman
parent 5e275f4586
commit 99c54e9830
2 changed files with 1 additions and 116 deletions

View File

@ -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);

View File

@ -15,7 +15,6 @@
#include <linux/interrupt.h>
#include <linux/spinlock.h>
#include <linux/usb.h>
#include <linux/wait.h>
#include <sound/core.h>
@ -53,15 +52,6 @@ enum {
POD_STARTUP_LAST = POD_STARTUP_SETUP - 1
};
/**
Data structure for values that need to be requested explicitly.
This is the case for system and tuner settings.
*/
struct ValueWait {
int value;
wait_queue_head_t wait;
};
/**
Binary PODxt Pro program dump
*/
@ -98,11 +88,6 @@ struct usb_line6_pod {
*/
struct pod_program prog_data_buf;
/**
Pitch value received from tuner.
*/
struct ValueWait tuner_pitch;
/**
Instrument monitor level.
*/