Lines Matching refs:pair

93 static int fsl_asrc_request_pair(int channels, struct fsl_asrc_pair *pair)  in fsl_asrc_request_pair()  argument
96 struct fsl_asrc *asrc_priv = pair->asrc_priv; in fsl_asrc_request_pair()
104 if (asrc_priv->pair[i] != NULL) in fsl_asrc_request_pair()
121 asrc_priv->pair[index] = pair; in fsl_asrc_request_pair()
122 pair->channels = channels; in fsl_asrc_request_pair()
123 pair->index = index; in fsl_asrc_request_pair()
136 static void fsl_asrc_release_pair(struct fsl_asrc_pair *pair) in fsl_asrc_release_pair() argument
138 struct fsl_asrc *asrc_priv = pair->asrc_priv; in fsl_asrc_release_pair()
139 enum asrc_pair_index index = pair->index; in fsl_asrc_release_pair()
148 asrc_priv->channel_avail += pair->channels; in fsl_asrc_release_pair()
149 asrc_priv->pair[index] = NULL; in fsl_asrc_release_pair()
150 pair->error = 0; in fsl_asrc_release_pair()
158 static void fsl_asrc_set_watermarks(struct fsl_asrc_pair *pair, u32 in, u32 out) in fsl_asrc_set_watermarks() argument
160 struct fsl_asrc *asrc_priv = pair->asrc_priv; in fsl_asrc_set_watermarks()
161 enum asrc_pair_index index = pair->index; in fsl_asrc_set_watermarks()
177 static u32 fsl_asrc_cal_asrck_divisor(struct fsl_asrc_pair *pair, u32 div) in fsl_asrc_cal_asrck_divisor() argument
193 static int fsl_asrc_set_ideal_ratio(struct fsl_asrc_pair *pair, in fsl_asrc_set_ideal_ratio() argument
196 struct fsl_asrc *asrc_priv = pair->asrc_priv; in fsl_asrc_set_ideal_ratio()
197 enum asrc_pair_index index = pair->index; in fsl_asrc_set_ideal_ratio()
238 static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair) in fsl_asrc_config_pair() argument
240 struct asrc_config *config = pair->config; in fsl_asrc_config_pair()
241 struct fsl_asrc *asrc_priv = pair->asrc_priv; in fsl_asrc_config_pair()
242 enum asrc_pair_index index = pair->index; in fsl_asrc_config_pair()
341 indiv = fsl_asrc_cal_asrck_divisor(pair, div[IN]); in fsl_asrc_config_pair()
342 outdiv = fsl_asrc_cal_asrck_divisor(pair, div[OUT]); in fsl_asrc_config_pair()
361 fsl_asrc_set_watermarks(pair, ASRC_INPUTFIFO_THRESHOLD, in fsl_asrc_config_pair()
383 return fsl_asrc_set_ideal_ratio(pair, inrate, outrate); in fsl_asrc_config_pair()
391 static void fsl_asrc_start_pair(struct fsl_asrc_pair *pair) in fsl_asrc_start_pair() argument
393 struct fsl_asrc *asrc_priv = pair->asrc_priv; in fsl_asrc_start_pair()
394 enum asrc_pair_index index = pair->index; in fsl_asrc_start_pair()
410 for (i = 0; i < pair->channels * 4; i++) in fsl_asrc_start_pair()
420 static void fsl_asrc_stop_pair(struct fsl_asrc_pair *pair) in fsl_asrc_stop_pair() argument
422 struct fsl_asrc *asrc_priv = pair->asrc_priv; in fsl_asrc_stop_pair()
423 enum asrc_pair_index index = pair->index; in fsl_asrc_stop_pair()
433 struct dma_chan *fsl_asrc_get_dma_channel(struct fsl_asrc_pair *pair, bool dir) in fsl_asrc_get_dma_channel() argument
435 struct fsl_asrc *asrc_priv = pair->asrc_priv; in fsl_asrc_get_dma_channel()
436 enum asrc_pair_index index = pair->index; in fsl_asrc_get_dma_channel()
452 struct fsl_asrc_pair *pair = runtime->private_data; in fsl_asrc_dai_hw_params() local
458 ret = fsl_asrc_request_pair(channels, pair); in fsl_asrc_dai_hw_params()
464 pair->config = &config; in fsl_asrc_dai_hw_params()
476 config.pair = pair->index; in fsl_asrc_dai_hw_params()
493 ret = fsl_asrc_config_pair(pair); in fsl_asrc_dai_hw_params()
506 struct fsl_asrc_pair *pair = runtime->private_data; in fsl_asrc_dai_hw_free() local
508 if (pair) in fsl_asrc_dai_hw_free()
509 fsl_asrc_release_pair(pair); in fsl_asrc_dai_hw_free()
518 struct fsl_asrc_pair *pair = runtime->private_data; in fsl_asrc_dai_trigger() local
524 fsl_asrc_start_pair(pair); in fsl_asrc_dai_trigger()
529 fsl_asrc_stop_pair(pair); in fsl_asrc_dai_trigger()
775 if (!asrc_priv->pair[index]) in fsl_asrc_isr()
779 asrc_priv->pair[index]->error |= ASRC_TASK_Q_OVERLOAD; in fsl_asrc_isr()
784 asrc_priv->pair[index]->error |= ASRC_OUTPUT_TASK_OVERLOAD; in fsl_asrc_isr()
789 asrc_priv->pair[index]->error |= ASRC_INPUT_TASK_OVERLOAD; in fsl_asrc_isr()
794 asrc_priv->pair[index]->error |= ASRC_OUTPUT_BUFFER_OVERFLOW; in fsl_asrc_isr()
799 asrc_priv->pair[index]->error |= ASRC_INPUT_BUFFER_UNDERRUN; in fsl_asrc_isr()