Lines Matching refs:ctx_priv
176 struct fsl_easrc_ctx_priv *ctx_priv = ctx->private; in fsl_easrc_set_rs_ratio() local
177 unsigned int in_rate = ctx_priv->in_params.norm_rate; in fsl_easrc_set_rs_ratio()
178 unsigned int out_rate = ctx_priv->out_params.norm_rate; in fsl_easrc_set_rs_ratio()
220 struct fsl_easrc_ctx_priv *ctx_priv; in fsl_easrc_normalize_rates() local
226 ctx_priv = ctx->private; in fsl_easrc_normalize_rates()
228 a = ctx_priv->in_params.sample_rate; in fsl_easrc_normalize_rates()
229 b = ctx_priv->out_params.sample_rate; in fsl_easrc_normalize_rates()
234 ctx_priv->in_params.norm_rate = ctx_priv->in_params.sample_rate / a; in fsl_easrc_normalize_rates()
235 ctx_priv->out_params.norm_rate = ctx_priv->out_params.sample_rate / a; in fsl_easrc_normalize_rates()
473 struct fsl_easrc_ctx_priv *ctx_priv; in fsl_easrc_prefilter_config() local
496 ctx_priv = ctx->private; in fsl_easrc_prefilter_config()
498 in_s_rate = ctx_priv->in_params.sample_rate; in fsl_easrc_prefilter_config()
499 out_s_rate = ctx_priv->out_params.sample_rate; in fsl_easrc_prefilter_config()
500 in_s_fmt = ctx_priv->in_params.sample_format; in fsl_easrc_prefilter_config()
501 out_s_fmt = ctx_priv->out_params.sample_format; in fsl_easrc_prefilter_config()
503 ctx_priv->in_filled_sample = bits_taps_to_val(easrc_priv->rs_num_taps) / 2; in fsl_easrc_prefilter_config()
504 ctx_priv->out_missed_sample = ctx_priv->in_filled_sample * out_s_rate / in_s_rate; in fsl_easrc_prefilter_config()
506 ctx_priv->st1_num_taps = 0; in fsl_easrc_prefilter_config()
507 ctx_priv->st2_num_taps = 0; in fsl_easrc_prefilter_config()
558 ctx_priv->st1_num_taps = 1; in fsl_easrc_prefilter_config()
559 ctx_priv->st1_coeff = &easrc_priv->const_coeff; in fsl_easrc_prefilter_config()
560 ctx_priv->st1_num_exp = 1; in fsl_easrc_prefilter_config()
561 ctx_priv->st2_num_taps = 0; in fsl_easrc_prefilter_config()
565 ctx_priv->st1_addexp = 31; in fsl_easrc_prefilter_config()
568 ctx_priv->st1_addexp -= ctx_priv->in_params.fmt.addexp; in fsl_easrc_prefilter_config()
570 inrate = ctx_priv->in_params.norm_rate; in fsl_easrc_prefilter_config()
571 outrate = ctx_priv->out_params.norm_rate; in fsl_easrc_prefilter_config()
601 ctx_priv->st1_num_taps = selected_prefil->st1_taps; in fsl_easrc_prefilter_config()
602 ctx_priv->st1_coeff = selected_prefil->coeff; in fsl_easrc_prefilter_config()
603 ctx_priv->st1_num_exp = selected_prefil->st1_exp; in fsl_easrc_prefilter_config()
606 ctx_priv->st2_num_taps = selected_prefil->st2_taps; in fsl_easrc_prefilter_config()
607 ctx_priv->st2_coeff = selected_prefil->coeff + offset; in fsl_easrc_prefilter_config()
612 if (ctx_priv->st2_num_taps > 0) in fsl_easrc_prefilter_config()
613 ctx_priv->st2_addexp = 31; in fsl_easrc_prefilter_config()
615 ctx_priv->st1_addexp = 31; in fsl_easrc_prefilter_config()
618 if (ctx_priv->st2_num_taps > 0) in fsl_easrc_prefilter_config()
619 ctx_priv->st2_addexp -= ctx_priv->in_params.fmt.addexp; in fsl_easrc_prefilter_config()
621 ctx_priv->st1_addexp -= ctx_priv->in_params.fmt.addexp; in fsl_easrc_prefilter_config()
625 ctx_priv->in_filled_sample += (ctx_priv->st1_num_taps / 2) * ctx_priv->st1_num_exp + in fsl_easrc_prefilter_config()
626 ctx_priv->st2_num_taps / 2; in fsl_easrc_prefilter_config()
627 ctx_priv->out_missed_sample = ctx_priv->in_filled_sample * out_s_rate / in_s_rate; in fsl_easrc_prefilter_config()
629 if (ctx_priv->in_filled_sample * out_s_rate % in_s_rate != 0) in fsl_easrc_prefilter_config()
630 ctx_priv->out_missed_sample += 1; in fsl_easrc_prefilter_config()
639 if (ctx_priv->st1_num_taps > EASRC_MAX_PF_TAPS) { in fsl_easrc_prefilter_config()
641 ctx_priv->st1_num_taps, EASRC_MAX_PF_TAPS); in fsl_easrc_prefilter_config()
649 EASRC_CCE2_ST1_TAPS(ctx_priv->st1_num_taps - 1)); in fsl_easrc_prefilter_config()
657 ctx_priv->st1_coeff, in fsl_easrc_prefilter_config()
658 ctx_priv->st1_num_taps, in fsl_easrc_prefilter_config()
659 ctx_priv->st1_addexp); in fsl_easrc_prefilter_config()
663 if (ctx_priv->st2_num_taps > 0) { in fsl_easrc_prefilter_config()
664 if (ctx_priv->st2_num_taps + ctx_priv->st1_num_taps > EASRC_MAX_PF_TAPS) { in fsl_easrc_prefilter_config()
666 ctx_priv->st2_num_taps, EASRC_MAX_PF_TAPS); in fsl_easrc_prefilter_config()
684 EASRC_CCE1_PF_EXP(ctx_priv->st1_num_exp - 1)); in fsl_easrc_prefilter_config()
689 EASRC_CCE2_ST2_TAPS(ctx_priv->st2_num_taps - 1)); in fsl_easrc_prefilter_config()
697 ctx_priv->st2_coeff, in fsl_easrc_prefilter_config()
698 ctx_priv->st2_num_taps, in fsl_easrc_prefilter_config()
699 ctx_priv->st2_addexp); in fsl_easrc_prefilter_config()
713 struct fsl_easrc_ctx_priv *ctx_priv = ctx->private; in fsl_easrc_max_ch_for_slot() local
719 if (ctx_priv->st1_num_taps > 0) { in fsl_easrc_max_ch_for_slot()
720 if (ctx_priv->st2_num_taps > 0) in fsl_easrc_max_ch_for_slot()
722 (ctx_priv->st1_num_taps - 1) * ctx_priv->st1_num_exp + 1; in fsl_easrc_max_ch_for_slot()
724 st1_mem_alloc = ctx_priv->st1_num_taps; in fsl_easrc_max_ch_for_slot()
727 if (ctx_priv->st2_num_taps > 0) in fsl_easrc_max_ch_for_slot()
728 st2_mem_alloc = ctx_priv->st2_num_taps; in fsl_easrc_max_ch_for_slot()
751 struct fsl_easrc_ctx_priv *ctx_priv = ctx->private; in fsl_easrc_config_one_slot() local
798 if (ctx_priv->st1_num_taps > 0) { in fsl_easrc_config_one_slot()
799 if (ctx_priv->st2_num_taps > 0) in fsl_easrc_config_one_slot()
801 (ctx_priv->st1_num_taps - 1) * slot->num_channel * in fsl_easrc_config_one_slot()
802 ctx_priv->st1_num_exp + slot->num_channel; in fsl_easrc_config_one_slot()
804 st1_mem_alloc = ctx_priv->st1_num_taps * slot->num_channel; in fsl_easrc_config_one_slot()
821 if (ctx_priv->st2_num_taps > 0) { in fsl_easrc_config_one_slot()
822 st1_chanxexp = slot->num_channel * (ctx_priv->st1_num_exp - 1); in fsl_easrc_config_one_slot()
828 st2_mem_alloc = slot->num_channel * ctx_priv->st2_num_taps; in fsl_easrc_config_one_slot()
966 struct fsl_easrc_ctx_priv *ctx_priv; in fsl_easrc_config_context() local
984 ctx_priv = ctx->private; in fsl_easrc_config_context()
1012 EASRC_CCE1_RS_INIT(ctx_priv->rs_init_mode)); in fsl_easrc_config_context()
1016 EASRC_CCE1_PF_INIT(ctx_priv->pf_init_mode)); in fsl_easrc_config_context()
1024 EASRC_CC_FIFO_WTMK(ctx_priv->in_params.fifo_wtmk)); in fsl_easrc_config_context()
1033 EASRC_COC_FIFO_WTMK(ctx_priv->out_params.fifo_wtmk - 1)); in fsl_easrc_config_context()
1130 struct fsl_easrc_ctx_priv *ctx_priv = ctx->private; in fsl_easrc_set_ctx_format() local
1131 struct fsl_easrc_data_fmt *in_fmt = &ctx_priv->in_params.fmt; in fsl_easrc_set_ctx_format()
1132 struct fsl_easrc_data_fmt *out_fmt = &ctx_priv->out_params.fmt; in fsl_easrc_set_ctx_format()
1200 struct fsl_easrc_ctx_priv *ctx_priv; in fsl_easrc_set_ctx_organziation() local
1207 ctx_priv = ctx->private; in fsl_easrc_set_ctx_organziation()
1212 EASRC_CIA_ITER(ctx_priv->in_params.iterations)); in fsl_easrc_set_ctx_organziation()
1215 EASRC_CIA_GRLEN(ctx_priv->in_params.group_len)); in fsl_easrc_set_ctx_organziation()
1218 EASRC_CIA_ACCLEN(ctx_priv->in_params.access_len)); in fsl_easrc_set_ctx_organziation()
1223 EASRC_COA_ITER(ctx_priv->out_params.iterations)); in fsl_easrc_set_ctx_organziation()
1226 EASRC_COA_GRLEN(ctx_priv->out_params.group_len)); in fsl_easrc_set_ctx_organziation()
1229 EASRC_COA_ACCLEN(ctx_priv->out_params.access_len)); in fsl_easrc_set_ctx_organziation()
1446 struct fsl_easrc_ctx_priv *ctx_priv = ctx->private; in fsl_easrc_hw_params() local
1458 ctx_priv->ctx_streams |= BIT(substream->stream); in fsl_easrc_hw_params()
1465 ctx_priv->in_params.sample_rate = rate; in fsl_easrc_hw_params()
1466 ctx_priv->in_params.sample_format = format; in fsl_easrc_hw_params()
1467 ctx_priv->out_params.sample_rate = easrc->asrc_rate; in fsl_easrc_hw_params()
1468 ctx_priv->out_params.sample_format = easrc->asrc_format; in fsl_easrc_hw_params()
1470 ctx_priv->out_params.sample_rate = rate; in fsl_easrc_hw_params()
1471 ctx_priv->out_params.sample_format = format; in fsl_easrc_hw_params()
1472 ctx_priv->in_params.sample_rate = easrc->asrc_rate; in fsl_easrc_hw_params()
1473 ctx_priv->in_params.sample_format = easrc->asrc_format; in fsl_easrc_hw_params()
1477 ctx_priv->in_params.fifo_wtmk = 0x20; in fsl_easrc_hw_params()
1478 ctx_priv->out_params.fifo_wtmk = 0x20; in fsl_easrc_hw_params()
1485 &ctx_priv->in_params.sample_format, in fsl_easrc_hw_params()
1486 &ctx_priv->out_params.sample_format); in fsl_easrc_hw_params()
1498 ctx_priv->in_params.iterations = 1; in fsl_easrc_hw_params()
1499 ctx_priv->in_params.group_len = ctx->channels; in fsl_easrc_hw_params()
1500 ctx_priv->in_params.access_len = ctx->channels; in fsl_easrc_hw_params()
1501 ctx_priv->out_params.iterations = 1; in fsl_easrc_hw_params()
1502 ctx_priv->out_params.group_len = ctx->channels; in fsl_easrc_hw_params()
1503 ctx_priv->out_params.access_len = ctx->channels; in fsl_easrc_hw_params()
1519 struct fsl_easrc_ctx_priv *ctx_priv; in fsl_easrc_hw_free() local
1524 ctx_priv = ctx->private; in fsl_easrc_hw_free()
1526 if (ctx_priv->ctx_streams & BIT(substream->stream)) { in fsl_easrc_hw_free()
1527 ctx_priv->ctx_streams &= ~BIT(substream->stream); in fsl_easrc_hw_free()
2015 struct fsl_easrc_ctx_priv *ctx_priv; in fsl_easrc_runtime_resume() local
2059 ctx_priv = ctx->private; in fsl_easrc_runtime_resume()
2061 ctx_priv->out_missed_sample = ctx_priv->in_filled_sample * in fsl_easrc_runtime_resume()
2062 ctx_priv->out_params.sample_rate / in fsl_easrc_runtime_resume()
2063 ctx_priv->in_params.sample_rate; in fsl_easrc_runtime_resume()
2064 if (ctx_priv->in_filled_sample * ctx_priv->out_params.sample_rate in fsl_easrc_runtime_resume()
2065 % ctx_priv->in_params.sample_rate != 0) in fsl_easrc_runtime_resume()
2066 ctx_priv->out_missed_sample += 1; in fsl_easrc_runtime_resume()
2069 ctx_priv->st1_coeff, in fsl_easrc_runtime_resume()
2070 ctx_priv->st1_num_taps, in fsl_easrc_runtime_resume()
2071 ctx_priv->st1_addexp); in fsl_easrc_runtime_resume()
2076 ctx_priv->st2_coeff, in fsl_easrc_runtime_resume()
2077 ctx_priv->st2_num_taps, in fsl_easrc_runtime_resume()
2078 ctx_priv->st2_addexp); in fsl_easrc_runtime_resume()