diff options
Diffstat (limited to 'src/soc/intel/skylake/nhlt/ssm4567.c')
-rw-r--r-- | src/soc/intel/skylake/nhlt/ssm4567.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/soc/intel/skylake/nhlt/ssm4567.c b/src/soc/intel/skylake/nhlt/ssm4567.c index f531e25a35..92482095ca 100644 --- a/src/soc/intel/skylake/nhlt/ssm4567.c +++ b/src/soc/intel/skylake/nhlt/ssm4567.c @@ -27,6 +27,18 @@ static const struct nhlt_format_config ssm4567_render_cfg[] = { }, }; +/* Capture Blob used for IV feedback for Speaker Protection Algorithm */ +static const struct nhlt_format_config ssm4567_capture_cfg[] = { + /* 48 KHz 32-bits per sample. */ + { + .num_channels = 4, + .sample_freq_khz = 48, + .container_bits_per_sample = 32, + .valid_bits_per_sample = 32, + .settings_file = "ssm4567-capture-4ch-48khz-32b.bin", + }, +}; + int nhlt_soc_add_ssm4567(struct nhlt *nhlt, int hwlink) { struct nhlt_endpoint *endp; @@ -42,6 +54,17 @@ int nhlt_soc_add_ssm4567(struct nhlt *nhlt, int hwlink) ARRAY_SIZE(ssm4567_render_cfg))) return -1; + /* Capture Endpoint for IV Feedback */ + endp = nhlt_soc_add_endpoint(nhlt, hwlink, AUDIO_DEV_I2S, + NHLT_DIR_CAPTURE); + + if (endp == NULL) + return -1; + + if (nhlt_endpoint_add_formats(endp, ssm4567_capture_cfg, + ARRAY_SIZE(ssm4567_capture_cfg))) + return -1; + nhlt_next_instance(nhlt, NHLT_LINK_SSP); return 0; |