Lines Matching full:private
1025 static void scarlett2_fill_request_header(struct scarlett2_data *private, in scarlett2_fill_request_header() argument
1030 u16 seq = private->scarlett2_seq++; in scarlett2_fill_request_header()
1062 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb() local
1081 mutex_lock(&private->usb_mutex); in scarlett2_usb()
1085 scarlett2_fill_request_header(private, req, cmd, req_size); in scarlett2_usb()
1090 err = scarlett2_usb_tx(dev, private->bInterfaceNumber, in scarlett2_usb()
1104 err = scarlett2_usb_rx(dev, private->bInterfaceNumber, in scarlett2_usb()
1147 mutex_unlock(&private->usb_mutex); in scarlett2_usb()
1175 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_config() local
1176 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_get_config()
1224 struct scarlett2_data *private = in scarlett2_config_save_work() local
1227 scarlett2_config_save(private->mixer); in scarlett2_config_save_work()
1235 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_config() local
1236 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_set_config()
1249 cancel_delayed_work_sync(&private->work); in scarlett2_usb_set_config()
1295 schedule_delayed_work(&private->work, msecs_to_jiffies(2000)); in scarlett2_usb_set_config()
1327 * and put the values into private->mix[]
1332 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_mix() local
1333 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_get_mix()
1363 private->mix[j] = k; in scarlett2_usb_get_mix()
1370 * (values obtained from private->mix[])
1375 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_mix() local
1376 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_set_mix()
1391 scarlett2_mixer_values[private->mix[j]] in scarlett2_usb_set_mix()
1439 /* Convert one mux entry from the interface and load into private->mux[] */
1440 static void scarlett2_usb_populate_mux(struct scarlett2_data *private, in scarlett2_usb_populate_mux() argument
1443 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_populate_mux()
1453 if (dst_idx >= private->num_mux_dsts) { in scarlett2_usb_populate_mux()
1454 usb_audio_err(private->mixer->chip, in scarlett2_usb_populate_mux()
1456 mux_entry, dst_idx, private->num_mux_dsts); in scarlett2_usb_populate_mux()
1465 if (src_idx >= private->num_mux_srcs) { in scarlett2_usb_populate_mux()
1466 usb_audio_err(private->mixer->chip, in scarlett2_usb_populate_mux()
1468 mux_entry, src_idx, private->num_mux_srcs); in scarlett2_usb_populate_mux()
1472 private->mux[dst_idx] = src_idx; in scarlett2_usb_populate_mux()
1475 /* Send USB message to get mux inputs and then populate private->mux[] */
1478 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_mux() local
1479 int count = private->num_mux_dsts; in scarlett2_usb_get_mux()
1489 private->mux_updated = 0; in scarlett2_usb_get_mux()
1501 scarlett2_usb_populate_mux(private, le32_to_cpu(data[i])); in scarlett2_usb_get_mux()
1509 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_mux() local
1510 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_set_mux()
1555 port_count, private->mux[mux_idx++]); in scarlett2_usb_set_mux()
1651 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_sync() local
1653 private->sync_updated = 0; in scarlett2_update_sync()
1654 return scarlett2_usb_get_sync_status(mixer, &private->sync); in scarlett2_update_sync()
1671 struct scarlett2_data *private = mixer->private_data; in scarlett2_sync_ctl_get() local
1673 mutex_lock(&private->data_mutex); in scarlett2_sync_ctl_get()
1674 if (private->sync_updated) in scarlett2_sync_ctl_get()
1676 ucontrol->value.enumerated.item[0] = private->sync; in scarlett2_sync_ctl_get()
1677 mutex_unlock(&private->data_mutex); in scarlett2_sync_ctl_get()
1692 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_sync_ctl() local
1695 if (!private->info->has_mixer) in scarlett2_add_sync_ctl()
1699 0, 1, "Sync Status", &private->sync_ctl); in scarlett2_add_sync_ctl()
1709 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_volumes() local
1710 const struct scarlett2_device_info *info = private->info; in scarlett2_update_volumes()
1718 private->vol_updated = 0; in scarlett2_update_volumes()
1724 private->master_vol = clamp( in scarlett2_update_volumes()
1730 private->dim_mute[i] = !!volume_status.dim_mute[i]; in scarlett2_update_volumes()
1732 mute = private->dim_mute[SCARLETT2_BUTTON_MUTE]; in scarlett2_update_volumes()
1735 if (private->vol_sw_hw_switch[i]) { in scarlett2_update_volumes()
1736 private->vol[i] = private->master_vol; in scarlett2_update_volumes()
1737 private->mute_switch[i] = mute; in scarlett2_update_volumes()
1761 struct scarlett2_data *private = mixer->private_data; in scarlett2_master_volume_ctl_get() local
1763 mutex_lock(&private->data_mutex); in scarlett2_master_volume_ctl_get()
1764 if (private->vol_updated) in scarlett2_master_volume_ctl_get()
1766 mutex_unlock(&private->data_mutex); in scarlett2_master_volume_ctl_get()
1768 ucontrol->value.integer.value[0] = private->master_vol; in scarlett2_master_volume_ctl_get()
1772 static int line_out_remap(struct scarlett2_data *private, int index) in line_out_remap() argument
1774 const struct scarlett2_device_info *info = private->info; in line_out_remap()
1786 struct scarlett2_data *private = mixer->private_data; in scarlett2_volume_ctl_get() local
1787 int index = line_out_remap(private, elem->control); in scarlett2_volume_ctl_get()
1789 mutex_lock(&private->data_mutex); in scarlett2_volume_ctl_get()
1790 if (private->vol_updated) in scarlett2_volume_ctl_get()
1792 mutex_unlock(&private->data_mutex); in scarlett2_volume_ctl_get()
1794 ucontrol->value.integer.value[0] = private->vol[index]; in scarlett2_volume_ctl_get()
1803 struct scarlett2_data *private = mixer->private_data; in scarlett2_volume_ctl_put() local
1804 int index = line_out_remap(private, elem->control); in scarlett2_volume_ctl_put()
1807 mutex_lock(&private->data_mutex); in scarlett2_volume_ctl_put()
1809 oval = private->vol[index]; in scarlett2_volume_ctl_put()
1815 private->vol[index] = val; in scarlett2_volume_ctl_put()
1822 mutex_unlock(&private->data_mutex); in scarlett2_volume_ctl_put()
1860 struct scarlett2_data *private = mixer->private_data; in scarlett2_mute_ctl_get() local
1861 int index = line_out_remap(private, elem->control); in scarlett2_mute_ctl_get()
1863 mutex_lock(&private->data_mutex); in scarlett2_mute_ctl_get()
1864 if (private->vol_updated) in scarlett2_mute_ctl_get()
1866 mutex_unlock(&private->data_mutex); in scarlett2_mute_ctl_get()
1868 ucontrol->value.integer.value[0] = private->mute_switch[index]; in scarlett2_mute_ctl_get()
1877 struct scarlett2_data *private = mixer->private_data; in scarlett2_mute_ctl_put() local
1878 int index = line_out_remap(private, elem->control); in scarlett2_mute_ctl_put()
1881 mutex_lock(&private->data_mutex); in scarlett2_mute_ctl_put()
1883 oval = private->mute_switch[index]; in scarlett2_mute_ctl_put()
1889 private->mute_switch[index] = val; in scarlett2_mute_ctl_put()
1898 mutex_unlock(&private->data_mutex); in scarlett2_mute_ctl_put()
1912 static void scarlett2_sw_hw_ctl_ro(struct scarlett2_data *private, int index) in scarlett2_sw_hw_ctl_ro() argument
1914 private->sw_hw_ctls[index]->vd[0].access &= in scarlett2_sw_hw_ctl_ro()
1918 static void scarlett2_sw_hw_ctl_rw(struct scarlett2_data *private, int index) in scarlett2_sw_hw_ctl_rw() argument
1920 private->sw_hw_ctls[index]->vd[0].access |= in scarlett2_sw_hw_ctl_rw()
1938 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_sw_hw_enum_ctl_get() local
1939 int index = line_out_remap(private, elem->control); in scarlett2_sw_hw_enum_ctl_get()
1941 ucontrol->value.enumerated.item[0] = private->vol_sw_hw_switch[index]; in scarlett2_sw_hw_enum_ctl_get()
1948 struct scarlett2_data *private = mixer->private_data; in scarlett2_vol_ctl_set_writable() local
1953 private->vol_ctls[index]->vd[0].access |= in scarlett2_vol_ctl_set_writable()
1955 private->mute_ctls[index]->vd[0].access |= in scarlett2_vol_ctl_set_writable()
1958 private->vol_ctls[index]->vd[0].access &= in scarlett2_vol_ctl_set_writable()
1960 private->mute_ctls[index]->vd[0].access &= in scarlett2_vol_ctl_set_writable()
1967 &private->vol_ctls[index]->id); in scarlett2_vol_ctl_set_writable()
1970 &private->mute_ctls[index]->id); in scarlett2_vol_ctl_set_writable()
1976 struct scarlett2_data *private = mixer->private_data; in scarlett2_sw_hw_change() local
1977 int index = line_out_remap(private, ctl_index); in scarlett2_sw_hw_change()
1980 private->vol_sw_hw_switch[index] = val; in scarlett2_sw_hw_change()
1988 private->vol[index] = private->master_vol; in scarlett2_sw_hw_change()
1989 private->mute_switch[index] = private->dim_mute[SCARLETT2_BUTTON_MUTE]; in scarlett2_sw_hw_change()
1994 index, private->master_vol - SCARLETT2_VOLUME_BIAS); in scarlett2_sw_hw_change()
2001 index, private->dim_mute[SCARLETT2_BUTTON_MUTE]); in scarlett2_sw_hw_change()
2015 struct scarlett2_data *private = mixer->private_data; in scarlett2_sw_hw_enum_ctl_put() local
2017 int index = line_out_remap(private, ctl_index); in scarlett2_sw_hw_enum_ctl_put()
2020 mutex_lock(&private->data_mutex); in scarlett2_sw_hw_enum_ctl_put()
2022 oval = private->vol_sw_hw_switch[index]; in scarlett2_sw_hw_enum_ctl_put()
2033 mutex_unlock(&private->data_mutex); in scarlett2_sw_hw_enum_ctl_put()
2049 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_input_other() local
2050 const struct scarlett2_device_info *info = private->info; in scarlett2_update_input_other()
2052 private->input_other_updated = 0; in scarlett2_update_input_other()
2058 private->level_switch); in scarlett2_update_input_other()
2066 info->pad_input_count, private->pad_switch); in scarlett2_update_input_other()
2074 info->air_input_count, private->air_switch); in scarlett2_update_input_other()
2082 info->phantom_count, private->phantom_switch); in scarlett2_update_input_other()
2088 1, &private->phantom_persistence); in scarlett2_update_input_other()
2111 struct scarlett2_data *private = mixer->private_data; in scarlett2_level_enum_ctl_get() local
2112 const struct scarlett2_device_info *info = private->info; in scarlett2_level_enum_ctl_get()
2116 mutex_lock(&private->data_mutex); in scarlett2_level_enum_ctl_get()
2117 if (private->input_other_updated) in scarlett2_level_enum_ctl_get()
2119 ucontrol->value.enumerated.item[0] = private->level_switch[index]; in scarlett2_level_enum_ctl_get()
2120 mutex_unlock(&private->data_mutex); in scarlett2_level_enum_ctl_get()
2130 struct scarlett2_data *private = mixer->private_data; in scarlett2_level_enum_ctl_put() local
2131 const struct scarlett2_device_info *info = private->info; in scarlett2_level_enum_ctl_put()
2136 mutex_lock(&private->data_mutex); in scarlett2_level_enum_ctl_put()
2138 oval = private->level_switch[index]; in scarlett2_level_enum_ctl_put()
2144 private->level_switch[index] = val; in scarlett2_level_enum_ctl_put()
2153 mutex_unlock(&private->data_mutex); in scarlett2_level_enum_ctl_put()
2172 struct scarlett2_data *private = mixer->private_data; in scarlett2_pad_ctl_get() local
2174 mutex_lock(&private->data_mutex); in scarlett2_pad_ctl_get()
2175 if (private->input_other_updated) in scarlett2_pad_ctl_get()
2178 private->pad_switch[elem->control]; in scarlett2_pad_ctl_get()
2179 mutex_unlock(&private->data_mutex); in scarlett2_pad_ctl_get()
2189 struct scarlett2_data *private = mixer->private_data; in scarlett2_pad_ctl_put() local
2194 mutex_lock(&private->data_mutex); in scarlett2_pad_ctl_put()
2196 oval = private->pad_switch[index]; in scarlett2_pad_ctl_put()
2202 private->pad_switch[index] = val; in scarlett2_pad_ctl_put()
2211 mutex_unlock(&private->data_mutex); in scarlett2_pad_ctl_put()
2230 struct scarlett2_data *private = mixer->private_data; in scarlett2_air_ctl_get() local
2232 mutex_lock(&private->data_mutex); in scarlett2_air_ctl_get()
2233 if (private->input_other_updated) in scarlett2_air_ctl_get()
2235 ucontrol->value.integer.value[0] = private->air_switch[elem->control]; in scarlett2_air_ctl_get()
2236 mutex_unlock(&private->data_mutex); in scarlett2_air_ctl_get()
2246 struct scarlett2_data *private = mixer->private_data; in scarlett2_air_ctl_put() local
2251 mutex_lock(&private->data_mutex); in scarlett2_air_ctl_put()
2253 oval = private->air_switch[index]; in scarlett2_air_ctl_put()
2259 private->air_switch[index] = val; in scarlett2_air_ctl_put()
2268 mutex_unlock(&private->data_mutex); in scarlett2_air_ctl_put()
2287 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_ctl_get() local
2289 mutex_lock(&private->data_mutex); in scarlett2_phantom_ctl_get()
2290 if (private->input_other_updated) in scarlett2_phantom_ctl_get()
2293 private->phantom_switch[elem->control]; in scarlett2_phantom_ctl_get()
2294 mutex_unlock(&private->data_mutex); in scarlett2_phantom_ctl_get()
2304 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_ctl_put() local
2309 mutex_lock(&private->data_mutex); in scarlett2_phantom_ctl_put()
2311 oval = private->phantom_switch[index]; in scarlett2_phantom_ctl_put()
2317 private->phantom_switch[index] = val; in scarlett2_phantom_ctl_put()
2326 mutex_unlock(&private->data_mutex); in scarlett2_phantom_ctl_put()
2344 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_phantom_persistence_ctl_get() local
2346 ucontrol->value.integer.value[0] = private->phantom_persistence; in scarlett2_phantom_persistence_ctl_get()
2355 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_persistence_ctl_put() local
2360 mutex_lock(&private->data_mutex); in scarlett2_phantom_persistence_ctl_put()
2362 oval = private->phantom_persistence; in scarlett2_phantom_persistence_ctl_put()
2368 private->phantom_persistence = val; in scarlett2_phantom_persistence_ctl_put()
2377 mutex_unlock(&private->data_mutex); in scarlett2_phantom_persistence_ctl_put()
2393 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_monitor_other() local
2394 const struct scarlett2_device_info *info = private->info; in scarlett2_update_monitor_other()
2407 private->monitor_other_updated = 0; in scarlett2_update_monitor_other()
2412 1, &private->direct_monitor_switch); in scarlett2_update_monitor_other()
2433 private->speaker_switching_switch = 0; in scarlett2_update_monitor_other()
2435 private->speaker_switching_switch = monitor_other_switch[0] + 1; in scarlett2_update_monitor_other()
2446 private->talkback_switch = 0; in scarlett2_update_monitor_other()
2448 private->talkback_switch = monitor_other_switch[1] + 1; in scarlett2_update_monitor_other()
2456 private->talkback_map[i] = bitmap & 1; in scarlett2_update_monitor_other()
2467 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_direct_monitor_ctl_get() local
2469 mutex_lock(&private->data_mutex); in scarlett2_direct_monitor_ctl_get()
2470 if (private->monitor_other_updated) in scarlett2_direct_monitor_ctl_get()
2472 ucontrol->value.enumerated.item[0] = private->direct_monitor_switch; in scarlett2_direct_monitor_ctl_get()
2473 mutex_unlock(&private->data_mutex); in scarlett2_direct_monitor_ctl_get()
2483 struct scarlett2_data *private = mixer->private_data; in scarlett2_direct_monitor_ctl_put() local
2488 mutex_lock(&private->data_mutex); in scarlett2_direct_monitor_ctl_put()
2490 oval = private->direct_monitor_switch; in scarlett2_direct_monitor_ctl_put()
2496 private->direct_monitor_switch = val; in scarlett2_direct_monitor_ctl_put()
2505 mutex_unlock(&private->data_mutex); in scarlett2_direct_monitor_ctl_put()
2541 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_direct_monitor_ctl() local
2542 const struct scarlett2_device_info *info = private->info; in scarlett2_add_direct_monitor_ctl()
2554 0, 1, s, &private->direct_monitor_ctl); in scarlett2_add_direct_monitor_ctl()
2574 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enum_ctl_get() local
2576 mutex_lock(&private->data_mutex); in scarlett2_speaker_switch_enum_ctl_get()
2577 if (private->monitor_other_updated) in scarlett2_speaker_switch_enum_ctl_get()
2579 ucontrol->value.enumerated.item[0] = private->speaker_switching_switch; in scarlett2_speaker_switch_enum_ctl_get()
2580 mutex_unlock(&private->data_mutex); in scarlett2_speaker_switch_enum_ctl_get()
2591 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enable() local
2595 int index = line_out_remap(private, i); in scarlett2_speaker_switch_enable()
2598 if (!private->vol_sw_hw_switch[index]) { in scarlett2_speaker_switch_enable()
2599 err = scarlett2_sw_hw_change(private->mixer, i, 1); in scarlett2_speaker_switch_enable()
2605 scarlett2_sw_hw_ctl_ro(private, i); in scarlett2_speaker_switch_enable()
2609 &private->sw_hw_ctls[i]->id); in scarlett2_speaker_switch_enable()
2615 private->speaker_switching_switched = 1; in scarlett2_speaker_switch_enable()
2626 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_disable() local
2631 scarlett2_sw_hw_ctl_rw(private, i); in scarlett2_speaker_switch_disable()
2633 &private->sw_hw_ctls[i]->id); in scarlett2_speaker_switch_disable()
2639 private->speaker_switching_switched = 1; in scarlett2_speaker_switch_disable()
2647 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enum_ctl_put() local
2651 mutex_lock(&private->data_mutex); in scarlett2_speaker_switch_enum_ctl_put()
2653 oval = private->speaker_switching_switch; in scarlett2_speaker_switch_enum_ctl_put()
2659 private->speaker_switching_switch = val; in scarlett2_speaker_switch_enum_ctl_put()
2685 mutex_unlock(&private->data_mutex); in scarlett2_speaker_switch_enum_ctl_put()
2700 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_speaker_switch_ctl() local
2701 const struct scarlett2_device_info *info = private->info; in scarlett2_add_speaker_switch_ctl()
2709 &private->speaker_switching_ctl); in scarlett2_add_speaker_switch_ctl()
2729 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_enum_ctl_get() local
2731 mutex_lock(&private->data_mutex); in scarlett2_talkback_enum_ctl_get()
2732 if (private->monitor_other_updated) in scarlett2_talkback_enum_ctl_get()
2734 ucontrol->value.enumerated.item[0] = private->talkback_switch; in scarlett2_talkback_enum_ctl_get()
2735 mutex_unlock(&private->data_mutex); in scarlett2_talkback_enum_ctl_get()
2745 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_enum_ctl_put() local
2749 mutex_lock(&private->data_mutex); in scarlett2_talkback_enum_ctl_put()
2751 oval = private->talkback_switch; in scarlett2_talkback_enum_ctl_put()
2757 private->talkback_switch = val; in scarlett2_talkback_enum_ctl_put()
2774 mutex_unlock(&private->data_mutex); in scarlett2_talkback_enum_ctl_put()
2791 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_map_ctl_get() local
2794 ucontrol->value.integer.value[0] = private->talkback_map[index]; in scarlett2_talkback_map_ctl_get()
2804 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_map_ctl_put() local
2806 private->info->port_count; in scarlett2_talkback_map_ctl_put()
2813 mutex_lock(&private->data_mutex); in scarlett2_talkback_map_ctl_put()
2815 oval = private->talkback_map[index]; in scarlett2_talkback_map_ctl_put()
2821 private->talkback_map[index] = val; in scarlett2_talkback_map_ctl_put()
2824 bitmap |= private->talkback_map[i] << i; in scarlett2_talkback_map_ctl_put()
2833 mutex_unlock(&private->data_mutex); in scarlett2_talkback_map_ctl_put()
2848 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_talkback_ctls() local
2849 const struct scarlett2_device_info *info = private->info; in scarlett2_add_talkback_ctls()
2861 &private->talkback_ctl); in scarlett2_add_talkback_ctls()
2884 struct scarlett2_data *private = mixer->private_data; in scarlett2_dim_mute_ctl_get() local
2886 mutex_lock(&private->data_mutex); in scarlett2_dim_mute_ctl_get()
2887 if (private->vol_updated) in scarlett2_dim_mute_ctl_get()
2889 mutex_unlock(&private->data_mutex); in scarlett2_dim_mute_ctl_get()
2891 ucontrol->value.integer.value[0] = private->dim_mute[elem->control]; in scarlett2_dim_mute_ctl_get()
2900 struct scarlett2_data *private = mixer->private_data; in scarlett2_dim_mute_ctl_put() local
2901 const struct scarlett2_device_info *info = private->info; in scarlett2_dim_mute_ctl_put()
2909 mutex_lock(&private->data_mutex); in scarlett2_dim_mute_ctl_put()
2911 oval = private->dim_mute[index]; in scarlett2_dim_mute_ctl_put()
2917 private->dim_mute[index] = val; in scarlett2_dim_mute_ctl_put()
2927 int line_index = line_out_remap(private, i); in scarlett2_dim_mute_ctl_put()
2929 if (private->vol_sw_hw_switch[line_index]) { in scarlett2_dim_mute_ctl_put()
2930 private->mute_switch[line_index] = val; in scarlett2_dim_mute_ctl_put()
2933 &private->mute_ctls[i]->id); in scarlett2_dim_mute_ctl_put()
2938 mutex_unlock(&private->data_mutex); in scarlett2_dim_mute_ctl_put()
2954 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_line_out_ctls() local
2955 const struct scarlett2_device_info *info = private->info; in scarlett2_add_line_out_ctls()
2967 0, 1, s, &private->master_vol_ctl); in scarlett2_add_line_out_ctls()
2974 int index = line_out_remap(private, i); in scarlett2_add_line_out_ctls()
2987 i, 1, s, &private->vol_ctls[i]); in scarlett2_add_line_out_ctls()
2998 &private->mute_ctls[i]); in scarlett2_add_line_out_ctls()
3005 if (private->vol_sw_hw_switch[index]) in scarlett2_add_line_out_ctls()
3016 &private->sw_hw_ctls[i]); in scarlett2_add_line_out_ctls()
3023 if (private->speaker_switching_switch && i < 4) in scarlett2_add_line_out_ctls()
3024 scarlett2_sw_hw_ctl_ro(private, i); in scarlett2_add_line_out_ctls()
3034 &private->dim_mute_ctls[i]); in scarlett2_add_line_out_ctls()
3046 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_line_in_ctls() local
3047 const struct scarlett2_device_info *info = private->info; in scarlett2_add_line_in_ctls()
3058 i, 1, s, &private->level_ctls[i]); in scarlett2_add_line_in_ctls()
3067 i, 1, s, &private->pad_ctls[i]); in scarlett2_add_line_in_ctls()
3076 i, 1, s, &private->air_ctls[i]); in scarlett2_add_line_in_ctls()
3088 i, 1, s, &private->phantom_ctls[i]); in scarlett2_add_line_in_ctls()
3101 i, 1, s, &private->phantom_ctls[i]); in scarlett2_add_line_in_ctls()
3136 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_mixer_ctl_get() local
3138 ucontrol->value.integer.value[0] = private->mix[elem->control]; in scarlett2_mixer_ctl_get()
3147 struct scarlett2_data *private = mixer->private_data; in scarlett2_mixer_ctl_put() local
3148 const struct scarlett2_device_info *info = private->info; in scarlett2_mixer_ctl_put()
3153 mutex_lock(&private->data_mutex); in scarlett2_mixer_ctl_put()
3155 oval = private->mix[index]; in scarlett2_mixer_ctl_put()
3163 private->mix[index] = val; in scarlett2_mixer_ctl_put()
3169 mutex_unlock(&private->data_mutex); in scarlett2_mixer_ctl_put()
3193 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_mixer_ctls() local
3194 const struct scarlett2_device_info *info = private->info; in scarlett2_add_mixer_ctls()
3225 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_mux_src_enum_ctl_info() local
3226 const struct scarlett2_device_info *info = private->info; in scarlett2_mux_src_enum_ctl_info()
3229 int items = private->num_mux_srcs; in scarlett2_mux_src_enum_ctl_info()
3261 struct scarlett2_data *private = mixer->private_data; in scarlett2_mux_src_enum_ctl_get() local
3262 const struct scarlett2_device_info *info = private->info; in scarlett2_mux_src_enum_ctl_get()
3269 index = line_out_remap(private, index); in scarlett2_mux_src_enum_ctl_get()
3271 mutex_lock(&private->data_mutex); in scarlett2_mux_src_enum_ctl_get()
3272 if (private->mux_updated) in scarlett2_mux_src_enum_ctl_get()
3274 ucontrol->value.enumerated.item[0] = private->mux[index]; in scarlett2_mux_src_enum_ctl_get()
3275 mutex_unlock(&private->data_mutex); in scarlett2_mux_src_enum_ctl_get()
3285 struct scarlett2_data *private = mixer->private_data; in scarlett2_mux_src_enum_ctl_put() local
3286 const struct scarlett2_device_info *info = private->info; in scarlett2_mux_src_enum_ctl_put()
3294 index = line_out_remap(private, index); in scarlett2_mux_src_enum_ctl_put()
3296 mutex_lock(&private->data_mutex); in scarlett2_mux_src_enum_ctl_put()
3298 oval = private->mux[index]; in scarlett2_mux_src_enum_ctl_put()
3300 private->num_mux_srcs - 1U); in scarlett2_mux_src_enum_ctl_put()
3305 private->mux[index] = val; in scarlett2_mux_src_enum_ctl_put()
3311 mutex_unlock(&private->data_mutex); in scarlett2_mux_src_enum_ctl_put()
3325 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_mux_enums() local
3326 const struct scarlett2_device_info *info = private->info; in scarlett2_add_mux_enums()
3347 &private->mux_ctls[i]); in scarlett2_add_mux_enums()
3399 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_meter_ctl() local
3402 if (!private->info->has_mixer) in scarlett2_add_meter_ctl()
3406 0, private->num_mux_dsts, in scarlett2_add_meter_ctl()
3416 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_msd_ctl_get() local
3418 ucontrol->value.integer.value[0] = private->msd_switch; in scarlett2_msd_ctl_get()
3427 struct scarlett2_data *private = mixer->private_data; in scarlett2_msd_ctl_put() local
3431 mutex_lock(&private->data_mutex); in scarlett2_msd_ctl_put()
3433 oval = private->msd_switch; in scarlett2_msd_ctl_put()
3439 private->msd_switch = val; in scarlett2_msd_ctl_put()
3448 mutex_unlock(&private->data_mutex); in scarlett2_msd_ctl_put()
3462 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_msd_ctl() local
3463 const struct scarlett2_device_info *info = private->info; in scarlett2_add_msd_ctl()
3469 if (!private->msd_switch && !(mixer->chip->setup & SCARLETT2_MSD_ENABLE)) in scarlett2_add_msd_ctl()
3481 struct scarlett2_data *private = mixer->private_data; in scarlett2_private_free() local
3483 cancel_delayed_work_sync(&private->work); in scarlett2_private_free()
3484 kfree(private); in scarlett2_private_free()
3490 struct scarlett2_data *private = mixer->private_data; in scarlett2_private_suspend() local
3492 if (cancel_delayed_work_sync(&private->work)) in scarlett2_private_suspend()
3493 scarlett2_config_save(private->mixer); in scarlett2_private_suspend()
3498 static void scarlett2_count_mux_io(struct scarlett2_data *private) in scarlett2_count_mux_io() argument
3500 const struct scarlett2_device_info *info = private->info; in scarlett2_count_mux_io()
3511 private->num_mux_srcs = srcs; in scarlett2_count_mux_io()
3512 private->num_mux_dsts = dsts; in scarlett2_count_mux_io()
3518 * in private
3521 struct scarlett2_data *private) in scarlett2_find_fc_interface() argument
3536 private->bInterfaceNumber = desc->bInterfaceNumber; in scarlett2_find_fc_interface()
3537 private->bEndpointAddress = epd->bEndpointAddress & in scarlett2_find_fc_interface()
3539 private->wMaxPacketSize = le16_to_cpu(epd->wMaxPacketSize); in scarlett2_find_fc_interface()
3540 private->bInterval = epd->bInterval; in scarlett2_find_fc_interface()
3547 /* Initialise private data */
3551 struct scarlett2_data *private = in scarlett2_init_private() local
3554 if (!private) in scarlett2_init_private()
3557 mutex_init(&private->usb_mutex); in scarlett2_init_private()
3558 mutex_init(&private->data_mutex); in scarlett2_init_private()
3559 INIT_DELAYED_WORK(&private->work, scarlett2_config_save_work); in scarlett2_init_private()
3561 mixer->private_data = private; in scarlett2_init_private()
3565 private->info = info; in scarlett2_init_private()
3566 scarlett2_count_mux_io(private); in scarlett2_init_private()
3567 private->scarlett2_seq = 0; in scarlett2_init_private()
3568 private->mixer = mixer; in scarlett2_init_private()
3570 return scarlett2_find_fc_interface(mixer->chip->dev, private); in scarlett2_init_private()
3577 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_init() local
3585 err = scarlett2_usb_rx(dev, private->bInterfaceNumber, in scarlett2_usb_init()
3591 private->scarlett2_seq = 1; in scarlett2_usb_init()
3597 private->scarlett2_seq = 1; in scarlett2_usb_init()
3604 struct scarlett2_data *private = mixer->private_data; in scarlett2_read_configs() local
3605 const struct scarlett2_device_info *info = private->info; in scarlett2_read_configs()
3617 1, &private->msd_switch); in scarlett2_read_configs()
3622 if (private->msd_switch) in scarlett2_read_configs()
3648 private->dim_mute[i] = !!volume_status.dim_mute[i]; in scarlett2_read_configs()
3650 private->master_vol = clamp( in scarlett2_read_configs()
3657 private->vol_sw_hw_switch[i] = in scarlett2_read_configs()
3661 volume = private->vol_sw_hw_switch[i] in scarlett2_read_configs()
3666 private->vol[i] = volume; in scarlett2_read_configs()
3668 mute = private->vol_sw_hw_switch[i] in scarlett2_read_configs()
3669 ? private->dim_mute[SCARLETT2_BUTTON_MUTE] in scarlett2_read_configs()
3671 private->mute_switch[i] = mute; in scarlett2_read_configs()
3687 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_sync() local
3689 private->sync_updated = 1; in scarlett2_notify_sync()
3692 &private->sync_ctl->id); in scarlett2_notify_sync()
3700 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_monitor() local
3701 const struct scarlett2_device_info *info = private->info; in scarlett2_notify_monitor()
3711 private->vol_updated = 1; in scarlett2_notify_monitor()
3714 &private->master_vol_ctl->id); in scarlett2_notify_monitor()
3717 if (private->vol_sw_hw_switch[line_out_remap(private, i)]) in scarlett2_notify_monitor()
3719 &private->vol_ctls[i]->id); in scarlett2_notify_monitor()
3727 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_dim_mute() local
3728 const struct scarlett2_device_info *info = private->info; in scarlett2_notify_dim_mute()
3734 private->vol_updated = 1; in scarlett2_notify_dim_mute()
3741 &private->dim_mute_ctls[i]->id); in scarlett2_notify_dim_mute()
3744 if (private->vol_sw_hw_switch[line_out_remap(private, i)]) in scarlett2_notify_dim_mute()
3746 &private->mute_ctls[i]->id); in scarlett2_notify_dim_mute()
3754 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_input_other() local
3755 const struct scarlett2_device_info *info = private->info; in scarlett2_notify_input_other()
3758 private->input_other_updated = 1; in scarlett2_notify_input_other()
3762 &private->level_ctls[i]->id); in scarlett2_notify_input_other()
3765 &private->pad_ctls[i]->id); in scarlett2_notify_input_other()
3768 &private->air_ctls[i]->id); in scarlett2_notify_input_other()
3771 &private->phantom_ctls[i]->id); in scarlett2_notify_input_other()
3781 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_monitor_other() local
3782 const struct scarlett2_device_info *info = private->info; in scarlett2_notify_monitor_other()
3784 private->monitor_other_updated = 1; in scarlett2_notify_monitor_other()
3788 &private->direct_monitor_ctl->id); in scarlett2_notify_monitor_other()
3794 &private->speaker_switching_ctl->id); in scarlett2_notify_monitor_other()
3798 &private->talkback_ctl->id); in scarlett2_notify_monitor_other()
3803 if (private->speaker_switching_switched) { in scarlett2_notify_monitor_other()
3808 private->speaker_switching_switched = 0; in scarlett2_notify_monitor_other()
3809 private->mux_updated = 1; in scarlett2_notify_monitor_other()
3811 for (i = 0; i < private->num_mux_dsts; i++) in scarlett2_notify_monitor_other()
3813 &private->mux_ctls[i]->id); in scarlett2_notify_monitor_other()
3852 struct scarlett2_data *private = mixer->private_data; in scarlett2_init_notify() local
3853 unsigned int pipe = usb_rcvintpipe(dev, private->bEndpointAddress); in scarlett2_init_notify()
3869 transfer_buffer = kmalloc(private->wMaxPacketSize, GFP_KERNEL); in scarlett2_init_notify()
3874 transfer_buffer, private->wMaxPacketSize, in scarlett2_init_notify()
3875 scarlett2_notify, mixer, private->bInterval); in scarlett2_init_notify()
3891 /* Initialise private data */ in snd_scarlett_gen2_controls_create()