Lines Matching refs:private

1149 static void scarlett2_fill_request_header(struct scarlett2_data *private,  in scarlett2_fill_request_header()  argument
1154 u16 seq = private->scarlett2_seq++; in scarlett2_fill_request_header()
1186 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb() local
1205 mutex_lock(&private->usb_mutex); in scarlett2_usb()
1209 scarlett2_fill_request_header(private, req, cmd, req_size); in scarlett2_usb()
1214 err = scarlett2_usb_tx(dev, private->bInterfaceNumber, in scarlett2_usb()
1228 err = scarlett2_usb_rx(dev, private->bInterfaceNumber, in scarlett2_usb()
1271 mutex_unlock(&private->usb_mutex); in scarlett2_usb()
1299 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_config() local
1300 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_get_config()
1348 struct scarlett2_data *private = in scarlett2_config_save_work() local
1351 scarlett2_config_save(private->mixer); in scarlett2_config_save_work()
1359 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_config() local
1360 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_set_config()
1373 cancel_delayed_work_sync(&private->work); in scarlett2_usb_set_config()
1419 schedule_delayed_work(&private->work, msecs_to_jiffies(2000)); in scarlett2_usb_set_config()
1456 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_mix() local
1457 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_get_mix()
1487 private->mix[j] = k; in scarlett2_usb_get_mix()
1499 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_mix() local
1500 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_set_mix()
1515 scarlett2_mixer_values[private->mix[j]] in scarlett2_usb_set_mix()
1564 static void scarlett2_usb_populate_mux(struct scarlett2_data *private, in scarlett2_usb_populate_mux() argument
1567 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_populate_mux()
1577 if (dst_idx >= private->num_mux_dsts) { in scarlett2_usb_populate_mux()
1578 usb_audio_err(private->mixer->chip, in scarlett2_usb_populate_mux()
1580 mux_entry, dst_idx, private->num_mux_dsts); in scarlett2_usb_populate_mux()
1589 if (src_idx >= private->num_mux_srcs) { in scarlett2_usb_populate_mux()
1590 usb_audio_err(private->mixer->chip, in scarlett2_usb_populate_mux()
1592 mux_entry, src_idx, private->num_mux_srcs); in scarlett2_usb_populate_mux()
1596 private->mux[dst_idx] = src_idx; in scarlett2_usb_populate_mux()
1602 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_mux() local
1603 int count = private->num_mux_dsts; in scarlett2_usb_get_mux()
1613 private->mux_updated = 0; in scarlett2_usb_get_mux()
1625 scarlett2_usb_populate_mux(private, le32_to_cpu(data[i])); in scarlett2_usb_get_mux()
1633 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_mux() local
1634 const struct scarlett2_device_info *info = private->info; in scarlett2_usb_set_mux()
1679 port_count, private->mux[mux_idx++]); in scarlett2_usb_set_mux()
1775 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_sync() local
1777 private->sync_updated = 0; in scarlett2_update_sync()
1778 return scarlett2_usb_get_sync_status(mixer, &private->sync); in scarlett2_update_sync()
1795 struct scarlett2_data *private = mixer->private_data; in scarlett2_sync_ctl_get() local
1797 mutex_lock(&private->data_mutex); in scarlett2_sync_ctl_get()
1798 if (private->sync_updated) in scarlett2_sync_ctl_get()
1800 ucontrol->value.enumerated.item[0] = private->sync; in scarlett2_sync_ctl_get()
1801 mutex_unlock(&private->data_mutex); in scarlett2_sync_ctl_get()
1816 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_sync_ctl() local
1819 if (private->info->config_set == SCARLETT2_CONFIG_SET_NO_MIXER) in scarlett2_add_sync_ctl()
1823 0, 1, "Sync Status", &private->sync_ctl); in scarlett2_add_sync_ctl()
1833 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_volumes() local
1834 const struct scarlett2_device_info *info = private->info; in scarlett2_update_volumes()
1842 private->vol_updated = 0; in scarlett2_update_volumes()
1848 private->master_vol = clamp( in scarlett2_update_volumes()
1854 private->dim_mute[i] = !!volume_status.dim_mute[i]; in scarlett2_update_volumes()
1856 mute = private->dim_mute[SCARLETT2_BUTTON_MUTE]; in scarlett2_update_volumes()
1859 if (private->vol_sw_hw_switch[i]) { in scarlett2_update_volumes()
1860 private->vol[i] = private->master_vol; in scarlett2_update_volumes()
1861 private->mute_switch[i] = mute; in scarlett2_update_volumes()
1885 struct scarlett2_data *private = mixer->private_data; in scarlett2_master_volume_ctl_get() local
1887 mutex_lock(&private->data_mutex); in scarlett2_master_volume_ctl_get()
1888 if (private->vol_updated) in scarlett2_master_volume_ctl_get()
1890 mutex_unlock(&private->data_mutex); in scarlett2_master_volume_ctl_get()
1892 ucontrol->value.integer.value[0] = private->master_vol; in scarlett2_master_volume_ctl_get()
1896 static int line_out_remap(struct scarlett2_data *private, int index) in line_out_remap() argument
1898 const struct scarlett2_device_info *info = private->info; in line_out_remap()
1910 struct scarlett2_data *private = mixer->private_data; in scarlett2_volume_ctl_get() local
1911 int index = line_out_remap(private, elem->control); in scarlett2_volume_ctl_get()
1913 mutex_lock(&private->data_mutex); in scarlett2_volume_ctl_get()
1914 if (private->vol_updated) in scarlett2_volume_ctl_get()
1916 mutex_unlock(&private->data_mutex); in scarlett2_volume_ctl_get()
1918 ucontrol->value.integer.value[0] = private->vol[index]; in scarlett2_volume_ctl_get()
1927 struct scarlett2_data *private = mixer->private_data; in scarlett2_volume_ctl_put() local
1928 int index = line_out_remap(private, elem->control); in scarlett2_volume_ctl_put()
1931 mutex_lock(&private->data_mutex); in scarlett2_volume_ctl_put()
1933 oval = private->vol[index]; in scarlett2_volume_ctl_put()
1939 private->vol[index] = val; in scarlett2_volume_ctl_put()
1946 mutex_unlock(&private->data_mutex); in scarlett2_volume_ctl_put()
1984 struct scarlett2_data *private = mixer->private_data; in scarlett2_mute_ctl_get() local
1985 int index = line_out_remap(private, elem->control); in scarlett2_mute_ctl_get()
1987 mutex_lock(&private->data_mutex); in scarlett2_mute_ctl_get()
1988 if (private->vol_updated) in scarlett2_mute_ctl_get()
1990 mutex_unlock(&private->data_mutex); in scarlett2_mute_ctl_get()
1992 ucontrol->value.integer.value[0] = private->mute_switch[index]; in scarlett2_mute_ctl_get()
2001 struct scarlett2_data *private = mixer->private_data; in scarlett2_mute_ctl_put() local
2002 int index = line_out_remap(private, elem->control); in scarlett2_mute_ctl_put()
2005 mutex_lock(&private->data_mutex); in scarlett2_mute_ctl_put()
2007 oval = private->mute_switch[index]; in scarlett2_mute_ctl_put()
2013 private->mute_switch[index] = val; in scarlett2_mute_ctl_put()
2022 mutex_unlock(&private->data_mutex); in scarlett2_mute_ctl_put()
2036 static void scarlett2_sw_hw_ctl_ro(struct scarlett2_data *private, int index) in scarlett2_sw_hw_ctl_ro() argument
2038 private->sw_hw_ctls[index]->vd[0].access &= in scarlett2_sw_hw_ctl_ro()
2042 static void scarlett2_sw_hw_ctl_rw(struct scarlett2_data *private, int index) in scarlett2_sw_hw_ctl_rw() argument
2044 private->sw_hw_ctls[index]->vd[0].access |= in scarlett2_sw_hw_ctl_rw()
2062 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_sw_hw_enum_ctl_get() local
2063 int index = line_out_remap(private, elem->control); in scarlett2_sw_hw_enum_ctl_get()
2065 ucontrol->value.enumerated.item[0] = private->vol_sw_hw_switch[index]; in scarlett2_sw_hw_enum_ctl_get()
2072 struct scarlett2_data *private = mixer->private_data; in scarlett2_vol_ctl_set_writable() local
2077 private->vol_ctls[index]->vd[0].access |= in scarlett2_vol_ctl_set_writable()
2079 private->mute_ctls[index]->vd[0].access |= in scarlett2_vol_ctl_set_writable()
2082 private->vol_ctls[index]->vd[0].access &= in scarlett2_vol_ctl_set_writable()
2084 private->mute_ctls[index]->vd[0].access &= in scarlett2_vol_ctl_set_writable()
2091 &private->vol_ctls[index]->id); in scarlett2_vol_ctl_set_writable()
2094 &private->mute_ctls[index]->id); in scarlett2_vol_ctl_set_writable()
2100 struct scarlett2_data *private = mixer->private_data; in scarlett2_sw_hw_change() local
2101 int index = line_out_remap(private, ctl_index); in scarlett2_sw_hw_change()
2104 private->vol_sw_hw_switch[index] = val; in scarlett2_sw_hw_change()
2112 private->vol[index] = private->master_vol; in scarlett2_sw_hw_change()
2113 private->mute_switch[index] = private->dim_mute[SCARLETT2_BUTTON_MUTE]; in scarlett2_sw_hw_change()
2118 index, private->master_vol - SCARLETT2_VOLUME_BIAS); in scarlett2_sw_hw_change()
2125 index, private->dim_mute[SCARLETT2_BUTTON_MUTE]); in scarlett2_sw_hw_change()
2139 struct scarlett2_data *private = mixer->private_data; in scarlett2_sw_hw_enum_ctl_put() local
2141 int index = line_out_remap(private, ctl_index); in scarlett2_sw_hw_enum_ctl_put()
2144 mutex_lock(&private->data_mutex); in scarlett2_sw_hw_enum_ctl_put()
2146 oval = private->vol_sw_hw_switch[index]; in scarlett2_sw_hw_enum_ctl_put()
2157 mutex_unlock(&private->data_mutex); in scarlett2_sw_hw_enum_ctl_put()
2173 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_input_other() local
2174 const struct scarlett2_device_info *info = private->info; in scarlett2_update_input_other()
2176 private->input_other_updated = 0; in scarlett2_update_input_other()
2182 private->level_switch); in scarlett2_update_input_other()
2190 info->pad_input_count, private->pad_switch); in scarlett2_update_input_other()
2198 info->air_input_count, private->air_switch); in scarlett2_update_input_other()
2206 info->phantom_count, private->phantom_switch); in scarlett2_update_input_other()
2212 1, &private->phantom_persistence); in scarlett2_update_input_other()
2235 struct scarlett2_data *private = mixer->private_data; in scarlett2_level_enum_ctl_get() local
2236 const struct scarlett2_device_info *info = private->info; in scarlett2_level_enum_ctl_get()
2240 mutex_lock(&private->data_mutex); in scarlett2_level_enum_ctl_get()
2241 if (private->input_other_updated) in scarlett2_level_enum_ctl_get()
2243 ucontrol->value.enumerated.item[0] = private->level_switch[index]; in scarlett2_level_enum_ctl_get()
2244 mutex_unlock(&private->data_mutex); in scarlett2_level_enum_ctl_get()
2254 struct scarlett2_data *private = mixer->private_data; in scarlett2_level_enum_ctl_put() local
2255 const struct scarlett2_device_info *info = private->info; in scarlett2_level_enum_ctl_put()
2260 mutex_lock(&private->data_mutex); in scarlett2_level_enum_ctl_put()
2262 oval = private->level_switch[index]; in scarlett2_level_enum_ctl_put()
2268 private->level_switch[index] = val; in scarlett2_level_enum_ctl_put()
2277 mutex_unlock(&private->data_mutex); in scarlett2_level_enum_ctl_put()
2296 struct scarlett2_data *private = mixer->private_data; in scarlett2_pad_ctl_get() local
2298 mutex_lock(&private->data_mutex); in scarlett2_pad_ctl_get()
2299 if (private->input_other_updated) in scarlett2_pad_ctl_get()
2302 private->pad_switch[elem->control]; in scarlett2_pad_ctl_get()
2303 mutex_unlock(&private->data_mutex); in scarlett2_pad_ctl_get()
2313 struct scarlett2_data *private = mixer->private_data; in scarlett2_pad_ctl_put() local
2318 mutex_lock(&private->data_mutex); in scarlett2_pad_ctl_put()
2320 oval = private->pad_switch[index]; in scarlett2_pad_ctl_put()
2326 private->pad_switch[index] = val; in scarlett2_pad_ctl_put()
2335 mutex_unlock(&private->data_mutex); in scarlett2_pad_ctl_put()
2354 struct scarlett2_data *private = mixer->private_data; in scarlett2_air_ctl_get() local
2356 mutex_lock(&private->data_mutex); in scarlett2_air_ctl_get()
2357 if (private->input_other_updated) in scarlett2_air_ctl_get()
2359 ucontrol->value.integer.value[0] = private->air_switch[elem->control]; in scarlett2_air_ctl_get()
2360 mutex_unlock(&private->data_mutex); in scarlett2_air_ctl_get()
2370 struct scarlett2_data *private = mixer->private_data; in scarlett2_air_ctl_put() local
2375 mutex_lock(&private->data_mutex); in scarlett2_air_ctl_put()
2377 oval = private->air_switch[index]; in scarlett2_air_ctl_put()
2383 private->air_switch[index] = val; in scarlett2_air_ctl_put()
2392 mutex_unlock(&private->data_mutex); in scarlett2_air_ctl_put()
2411 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_ctl_get() local
2413 mutex_lock(&private->data_mutex); in scarlett2_phantom_ctl_get()
2414 if (private->input_other_updated) in scarlett2_phantom_ctl_get()
2417 private->phantom_switch[elem->control]; in scarlett2_phantom_ctl_get()
2418 mutex_unlock(&private->data_mutex); in scarlett2_phantom_ctl_get()
2428 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_ctl_put() local
2433 mutex_lock(&private->data_mutex); in scarlett2_phantom_ctl_put()
2435 oval = private->phantom_switch[index]; in scarlett2_phantom_ctl_put()
2441 private->phantom_switch[index] = val; in scarlett2_phantom_ctl_put()
2450 mutex_unlock(&private->data_mutex); in scarlett2_phantom_ctl_put()
2468 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_phantom_persistence_ctl_get() local
2470 ucontrol->value.integer.value[0] = private->phantom_persistence; in scarlett2_phantom_persistence_ctl_get()
2479 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_persistence_ctl_put() local
2484 mutex_lock(&private->data_mutex); in scarlett2_phantom_persistence_ctl_put()
2486 oval = private->phantom_persistence; in scarlett2_phantom_persistence_ctl_put()
2492 private->phantom_persistence = val; in scarlett2_phantom_persistence_ctl_put()
2501 mutex_unlock(&private->data_mutex); in scarlett2_phantom_persistence_ctl_put()
2517 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_monitor_other() local
2518 const struct scarlett2_device_info *info = private->info; in scarlett2_update_monitor_other()
2531 private->monitor_other_updated = 0; in scarlett2_update_monitor_other()
2536 1, &private->direct_monitor_switch); in scarlett2_update_monitor_other()
2557 private->speaker_switching_switch = 0; in scarlett2_update_monitor_other()
2559 private->speaker_switching_switch = monitor_other_switch[0] + 1; in scarlett2_update_monitor_other()
2570 private->talkback_switch = 0; in scarlett2_update_monitor_other()
2572 private->talkback_switch = monitor_other_switch[1] + 1; in scarlett2_update_monitor_other()
2580 private->talkback_map[i] = bitmap & 1; in scarlett2_update_monitor_other()
2591 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_direct_monitor_ctl_get() local
2593 mutex_lock(&private->data_mutex); in scarlett2_direct_monitor_ctl_get()
2594 if (private->monitor_other_updated) in scarlett2_direct_monitor_ctl_get()
2596 ucontrol->value.enumerated.item[0] = private->direct_monitor_switch; in scarlett2_direct_monitor_ctl_get()
2597 mutex_unlock(&private->data_mutex); in scarlett2_direct_monitor_ctl_get()
2607 struct scarlett2_data *private = mixer->private_data; in scarlett2_direct_monitor_ctl_put() local
2612 mutex_lock(&private->data_mutex); in scarlett2_direct_monitor_ctl_put()
2614 oval = private->direct_monitor_switch; in scarlett2_direct_monitor_ctl_put()
2620 private->direct_monitor_switch = val; in scarlett2_direct_monitor_ctl_put()
2629 mutex_unlock(&private->data_mutex); in scarlett2_direct_monitor_ctl_put()
2665 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_direct_monitor_ctl() local
2666 const struct scarlett2_device_info *info = private->info; in scarlett2_add_direct_monitor_ctl()
2678 0, 1, s, &private->direct_monitor_ctl); in scarlett2_add_direct_monitor_ctl()
2698 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enum_ctl_get() local
2700 mutex_lock(&private->data_mutex); in scarlett2_speaker_switch_enum_ctl_get()
2701 if (private->monitor_other_updated) in scarlett2_speaker_switch_enum_ctl_get()
2703 ucontrol->value.enumerated.item[0] = private->speaker_switching_switch; in scarlett2_speaker_switch_enum_ctl_get()
2704 mutex_unlock(&private->data_mutex); in scarlett2_speaker_switch_enum_ctl_get()
2715 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enable() local
2719 int index = line_out_remap(private, i); in scarlett2_speaker_switch_enable()
2722 if (!private->vol_sw_hw_switch[index]) { in scarlett2_speaker_switch_enable()
2723 err = scarlett2_sw_hw_change(private->mixer, i, 1); in scarlett2_speaker_switch_enable()
2729 scarlett2_sw_hw_ctl_ro(private, i); in scarlett2_speaker_switch_enable()
2733 &private->sw_hw_ctls[i]->id); in scarlett2_speaker_switch_enable()
2739 private->speaker_switching_switched = 1; in scarlett2_speaker_switch_enable()
2750 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_disable() local
2755 scarlett2_sw_hw_ctl_rw(private, i); in scarlett2_speaker_switch_disable()
2757 &private->sw_hw_ctls[i]->id); in scarlett2_speaker_switch_disable()
2763 private->speaker_switching_switched = 1; in scarlett2_speaker_switch_disable()
2771 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enum_ctl_put() local
2775 mutex_lock(&private->data_mutex); in scarlett2_speaker_switch_enum_ctl_put()
2777 oval = private->speaker_switching_switch; in scarlett2_speaker_switch_enum_ctl_put()
2783 private->speaker_switching_switch = val; in scarlett2_speaker_switch_enum_ctl_put()
2809 mutex_unlock(&private->data_mutex); in scarlett2_speaker_switch_enum_ctl_put()
2824 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_speaker_switch_ctl() local
2825 const struct scarlett2_device_info *info = private->info; in scarlett2_add_speaker_switch_ctl()
2833 &private->speaker_switching_ctl); in scarlett2_add_speaker_switch_ctl()
2853 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_enum_ctl_get() local
2855 mutex_lock(&private->data_mutex); in scarlett2_talkback_enum_ctl_get()
2856 if (private->monitor_other_updated) in scarlett2_talkback_enum_ctl_get()
2858 ucontrol->value.enumerated.item[0] = private->talkback_switch; in scarlett2_talkback_enum_ctl_get()
2859 mutex_unlock(&private->data_mutex); in scarlett2_talkback_enum_ctl_get()
2869 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_enum_ctl_put() local
2873 mutex_lock(&private->data_mutex); in scarlett2_talkback_enum_ctl_put()
2875 oval = private->talkback_switch; in scarlett2_talkback_enum_ctl_put()
2881 private->talkback_switch = val; in scarlett2_talkback_enum_ctl_put()
2898 mutex_unlock(&private->data_mutex); in scarlett2_talkback_enum_ctl_put()
2915 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_map_ctl_get() local
2918 ucontrol->value.integer.value[0] = private->talkback_map[index]; in scarlett2_talkback_map_ctl_get()
2928 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_map_ctl_put() local
2930 private->info->port_count; in scarlett2_talkback_map_ctl_put()
2937 mutex_lock(&private->data_mutex); in scarlett2_talkback_map_ctl_put()
2939 oval = private->talkback_map[index]; in scarlett2_talkback_map_ctl_put()
2945 private->talkback_map[index] = val; in scarlett2_talkback_map_ctl_put()
2948 bitmap |= private->talkback_map[i] << i; in scarlett2_talkback_map_ctl_put()
2957 mutex_unlock(&private->data_mutex); in scarlett2_talkback_map_ctl_put()
2972 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_talkback_ctls() local
2973 const struct scarlett2_device_info *info = private->info; in scarlett2_add_talkback_ctls()
2985 &private->talkback_ctl); in scarlett2_add_talkback_ctls()
3008 struct scarlett2_data *private = mixer->private_data; in scarlett2_dim_mute_ctl_get() local
3010 mutex_lock(&private->data_mutex); in scarlett2_dim_mute_ctl_get()
3011 if (private->vol_updated) in scarlett2_dim_mute_ctl_get()
3013 mutex_unlock(&private->data_mutex); in scarlett2_dim_mute_ctl_get()
3015 ucontrol->value.integer.value[0] = private->dim_mute[elem->control]; in scarlett2_dim_mute_ctl_get()
3024 struct scarlett2_data *private = mixer->private_data; in scarlett2_dim_mute_ctl_put() local
3025 const struct scarlett2_device_info *info = private->info; in scarlett2_dim_mute_ctl_put()
3033 mutex_lock(&private->data_mutex); in scarlett2_dim_mute_ctl_put()
3035 oval = private->dim_mute[index]; in scarlett2_dim_mute_ctl_put()
3041 private->dim_mute[index] = val; in scarlett2_dim_mute_ctl_put()
3051 int line_index = line_out_remap(private, i); in scarlett2_dim_mute_ctl_put()
3053 if (private->vol_sw_hw_switch[line_index]) { in scarlett2_dim_mute_ctl_put()
3054 private->mute_switch[line_index] = val; in scarlett2_dim_mute_ctl_put()
3057 &private->mute_ctls[i]->id); in scarlett2_dim_mute_ctl_put()
3062 mutex_unlock(&private->data_mutex); in scarlett2_dim_mute_ctl_put()
3078 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_line_out_ctls() local
3079 const struct scarlett2_device_info *info = private->info; in scarlett2_add_line_out_ctls()
3091 0, 1, s, &private->master_vol_ctl); in scarlett2_add_line_out_ctls()
3098 int index = line_out_remap(private, i); in scarlett2_add_line_out_ctls()
3111 i, 1, s, &private->vol_ctls[i]); in scarlett2_add_line_out_ctls()
3122 &private->mute_ctls[i]); in scarlett2_add_line_out_ctls()
3129 if (private->vol_sw_hw_switch[index]) in scarlett2_add_line_out_ctls()
3140 &private->sw_hw_ctls[i]); in scarlett2_add_line_out_ctls()
3147 if (private->speaker_switching_switch && i < 4) in scarlett2_add_line_out_ctls()
3148 scarlett2_sw_hw_ctl_ro(private, i); in scarlett2_add_line_out_ctls()
3158 &private->dim_mute_ctls[i]); in scarlett2_add_line_out_ctls()
3170 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_line_in_ctls() local
3171 const struct scarlett2_device_info *info = private->info; in scarlett2_add_line_in_ctls()
3182 i, 1, s, &private->level_ctls[i]); in scarlett2_add_line_in_ctls()
3191 i, 1, s, &private->pad_ctls[i]); in scarlett2_add_line_in_ctls()
3200 i, 1, s, &private->air_ctls[i]); in scarlett2_add_line_in_ctls()
3212 i, 1, s, &private->phantom_ctls[i]); in scarlett2_add_line_in_ctls()
3225 i, 1, s, &private->phantom_ctls[i]); in scarlett2_add_line_in_ctls()
3260 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_mixer_ctl_get() local
3262 ucontrol->value.integer.value[0] = private->mix[elem->control]; in scarlett2_mixer_ctl_get()
3271 struct scarlett2_data *private = mixer->private_data; in scarlett2_mixer_ctl_put() local
3272 const struct scarlett2_device_info *info = private->info; in scarlett2_mixer_ctl_put()
3277 mutex_lock(&private->data_mutex); in scarlett2_mixer_ctl_put()
3279 oval = private->mix[index]; in scarlett2_mixer_ctl_put()
3287 private->mix[index] = val; in scarlett2_mixer_ctl_put()
3293 mutex_unlock(&private->data_mutex); in scarlett2_mixer_ctl_put()
3317 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_mixer_ctls() local
3318 const struct scarlett2_device_info *info = private->info; in scarlett2_add_mixer_ctls()
3349 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_mux_src_enum_ctl_info() local
3350 const struct scarlett2_device_info *info = private->info; in scarlett2_mux_src_enum_ctl_info()
3353 int items = private->num_mux_srcs; in scarlett2_mux_src_enum_ctl_info()
3385 struct scarlett2_data *private = mixer->private_data; in scarlett2_mux_src_enum_ctl_get() local
3386 const struct scarlett2_device_info *info = private->info; in scarlett2_mux_src_enum_ctl_get()
3393 index = line_out_remap(private, index); in scarlett2_mux_src_enum_ctl_get()
3395 mutex_lock(&private->data_mutex); in scarlett2_mux_src_enum_ctl_get()
3396 if (private->mux_updated) in scarlett2_mux_src_enum_ctl_get()
3398 ucontrol->value.enumerated.item[0] = private->mux[index]; in scarlett2_mux_src_enum_ctl_get()
3399 mutex_unlock(&private->data_mutex); in scarlett2_mux_src_enum_ctl_get()
3409 struct scarlett2_data *private = mixer->private_data; in scarlett2_mux_src_enum_ctl_put() local
3410 const struct scarlett2_device_info *info = private->info; in scarlett2_mux_src_enum_ctl_put()
3418 index = line_out_remap(private, index); in scarlett2_mux_src_enum_ctl_put()
3420 mutex_lock(&private->data_mutex); in scarlett2_mux_src_enum_ctl_put()
3422 oval = private->mux[index]; in scarlett2_mux_src_enum_ctl_put()
3424 private->num_mux_srcs - 1U); in scarlett2_mux_src_enum_ctl_put()
3429 private->mux[index] = val; in scarlett2_mux_src_enum_ctl_put()
3435 mutex_unlock(&private->data_mutex); in scarlett2_mux_src_enum_ctl_put()
3449 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_mux_enums() local
3450 const struct scarlett2_device_info *info = private->info; in scarlett2_add_mux_enums()
3471 &private->mux_ctls[i]); in scarlett2_add_mux_enums()
3523 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_meter_ctl() local
3526 if (private->info->config_set == SCARLETT2_CONFIG_SET_NO_MIXER) in scarlett2_add_meter_ctl()
3530 0, private->num_mux_dsts, in scarlett2_add_meter_ctl()
3540 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_msd_ctl_get() local
3542 ucontrol->value.integer.value[0] = private->msd_switch; in scarlett2_msd_ctl_get()
3551 struct scarlett2_data *private = mixer->private_data; in scarlett2_msd_ctl_put() local
3555 mutex_lock(&private->data_mutex); in scarlett2_msd_ctl_put()
3557 oval = private->msd_switch; in scarlett2_msd_ctl_put()
3563 private->msd_switch = val; in scarlett2_msd_ctl_put()
3572 mutex_unlock(&private->data_mutex); in scarlett2_msd_ctl_put()
3586 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_msd_ctl() local
3587 const struct scarlett2_device_info *info = private->info; in scarlett2_add_msd_ctl()
3593 if (!private->msd_switch && !(mixer->chip->setup & SCARLETT2_MSD_ENABLE)) in scarlett2_add_msd_ctl()
3607 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_standalone_ctl_get() local
3609 ucontrol->value.integer.value[0] = private->standalone_switch; in scarlett2_standalone_ctl_get()
3618 struct scarlett2_data *private = mixer->private_data; in scarlett2_standalone_ctl_put() local
3622 mutex_lock(&private->data_mutex); in scarlett2_standalone_ctl_put()
3624 oval = private->standalone_switch; in scarlett2_standalone_ctl_put()
3630 private->standalone_switch = val; in scarlett2_standalone_ctl_put()
3640 mutex_unlock(&private->data_mutex); in scarlett2_standalone_ctl_put()
3654 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_standalone_ctl() local
3656 if (private->info->config_set == SCARLETT2_CONFIG_SET_NO_MIXER) in scarlett2_add_standalone_ctl()
3668 struct scarlett2_data *private = mixer->private_data; in scarlett2_private_free() local
3670 cancel_delayed_work_sync(&private->work); in scarlett2_private_free()
3671 kfree(private); in scarlett2_private_free()
3677 struct scarlett2_data *private = mixer->private_data; in scarlett2_private_suspend() local
3679 if (cancel_delayed_work_sync(&private->work)) in scarlett2_private_suspend()
3680 scarlett2_config_save(private->mixer); in scarlett2_private_suspend()
3685 static void scarlett2_count_mux_io(struct scarlett2_data *private) in scarlett2_count_mux_io() argument
3687 const struct scarlett2_device_info *info = private->info; in scarlett2_count_mux_io()
3698 private->num_mux_srcs = srcs; in scarlett2_count_mux_io()
3699 private->num_mux_dsts = dsts; in scarlett2_count_mux_io()
3708 struct scarlett2_data *private) in scarlett2_find_fc_interface() argument
3723 private->bInterfaceNumber = desc->bInterfaceNumber; in scarlett2_find_fc_interface()
3724 private->bEndpointAddress = epd->bEndpointAddress & in scarlett2_find_fc_interface()
3726 private->wMaxPacketSize = le16_to_cpu(epd->wMaxPacketSize); in scarlett2_find_fc_interface()
3727 private->bInterval = epd->bInterval; in scarlett2_find_fc_interface()
3738 struct scarlett2_data *private = in scarlett2_init_private() local
3741 if (!private) in scarlett2_init_private()
3744 mutex_init(&private->usb_mutex); in scarlett2_init_private()
3745 mutex_init(&private->data_mutex); in scarlett2_init_private()
3746 INIT_DELAYED_WORK(&private->work, scarlett2_config_save_work); in scarlett2_init_private()
3748 mixer->private_data = private; in scarlett2_init_private()
3752 private->info = info; in scarlett2_init_private()
3753 scarlett2_count_mux_io(private); in scarlett2_init_private()
3754 private->scarlett2_seq = 0; in scarlett2_init_private()
3755 private->mixer = mixer; in scarlett2_init_private()
3757 return scarlett2_find_fc_interface(mixer->chip->dev, private); in scarlett2_init_private()
3764 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_init() local
3772 err = scarlett2_usb_rx(dev, private->bInterfaceNumber, in scarlett2_usb_init()
3778 private->scarlett2_seq = 1; in scarlett2_usb_init()
3784 private->scarlett2_seq = 1; in scarlett2_usb_init()
3791 struct scarlett2_data *private = mixer->private_data; in scarlett2_read_configs() local
3792 const struct scarlett2_device_info *info = private->info; in scarlett2_read_configs()
3804 1, &private->msd_switch); in scarlett2_read_configs()
3809 if (private->msd_switch) in scarlett2_read_configs()
3827 1, &private->standalone_switch); in scarlett2_read_configs()
3841 private->dim_mute[i] = !!volume_status.dim_mute[i]; in scarlett2_read_configs()
3843 private->master_vol = clamp( in scarlett2_read_configs()
3850 private->vol_sw_hw_switch[i] = in scarlett2_read_configs()
3854 volume = private->vol_sw_hw_switch[i] in scarlett2_read_configs()
3859 private->vol[i] = volume; in scarlett2_read_configs()
3861 mute = private->vol_sw_hw_switch[i] in scarlett2_read_configs()
3862 ? private->dim_mute[SCARLETT2_BUTTON_MUTE] in scarlett2_read_configs()
3864 private->mute_switch[i] = mute; in scarlett2_read_configs()
3880 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_sync() local
3882 private->sync_updated = 1; in scarlett2_notify_sync()
3885 &private->sync_ctl->id); in scarlett2_notify_sync()
3893 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_monitor() local
3894 const struct scarlett2_device_info *info = private->info; in scarlett2_notify_monitor()
3904 private->vol_updated = 1; in scarlett2_notify_monitor()
3907 &private->master_vol_ctl->id); in scarlett2_notify_monitor()
3910 if (private->vol_sw_hw_switch[line_out_remap(private, i)]) in scarlett2_notify_monitor()
3912 &private->vol_ctls[i]->id); in scarlett2_notify_monitor()
3920 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_dim_mute() local
3921 const struct scarlett2_device_info *info = private->info; in scarlett2_notify_dim_mute()
3927 private->vol_updated = 1; in scarlett2_notify_dim_mute()
3934 &private->dim_mute_ctls[i]->id); in scarlett2_notify_dim_mute()
3937 if (private->vol_sw_hw_switch[line_out_remap(private, i)]) in scarlett2_notify_dim_mute()
3939 &private->mute_ctls[i]->id); in scarlett2_notify_dim_mute()
3947 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_input_other() local
3948 const struct scarlett2_device_info *info = private->info; in scarlett2_notify_input_other()
3951 private->input_other_updated = 1; in scarlett2_notify_input_other()
3955 &private->level_ctls[i]->id); in scarlett2_notify_input_other()
3958 &private->pad_ctls[i]->id); in scarlett2_notify_input_other()
3961 &private->air_ctls[i]->id); in scarlett2_notify_input_other()
3964 &private->phantom_ctls[i]->id); in scarlett2_notify_input_other()
3974 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_monitor_other() local
3975 const struct scarlett2_device_info *info = private->info; in scarlett2_notify_monitor_other()
3977 private->monitor_other_updated = 1; in scarlett2_notify_monitor_other()
3981 &private->direct_monitor_ctl->id); in scarlett2_notify_monitor_other()
3987 &private->speaker_switching_ctl->id); in scarlett2_notify_monitor_other()
3991 &private->talkback_ctl->id); in scarlett2_notify_monitor_other()
3996 if (private->speaker_switching_switched) { in scarlett2_notify_monitor_other()
4001 private->speaker_switching_switched = 0; in scarlett2_notify_monitor_other()
4002 private->mux_updated = 1; in scarlett2_notify_monitor_other()
4004 for (i = 0; i < private->num_mux_dsts; i++) in scarlett2_notify_monitor_other()
4006 &private->mux_ctls[i]->id); in scarlett2_notify_monitor_other()
4045 struct scarlett2_data *private = mixer->private_data; in scarlett2_init_notify() local
4046 unsigned int pipe = usb_rcvintpipe(dev, private->bEndpointAddress); in scarlett2_init_notify()
4062 transfer_buffer = kmalloc(private->wMaxPacketSize, GFP_KERNEL); in scarlett2_init_notify()
4067 transfer_buffer, private->wMaxPacketSize, in scarlett2_init_notify()
4068 scarlett2_notify, mixer, private->bInterval); in scarlett2_init_notify()