Lines Matching refs:pcm

181 static int snd_pcm_hw_param_mask(struct snd_pcm_substream *pcm,  in snd_pcm_hw_param_mask()  argument
190 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_mask()
240 static int snd_pcm_hw_param_min(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_min() argument
249 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_min()
301 static int snd_pcm_hw_param_max(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_max() argument
310 int err = snd_pcm_hw_refine(pcm, params); in snd_pcm_hw_param_max()
375 static int snd_pcm_hw_param_near(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_near() argument
405 min = snd_pcm_hw_param_min(pcm, params, var, min, &mindir); in snd_pcm_hw_param_near()
418 max = snd_pcm_hw_param_max(pcm, params1, var, max, &maxdir); in snd_pcm_hw_param_near()
430 max = snd_pcm_hw_param_max(pcm, params, var, max, &maxdir); in snd_pcm_hw_param_near()
440 v = snd_pcm_hw_param_last(pcm, params, var, dir); in snd_pcm_hw_param_near()
442 v = snd_pcm_hw_param_first(pcm, params, var, dir); in snd_pcm_hw_param_near()
506 static int snd_pcm_hw_param_set(struct snd_pcm_substream *pcm, in snd_pcm_hw_param_set() argument
515 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_locked()
912 pcm_dbg(substream->pcm, "Cannot find a format!!!\n"); in snd_pcm_oss_change_params_locked()
962 pcm_dbg(substream->pcm, "HW_PARAMS failed: %i\n", err); in snd_pcm_oss_change_params_locked()
973 pcm_dbg(substream->pcm, in snd_pcm_oss_change_params_locked()
982 pcm_dbg(substream->pcm, in snd_pcm_oss_change_params_locked()
1029 pcm_dbg(substream->pcm, "SW_PARAMS failed: %i\n", err); in snd_pcm_oss_change_params_locked()
1144 pcm_dbg(substream->pcm, in snd_pcm_oss_prepare()
1231 pcm_dbg(substream->pcm, in snd_pcm_oss_write3()
1263 pcm_dbg(substream->pcm, in snd_pcm_oss_read3()
1306 pcm_dbg(substream->pcm, in snd_pcm_oss_writev3()
1335 pcm_dbg(substream->pcm, in snd_pcm_oss_readv3()
1612 pcm_dbg(substream->pcm, "sync1: size = %li\n", size); in snd_pcm_oss_sync1()
1638 pcm_err(substream->pcm, in snd_pcm_oss_sync1()
1675 pcm_dbg(substream->pcm, "sync: buffer_used\n"); in snd_pcm_oss_sync()
1686 pcm_dbg(substream->pcm, "sync: period_ptr\n"); in snd_pcm_oss_sync()
2068 pcm_dbg(substream->pcm, "pcm_oss: trigger = 0x%x\n", trigger); in snd_pcm_oss_set_trigger()
2306 pcm_dbg(substream->pcm, in snd_pcm_oss_get_space()
2332 static void snd_pcm_oss_look_for_setup(struct snd_pcm *pcm, int stream, in snd_pcm_oss_look_for_setup() argument
2338 mutex_lock(&pcm->streams[stream].oss.setup_mutex); in snd_pcm_oss_look_for_setup()
2340 for (setup = pcm->streams[stream].oss.setup_list; setup; in snd_pcm_oss_look_for_setup()
2349 mutex_unlock(&pcm->streams[stream].oss.setup_mutex); in snd_pcm_oss_look_for_setup()
2414 struct snd_pcm *pcm, in snd_pcm_oss_open_file() argument
2432 (pcm->info_flags & SNDRV_PCM_INFO_HALF_DUPLEX)) in snd_pcm_oss_open_file()
2439 if (! pcm->streams[idx].substream_count) in snd_pcm_oss_open_file()
2448 err = snd_pcm_open_substream(pcm, idx, file, &substream); in snd_pcm_oss_open_file()
2486 struct snd_pcm *pcm; in snd_pcm_oss_open() local
2496 pcm = snd_lookup_oss_minor_data(iminor(inode), in snd_pcm_oss_open()
2498 if (pcm == NULL) { in snd_pcm_oss_open()
2502 err = snd_card_file_add(pcm->card, file); in snd_pcm_oss_open()
2505 if (!try_module_get(pcm->card->module)) { in snd_pcm_oss_open()
2515 snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_PLAYBACK, in snd_pcm_oss_open()
2518 snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_CAPTURE, in snd_pcm_oss_open()
2526 add_wait_queue(&pcm->open_wait, &wait); in snd_pcm_oss_open()
2527 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_open()
2529 err = snd_pcm_oss_open_file(file, pcm, &pcm_oss_file, in snd_pcm_oss_open()
2541 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_open()
2543 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_open()
2544 if (pcm->card->shutdown) { in snd_pcm_oss_open()
2553 remove_wait_queue(&pcm->open_wait, &wait); in snd_pcm_oss_open()
2554 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_open()
2557 snd_card_unref(pcm->card); in snd_pcm_oss_open()
2561 module_put(pcm->card->module); in snd_pcm_oss_open()
2563 snd_card_file_remove(pcm->card, file); in snd_pcm_oss_open()
2565 if (pcm) in snd_pcm_oss_open()
2566 snd_card_unref(pcm->card); in snd_pcm_oss_open()
2572 struct snd_pcm *pcm; in snd_pcm_oss_release() local
2582 pcm = substream->pcm; in snd_pcm_oss_release()
2583 if (!pcm->card->shutdown) in snd_pcm_oss_release()
2585 mutex_lock(&pcm->open_mutex); in snd_pcm_oss_release()
2587 mutex_unlock(&pcm->open_mutex); in snd_pcm_oss_release()
2588 wake_up(&pcm->open_wait); in snd_pcm_oss_release()
2589 module_put(pcm->card->module); in snd_pcm_oss_release()
2590 snd_card_file_remove(pcm->card, file); in snd_pcm_oss_release()
2616 return snd_mixer_oss_ioctl_card(substream->pcm->card, cmd, arg); in snd_pcm_oss_ioctl()
2786 pcm_dbg(substream->pcm, in snd_pcm_oss_read()
2807 pcm_dbg(substream->pcm, "pcm_oss: write %li bytes (wrote %li bytes)\n", in snd_pcm_oss_write()
3069 static void snd_pcm_oss_proc_init(struct snd_pcm *pcm) in snd_pcm_oss_proc_init() argument
3074 struct snd_pcm_str *pstr = &pcm->streams[stream]; in snd_pcm_oss_proc_init()
3077 entry = snd_info_create_card_entry(pcm->card, "oss", pstr->proc_root); in snd_pcm_oss_proc_init()
3093 static void snd_pcm_oss_proc_done(struct snd_pcm *pcm) in snd_pcm_oss_proc_done() argument
3097 struct snd_pcm_str *pstr = &pcm->streams[stream]; in snd_pcm_oss_proc_done()
3104 static inline void snd_pcm_oss_proc_init(struct snd_pcm *pcm) in snd_pcm_oss_proc_init() argument
3107 static inline void snd_pcm_oss_proc_done(struct snd_pcm *pcm) in snd_pcm_oss_proc_done() argument
3130 static void register_oss_dsp(struct snd_pcm *pcm, int index) in register_oss_dsp() argument
3133 pcm->card, index, &snd_pcm_oss_f_reg, in register_oss_dsp()
3134 pcm) < 0) { in register_oss_dsp()
3135 pcm_err(pcm, "unable to register OSS PCM device %i:%i\n", in register_oss_dsp()
3136 pcm->card->number, pcm->device); in register_oss_dsp()
3140 static int snd_pcm_oss_register_minor(struct snd_pcm *pcm) in snd_pcm_oss_register_minor() argument
3142 pcm->oss.reg = 0; in snd_pcm_oss_register_minor()
3143 if (dsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_register_minor()
3146 register_oss_dsp(pcm, 0); in snd_pcm_oss_register_minor()
3147 duplex = (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream_count > 0 && in snd_pcm_oss_register_minor()
3148 pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream_count && in snd_pcm_oss_register_minor()
3149 !(pcm->info_flags & SNDRV_PCM_INFO_HALF_DUPLEX)); in snd_pcm_oss_register_minor()
3150 sprintf(name, "%s%s", pcm->name, duplex ? " (DUPLEX)" : ""); in snd_pcm_oss_register_minor()
3153 pcm->card->number, in snd_pcm_oss_register_minor()
3156 pcm->oss.reg++; in snd_pcm_oss_register_minor()
3157 pcm->oss.reg_mask |= 1; in snd_pcm_oss_register_minor()
3159 if (adsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_register_minor()
3160 register_oss_dsp(pcm, 1); in snd_pcm_oss_register_minor()
3161 pcm->oss.reg++; in snd_pcm_oss_register_minor()
3162 pcm->oss.reg_mask |= 2; in snd_pcm_oss_register_minor()
3165 if (pcm->oss.reg) in snd_pcm_oss_register_minor()
3166 snd_pcm_oss_proc_init(pcm); in snd_pcm_oss_register_minor()
3171 static int snd_pcm_oss_disconnect_minor(struct snd_pcm *pcm) in snd_pcm_oss_disconnect_minor() argument
3173 if (pcm->oss.reg) { in snd_pcm_oss_disconnect_minor()
3174 if (pcm->oss.reg_mask & 1) { in snd_pcm_oss_disconnect_minor()
3175 pcm->oss.reg_mask &= ~1; in snd_pcm_oss_disconnect_minor()
3177 pcm->card, 0); in snd_pcm_oss_disconnect_minor()
3179 if (pcm->oss.reg_mask & 2) { in snd_pcm_oss_disconnect_minor()
3180 pcm->oss.reg_mask &= ~2; in snd_pcm_oss_disconnect_minor()
3182 pcm->card, 1); in snd_pcm_oss_disconnect_minor()
3184 if (dsp_map[pcm->card->number] == (int)pcm->device) { in snd_pcm_oss_disconnect_minor()
3186 snd_oss_info_unregister(SNDRV_OSS_INFO_DEV_AUDIO, pcm->card->number); in snd_pcm_oss_disconnect_minor()
3189 pcm->oss.reg = 0; in snd_pcm_oss_disconnect_minor()
3194 static int snd_pcm_oss_unregister_minor(struct snd_pcm *pcm) in snd_pcm_oss_unregister_minor() argument
3196 snd_pcm_oss_disconnect_minor(pcm); in snd_pcm_oss_unregister_minor()
3197 snd_pcm_oss_proc_done(pcm); in snd_pcm_oss_unregister_minor()