Lines Matching refs:pcm

206 static int snd_pcm_hw_param_mask(struct snd_pcm_substream *pcm,  in snd_pcm_hw_param_mask()  argument
215 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_mask()
265 static int snd_pcm_hw_param_min(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_min() argument
274 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_min()
326 static int snd_pcm_hw_param_max(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_max() argument
335 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_max()
400 static int snd_pcm_hw_param_near(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_near() argument
430 min = snd_pcm_hw_param_min(pcm, params, var, min, &mindir); in snd_pcm_hw_param_near()
443 max = snd_pcm_hw_param_max(pcm, params1, var, max, &maxdir); in snd_pcm_hw_param_near()
455 max = snd_pcm_hw_param_max(pcm, params, var, max, &maxdir); in snd_pcm_hw_param_near()
465 v = snd_pcm_hw_param_last(pcm, params, var, dir); in snd_pcm_hw_param_near()
467 v = snd_pcm_hw_param_first(pcm, params, var, dir); in snd_pcm_hw_param_near()
532 static int snd_pcm_hw_param_set(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_set() argument
541 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_set()
883 pcm_dbg(substream->pcm, "No usable accesses\n"); in snd_pcm_oss_change_params()
908 pcm_dbg(substream->pcm, "Cannot find a format!!!\n"); in snd_pcm_oss_change_params()
948 pcm_dbg(substream->pcm, in snd_pcm_oss_change_params()
956 pcm_dbg(substream->pcm, in snd_pcm_oss_change_params()
991 pcm_dbg(substream->pcm, "HW_PARAMS failed: %i\n", err); in snd_pcm_oss_change_params()
1024 pcm_dbg(substream->pcm, "SW_PARAMS failed: %i\n", err); in snd_pcm_oss_change_params()
1118 pcm_dbg(substream->pcm, in snd_pcm_oss_prepare()
1184 pcm_dbg(substream->pcm, in snd_pcm_oss_write3()
1220 pcm_dbg(substream->pcm, in snd_pcm_oss_read3()
1266 pcm_dbg(substream->pcm, in snd_pcm_oss_writev3()
1302 pcm_dbg(substream->pcm, in snd_pcm_oss_readv3()
1562 pcm_dbg(substream->pcm, "sync1: size = %li\n", size); in snd_pcm_oss_sync1()
1588 pcm_err(substream->pcm, in snd_pcm_oss_sync1()
1620 pcm_dbg(substream->pcm, "sync: buffer_used\n"); in snd_pcm_oss_sync()
1633 pcm_dbg(substream->pcm, "sync: period_ptr\n"); in snd_pcm_oss_sync()
1985 pcm_dbg(substream->pcm, "pcm_oss: trigger = 0x%x\n", trigger); in snd_pcm_oss_set_trigger()
2205 pcm_dbg(substream->pcm, in snd_pcm_oss_get_space()
2231 static void snd_pcm_oss_look_for_setup(struct snd_pcm *pcm, int stream, in snd_pcm_oss_look_for_setup() argument
2237 mutex_lock(&pcm->streams[stream].oss.setup_mutex); in snd_pcm_oss_look_for_setup()
2239 for (setup = pcm->streams[stream].oss.setup_list; setup; in snd_pcm_oss_look_for_setup()
2248 mutex_unlock(&pcm->streams[stream].oss.setup_mutex); in snd_pcm_oss_look_for_setup()
2312 struct snd_pcm *pcm, in snd_pcm_oss_open_file() argument
2330 (pcm->info_flags & SNDRV_PCM_INFO_HALF_DUPLEX)) in snd_pcm_oss_open_file()
2337 if (! pcm->streams[idx].substream_count) in snd_pcm_oss_open_file()
2346 err = snd_pcm_open_substream(pcm, idx, file, &substream); in snd_pcm_oss_open_file()
2385 struct snd_pcm *pcm; in snd_pcm_oss_open() local
2395 pcm = snd_lookup_oss_minor_data(iminor(inode), in snd_pcm_oss_open()
2397 if (pcm == NULL) { in snd_pcm_oss_open()
2401 err = snd_card_file_add(pcm->card, file); in snd_pcm_oss_open()
2404 if (!try_module_get(pcm->card->module)) { in snd_pcm_oss_open()
2414 snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_PLAYBACK, in snd_pcm_oss_open()
2417 snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_CAPTURE, in snd_pcm_oss_open()
2425 add_wait_queue(&pcm->open_wait, &wait); in snd_pcm_oss_open()
2426 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_open()
2428 err = snd_pcm_oss_open_file(file, pcm, &pcm_oss_file, in snd_pcm_oss_open()
2440 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_open()
2442 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_open()
2443 if (pcm->card->shutdown) { in snd_pcm_oss_open()
2452 remove_wait_queue(&pcm->open_wait, &wait); in snd_pcm_oss_open()
2453 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_open()
2456 snd_card_unref(pcm->card); in snd_pcm_oss_open()
2460 module_put(pcm->card->module); in snd_pcm_oss_open()
2462 snd_card_file_remove(pcm->card, file); in snd_pcm_oss_open()
2464 if (pcm) in snd_pcm_oss_open()
2465 snd_card_unref(pcm->card); in snd_pcm_oss_open()
2471 struct snd_pcm *pcm; in snd_pcm_oss_release() local
2481 pcm = substream->pcm; in snd_pcm_oss_release()
2482 if (!pcm->card->shutdown) in snd_pcm_oss_release()
2484 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_release()
2486 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_release()
2487 wake_up(&pcm->open_wait); in snd_pcm_oss_release()
2488 module_put(pcm->card->module); in snd_pcm_oss_release()
2489 snd_card_file_remove(pcm->card, file); in snd_pcm_oss_release()
2515 return snd_mixer_oss_ioctl_card(substream->pcm->card, cmd, arg); in snd_pcm_oss_ioctl()
2675 pcm_dbg(substream->pcm, in snd_pcm_oss_read()
2696 pcm_dbg(substream->pcm, "pcm_oss: write %li bytes (wrote %li bytes)\n", in snd_pcm_oss_write()
2957 static void snd_pcm_oss_proc_init(struct snd_pcm *pcm) in snd_pcm_oss_proc_init() argument
2962 struct snd_pcm_str *pstr = &pcm->streams[stream]; in snd_pcm_oss_proc_init()
2965 if ((entry = snd_info_create_card_entry(pcm->card, "oss", pstr->proc_root)) != NULL) { in snd_pcm_oss_proc_init()
2980 static void snd_pcm_oss_proc_done(struct snd_pcm *pcm) in snd_pcm_oss_proc_done() argument
2984 struct snd_pcm_str *pstr = &pcm->streams[stream]; in snd_pcm_oss_proc_done()
2991 #define snd_pcm_oss_proc_init(pcm) argument
2992 #define snd_pcm_oss_proc_done(pcm) argument
3013 static void register_oss_dsp(struct snd_pcm *pcm, int index) in register_oss_dsp() argument
3016 pcm->card, index, &snd_pcm_oss_f_reg, in register_oss_dsp()
3017 pcm) < 0) { in register_oss_dsp()
3018 pcm_err(pcm, "unable to register OSS PCM device %i:%i\n", in register_oss_dsp()
3019 pcm->card->number, pcm->device); in register_oss_dsp()
3023 static int snd_pcm_oss_register_minor(struct snd_pcm *pcm) in snd_pcm_oss_register_minor() argument
3025 pcm->oss.reg = 0; in snd_pcm_oss_register_minor()
3026 if (dsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_register_minor()
3029 register_oss_dsp(pcm, 0); in snd_pcm_oss_register_minor()
3030 duplex = (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream_count > 0 && in snd_pcm_oss_register_minor()
3031 pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream_count && in snd_pcm_oss_register_minor()
3032 !(pcm->info_flags & SNDRV_PCM_INFO_HALF_DUPLEX)); in snd_pcm_oss_register_minor()
3033 sprintf(name, "%s%s", pcm->name, duplex ? " (DUPLEX)" : ""); in snd_pcm_oss_register_minor()
3036 pcm->card->number, in snd_pcm_oss_register_minor()
3039 pcm->oss.reg++; in snd_pcm_oss_register_minor()
3040 pcm->oss.reg_mask |= 1; in snd_pcm_oss_register_minor()
3042 if (adsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_register_minor()
3043 register_oss_dsp(pcm, 1); in snd_pcm_oss_register_minor()
3044 pcm->oss.reg++; in snd_pcm_oss_register_minor()
3045 pcm->oss.reg_mask |= 2; in snd_pcm_oss_register_minor()
3048 if (pcm->oss.reg) in snd_pcm_oss_register_minor()
3049 snd_pcm_oss_proc_init(pcm); in snd_pcm_oss_register_minor()
3054 static int snd_pcm_oss_disconnect_minor(struct snd_pcm *pcm) in snd_pcm_oss_disconnect_minor() argument
3056 if (pcm->oss.reg) { in snd_pcm_oss_disconnect_minor()
3057 if (pcm->oss.reg_mask & 1) { in snd_pcm_oss_disconnect_minor()
3058 pcm->oss.reg_mask &= ~1; in snd_pcm_oss_disconnect_minor()
3060 pcm->card, 0); in snd_pcm_oss_disconnect_minor()
3062 if (pcm->oss.reg_mask & 2) { in snd_pcm_oss_disconnect_minor()
3063 pcm->oss.reg_mask &= ~2; in snd_pcm_oss_disconnect_minor()
3065 pcm->card, 1); in snd_pcm_oss_disconnect_minor()
3067 if (dsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_disconnect_minor()
3069 snd_oss_info_unregister(SNDRV_OSS_INFO_DEV_AUDIO, pcm->card->number); in snd_pcm_oss_disconnect_minor()
3072 pcm->oss.reg = 0; in snd_pcm_oss_disconnect_minor()
3077 static int snd_pcm_oss_unregister_minor(struct snd_pcm *pcm) in snd_pcm_oss_unregister_minor() argument
3079 snd_pcm_oss_disconnect_minor(pcm); in snd_pcm_oss_unregister_minor()
3080 snd_pcm_oss_proc_done(pcm); in snd_pcm_oss_unregister_minor()