struct scarlett2_ports ports[SCARLETT2_PORT_TYPE_COUNT];
};
-struct scarlett2_mixer_data {
+struct scarlett2_data {
struct usb_mixer_interface *mixer;
struct mutex usb_mutex; /* prevent sending concurrent USB requests */
struct mutex data_mutex; /* lock access to this data */
u8 data[];
};
-static void scarlett2_fill_request_header(struct scarlett2_mixer_data *private,
+static void scarlett2_fill_request_header(struct scarlett2_data *private,
struct scarlett2_usb_packet *req,
u32 cmd, u16 req_size)
{
struct usb_mixer_interface *mixer, u32 cmd,
void *req_data, u16 req_size, void *resp_data, u16 resp_size)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
u16 req_buf_size = sizeof(struct scarlett2_usb_packet) + req_size;
u16 resp_buf_size = sizeof(struct scarlett2_usb_packet) + resp_size;
struct scarlett2_usb_packet *req, *resp = NULL;
/* Delayed work to save config */
static void scarlett2_config_save_work(struct work_struct *work)
{
- struct scarlett2_mixer_data *private =
- container_of(work, struct scarlett2_mixer_data, work.work);
+ struct scarlett2_data *private =
+ container_of(work, struct scarlett2_data, work.work);
scarlett2_config_save(private->mixer);
}
} __packed req;
__le32 req2;
int err;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
/* Cancel any pending NVRAM save */
cancel_delayed_work_sync(&private->work);
static int scarlett2_usb_get_mix(struct usb_mixer_interface *mixer,
int mix_num)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
int num_mixer_in =
static int scarlett2_usb_set_mix(struct usb_mixer_interface *mixer,
int mix_num)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
struct {
}
/* Convert one mux entry from the interface and load into private->mux[] */
-static void scarlett2_usb_populate_mux(struct scarlett2_mixer_data *private,
+static void scarlett2_usb_populate_mux(struct scarlett2_data *private,
u32 mux_entry)
{
const struct scarlett2_device_info *info = private->info;
/* Send USB message to get mux inputs and then populate private->mux[] */
static int scarlett2_usb_get_mux(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
int count = private->num_mux_dsts;
int err, i;
/* Send USB messages to set mux inputs */
static int scarlett2_usb_set_mux(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
const struct scarlett2_ports *ports = info->ports;
int rate, port_dir_rate;
*/
static int scarlett2_update_volumes(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
const struct scarlett2_ports *ports = info->ports;
struct scarlett2_usb_volume_status volume_status;
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
if (private->vol_updated) {
mutex_lock(&private->data_mutex);
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
int index = elem->control;
if (private->vol_updated) {
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
int index = elem->control;
int oval, val, err = 0;
struct snd_ctl_elem_value *ucontrol)
{
struct usb_mixer_elem_info *elem = kctl->private_data;
- struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
+ struct scarlett2_data *private = elem->head.mixer->private_data;
ucontrol->value.enumerated.item[0] =
private->vol_sw_hw_switch[elem->control];
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
int index = elem->control;
int oval, val, err = 0;
struct snd_ctl_elem_value *ucontrol)
{
struct usb_mixer_elem_info *elem = kctl->private_data;
- struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
+ struct scarlett2_data *private = elem->head.mixer->private_data;
ucontrol->value.enumerated.item[0] =
private->level_switch[elem->control];
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
int index = elem->control;
int oval, val, err = 0;
struct snd_ctl_elem_value *ucontrol)
{
struct usb_mixer_elem_info *elem = kctl->private_data;
- struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
+ struct scarlett2_data *private = elem->head.mixer->private_data;
ucontrol->value.enumerated.item[0] =
private->pad_switch[elem->control];
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
int index = elem->control;
int oval, val, err = 0;
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
if (private->vol_updated) {
mutex_lock(&private->data_mutex);
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
int index = elem->control;
int oval, val, err = 0;
static int scarlett2_add_line_out_ctls(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
const struct scarlett2_ports *ports = info->ports;
int num_line_out =
static int scarlett2_add_line_in_ctls(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
int err, i;
char s[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
struct snd_ctl_elem_value *ucontrol)
{
struct usb_mixer_elem_info *elem = kctl->private_data;
- struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
+ struct scarlett2_data *private = elem->head.mixer->private_data;
ucontrol->value.integer.value[0] = private->mix[elem->control];
return 0;
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
const struct scarlett2_ports *ports = info->ports;
int oval, val, num_mixer_in, mix_num, err = 0;
static int scarlett2_add_mixer_ctls(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_ports *ports = private->info->ports;
int err, i, j;
int index;
struct snd_ctl_elem_info *uinfo)
{
struct usb_mixer_elem_info *elem = kctl->private_data;
- struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
+ struct scarlett2_data *private = elem->head.mixer->private_data;
const struct scarlett2_ports *ports = private->info->ports;
unsigned int item = uinfo->value.enumerated.item;
int items = private->num_mux_srcs;
struct snd_ctl_elem_value *ucontrol)
{
struct usb_mixer_elem_info *elem = kctl->private_data;
- struct scarlett2_mixer_data *private = elem->head.mixer->private_data;
+ struct scarlett2_data *private = elem->head.mixer->private_data;
ucontrol->value.enumerated.item[0] = private->mux[elem->control];
return 0;
{
struct usb_mixer_elem_info *elem = kctl->private_data;
struct usb_mixer_interface *mixer = elem->head.mixer;
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
int index = elem->control;
int oval, val, err = 0;
static int scarlett2_add_mux_enums(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_ports *ports = private->info->ports;
int port_type, channel, i;
static void scarlett2_private_free(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
cancel_delayed_work_sync(&private->work);
kfree(private);
static void scarlett2_private_suspend(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
if (cancel_delayed_work_sync(&private->work))
scarlett2_config_save(private->mixer);
/*** Initialisation ***/
-static void scarlett2_count_mux_io(struct scarlett2_mixer_data *private)
+static void scarlett2_count_mux_io(struct scarlett2_data *private)
{
const struct scarlett2_ports *ports = private->info->ports;
int port_type, srcs = 0, dsts = 0;
static int scarlett2_init_private(struct usb_mixer_interface *mixer,
const struct scarlett2_device_info *info)
{
- struct scarlett2_mixer_data *private =
- kzalloc(sizeof(struct scarlett2_mixer_data), GFP_KERNEL);
+ struct scarlett2_data *private =
+ kzalloc(sizeof(struct scarlett2_data), GFP_KERNEL);
if (!private)
return -ENOMEM;
/* Read configuration from the interface on start */
static int scarlett2_read_configs(struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
const struct scarlett2_ports *ports = info->ports;
int num_line_out =
static void scarlett2_notify_monitor(
struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_ports *ports = private->info->ports;
int num_line_out =
ports[SCARLETT2_PORT_TYPE_ANALOGUE].num[SCARLETT2_PORT_OUT];
static void scarlett2_notify_dim_mute(
struct usb_mixer_interface *mixer)
{
- struct scarlett2_mixer_data *private = mixer->private_data;
+ struct scarlett2_data *private = mixer->private_data;
const struct scarlett2_device_info *info = private->info;
int i;