Lines Matching refs:pcm
196 static int snd_pcm_hw_param_mask(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_mask() argument
205 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_mask()
255 static int snd_pcm_hw_param_min(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_min() argument
264 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_min()
316 static int snd_pcm_hw_param_max(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_max() argument
325 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_max()
390 static int snd_pcm_hw_param_near(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_near() argument
420 min = snd_pcm_hw_param_min(pcm, params, var, min, &mindir); in snd_pcm_hw_param_near()
433 max = snd_pcm_hw_param_max(pcm, params1, var, max, &maxdir); in snd_pcm_hw_param_near()
445 max = snd_pcm_hw_param_max(pcm, params, var, max, &maxdir); in snd_pcm_hw_param_near()
455 v = snd_pcm_hw_param_last(pcm, params, var, dir); in snd_pcm_hw_param_near()
457 v = snd_pcm_hw_param_first(pcm, params, var, dir); in snd_pcm_hw_param_near()
521 static int snd_pcm_hw_param_set(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_set() argument
530 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_set()
886 pcm_dbg(substream->pcm, "No usable accesses\n"); in snd_pcm_oss_change_params_locked()
911 pcm_dbg(substream->pcm, "Cannot find a format!!!\n"); in snd_pcm_oss_change_params_locked()
951 pcm_dbg(substream->pcm, in snd_pcm_oss_change_params_locked()
959 pcm_dbg(substream->pcm, in snd_pcm_oss_change_params_locked()
994 pcm_dbg(substream->pcm, "HW_PARAMS failed: %i\n", err); in snd_pcm_oss_change_params_locked()
1026 pcm_dbg(substream->pcm, "SW_PARAMS failed: %i\n", err); in snd_pcm_oss_change_params_locked()
1141 pcm_dbg(substream->pcm, in snd_pcm_oss_prepare()
1228 pcm_dbg(substream->pcm, in snd_pcm_oss_write3()
1258 pcm_dbg(substream->pcm, in snd_pcm_oss_read3()
1299 pcm_dbg(substream->pcm, in snd_pcm_oss_writev3()
1328 pcm_dbg(substream->pcm, in snd_pcm_oss_readv3()
1604 pcm_dbg(substream->pcm, "sync1: size = %li\n", size); in snd_pcm_oss_sync1()
1630 pcm_err(substream->pcm, in snd_pcm_oss_sync1()
1666 pcm_dbg(substream->pcm, "sync: buffer_used\n"); in snd_pcm_oss_sync()
1677 pcm_dbg(substream->pcm, "sync: period_ptr\n"); in snd_pcm_oss_sync()
2049 pcm_dbg(substream->pcm, "pcm_oss: trigger = 0x%x\n", trigger); in snd_pcm_oss_set_trigger()
2281 pcm_dbg(substream->pcm, in snd_pcm_oss_get_space()
2307 static void snd_pcm_oss_look_for_setup(struct snd_pcm *pcm, int stream, in snd_pcm_oss_look_for_setup() argument
2313 mutex_lock(&pcm->streams[stream].oss.setup_mutex); in snd_pcm_oss_look_for_setup()
2315 for (setup = pcm->streams[stream].oss.setup_list; setup; in snd_pcm_oss_look_for_setup()
2324 mutex_unlock(&pcm->streams[stream].oss.setup_mutex); in snd_pcm_oss_look_for_setup()
2389 struct snd_pcm *pcm, in snd_pcm_oss_open_file() argument
2407 (pcm->info_flags & SNDRV_PCM_INFO_HALF_DUPLEX)) in snd_pcm_oss_open_file()
2414 if (! pcm->streams[idx].substream_count) in snd_pcm_oss_open_file()
2423 err = snd_pcm_open_substream(pcm, idx, file, &substream); in snd_pcm_oss_open_file()
2462 struct snd_pcm *pcm; in snd_pcm_oss_open() local
2472 pcm = snd_lookup_oss_minor_data(iminor(inode), in snd_pcm_oss_open()
2474 if (pcm == NULL) { in snd_pcm_oss_open()
2478 err = snd_card_file_add(pcm->card, file); in snd_pcm_oss_open()
2481 if (!try_module_get(pcm->card->module)) { in snd_pcm_oss_open()
2491 snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_PLAYBACK, in snd_pcm_oss_open()
2494 snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_CAPTURE, in snd_pcm_oss_open()
2502 add_wait_queue(&pcm->open_wait, &wait); in snd_pcm_oss_open()
2503 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_open()
2505 err = snd_pcm_oss_open_file(file, pcm, &pcm_oss_file, in snd_pcm_oss_open()
2517 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_open()
2519 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_open()
2520 if (pcm->card->shutdown) { in snd_pcm_oss_open()
2529 remove_wait_queue(&pcm->open_wait, &wait); in snd_pcm_oss_open()
2530 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_open()
2533 snd_card_unref(pcm->card); in snd_pcm_oss_open()
2537 module_put(pcm->card->module); in snd_pcm_oss_open()
2539 snd_card_file_remove(pcm->card, file); in snd_pcm_oss_open()
2541 if (pcm) in snd_pcm_oss_open()
2542 snd_card_unref(pcm->card); in snd_pcm_oss_open()
2548 struct snd_pcm *pcm; in snd_pcm_oss_release() local
2558 pcm = substream->pcm; in snd_pcm_oss_release()
2559 if (!pcm->card->shutdown) in snd_pcm_oss_release()
2561 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_release()
2563 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_release()
2564 wake_up(&pcm->open_wait); in snd_pcm_oss_release()
2565 module_put(pcm->card->module); in snd_pcm_oss_release()
2566 snd_card_file_remove(pcm->card, file); in snd_pcm_oss_release()
2592 return snd_mixer_oss_ioctl_card(substream->pcm->card, cmd, arg); in snd_pcm_oss_ioctl()
2756 pcm_dbg(substream->pcm, in snd_pcm_oss_read()
2777 pcm_dbg(substream->pcm, "pcm_oss: write %li bytes (wrote %li bytes)\n", in snd_pcm_oss_write()
3038 static void snd_pcm_oss_proc_init(struct snd_pcm *pcm) in snd_pcm_oss_proc_init() argument
3043 struct snd_pcm_str *pstr = &pcm->streams[stream]; in snd_pcm_oss_proc_init()
3046 if ((entry = snd_info_create_card_entry(pcm->card, "oss", pstr->proc_root)) != NULL) { in snd_pcm_oss_proc_init()
3061 static void snd_pcm_oss_proc_done(struct snd_pcm *pcm) in snd_pcm_oss_proc_done() argument
3065 struct snd_pcm_str *pstr = &pcm->streams[stream]; in snd_pcm_oss_proc_done()
3072 #define snd_pcm_oss_proc_init(pcm) argument
3073 #define snd_pcm_oss_proc_done(pcm) argument
3094 static void register_oss_dsp(struct snd_pcm *pcm, int index) in register_oss_dsp() argument
3097 pcm->card, index, &snd_pcm_oss_f_reg, in register_oss_dsp()
3098 pcm) < 0) { in register_oss_dsp()
3099 pcm_err(pcm, "unable to register OSS PCM device %i:%i\n", in register_oss_dsp()
3100 pcm->card->number, pcm->device); in register_oss_dsp()
3104 static int snd_pcm_oss_register_minor(struct snd_pcm *pcm) in snd_pcm_oss_register_minor() argument
3106 pcm->oss.reg = 0; in snd_pcm_oss_register_minor()
3107 if (dsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_register_minor()
3110 register_oss_dsp(pcm, 0); in snd_pcm_oss_register_minor()
3111 duplex = (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream_count > 0 && in snd_pcm_oss_register_minor()
3112 pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream_count && in snd_pcm_oss_register_minor()
3113 !(pcm->info_flags & SNDRV_PCM_INFO_HALF_DUPLEX)); in snd_pcm_oss_register_minor()
3114 sprintf(name, "%s%s", pcm->name, duplex ? " (DUPLEX)" : ""); in snd_pcm_oss_register_minor()
3117 pcm->card->number, in snd_pcm_oss_register_minor()
3120 pcm->oss.reg++; in snd_pcm_oss_register_minor()
3121 pcm->oss.reg_mask |= 1; in snd_pcm_oss_register_minor()
3123 if (adsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_register_minor()
3124 register_oss_dsp(pcm, 1); in snd_pcm_oss_register_minor()
3125 pcm->oss.reg++; in snd_pcm_oss_register_minor()
3126 pcm->oss.reg_mask |= 2; in snd_pcm_oss_register_minor()
3129 if (pcm->oss.reg) in snd_pcm_oss_register_minor()
3130 snd_pcm_oss_proc_init(pcm); in snd_pcm_oss_register_minor()
3135 static int snd_pcm_oss_disconnect_minor(struct snd_pcm *pcm) in snd_pcm_oss_disconnect_minor() argument
3137 if (pcm->oss.reg) { in snd_pcm_oss_disconnect_minor()
3138 if (pcm->oss.reg_mask & 1) { in snd_pcm_oss_disconnect_minor()
3139 pcm->oss.reg_mask &= ~1; in snd_pcm_oss_disconnect_minor()
3141 pcm->card, 0); in snd_pcm_oss_disconnect_minor()
3143 if (pcm->oss.reg_mask & 2) { in snd_pcm_oss_disconnect_minor()
3144 pcm->oss.reg_mask &= ~2; in snd_pcm_oss_disconnect_minor()
3146 pcm->card, 1); in snd_pcm_oss_disconnect_minor()
3148 if (dsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_disconnect_minor()
3150 snd_oss_info_unregister(SNDRV_OSS_INFO_DEV_AUDIO, pcm->card->number); in snd_pcm_oss_disconnect_minor()
3153 pcm->oss.reg = 0; in snd_pcm_oss_disconnect_minor()
3158 static int snd_pcm_oss_unregister_minor(struct snd_pcm *pcm) in snd_pcm_oss_unregister_minor() argument
3160 snd_pcm_oss_disconnect_minor(pcm); in snd_pcm_oss_unregister_minor()
3161 snd_pcm_oss_proc_done(pcm); in snd_pcm_oss_unregister_minor()