Skip to content

Commit

Permalink
staging: line6: drop tuner_pitch sysfs attr
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stefan Hajnoczi authored and Greg Kroah-Hartman committed Nov 27, 2012
1 parent 5e275f4 commit 99c54e9
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 116 deletions.
102 changes: 1 addition & 101 deletions drivers/staging/line6/pod.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand Down Expand Up @@ -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));
Expand All @@ -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));
Expand Down Expand Up @@ -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);
Expand Down
15 changes: 0 additions & 15 deletions drivers/staging/line6/pod.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include <linux/interrupt.h>
#include <linux/spinlock.h>
#include <linux/usb.h>
#include <linux/wait.h>

#include <sound/core.h>

Expand Down Expand Up @@ -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
*/
Expand Down Expand Up @@ -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.
*/
Expand Down

0 comments on commit 99c54e9

Please sign in to comment.