aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/skylake/nhlt/ssm4567.c
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2016-06-28 15:00:30 -0500
committerAaron Durbin <adurbin@chromium.org>2016-06-29 23:15:29 +0200
commite9657bc8dc6dc94216fcbbc9b83c12b210c32be9 (patch)
treebfdd123492d1f2287299e0542ab80bb97e624998 /src/soc/intel/skylake/nhlt/ssm4567.c
parent5e0a9c7436f77a4e488d77c80fba38cd00b67e67 (diff)
soc/intel/skylake: refactor nhlt support
Utilize the new NHLT helper functions by driving the NHLT endpoints through data descriptors. Change-Id: I80838214d3615b83d4939ec2d96a4fd7050d5920 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/15488 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/soc/intel/skylake/nhlt/ssm4567.c')
-rw-r--r--src/soc/intel/skylake/nhlt/ssm4567.c57
1 files changed, 28 insertions, 29 deletions
diff --git a/src/soc/intel/skylake/nhlt/ssm4567.c b/src/soc/intel/skylake/nhlt/ssm4567.c
index 55d9481852..6808bffe3a 100644
--- a/src/soc/intel/skylake/nhlt/ssm4567.c
+++ b/src/soc/intel/skylake/nhlt/ssm4567.c
@@ -15,7 +15,7 @@
#include <soc/nhlt.h>
-static const struct nhlt_format_config ssm4567_render_cfg[] = {
+static const struct nhlt_format_config ssm4567_render_formats[] = {
/* 48 KHz 24-bits per sample. */
{
.num_channels = 2,
@@ -28,7 +28,7 @@ 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[] = {
+static const struct nhlt_format_config ssm4567_capture_formats[] = {
/* 48 KHz 32-bits per sample. */
{
.num_channels = 4,
@@ -39,33 +39,32 @@ static const struct nhlt_format_config ssm4567_capture_cfg[] = {
},
};
-int nhlt_soc_add_ssm4567(struct nhlt *nhlt, int hwlink)
-{
- struct nhlt_endpoint *endp;
-
+static const struct nhlt_endp_descriptor ssm4567_descriptors[] = {
/* Render Endpoint */
- endp = nhlt_soc_add_endpoint(nhlt, hwlink, AUDIO_DEV_I2S,
- NHLT_DIR_RENDER);
-
- if (endp == NULL)
- return -1;
-
- if (nhlt_endpoint_add_formats(endp, ssm4567_render_cfg,
- 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);
+ {
+ .link = NHLT_LINK_SSP,
+ .device = NHLT_SSP_DEV_I2S,
+ .direction = NHLT_DIR_RENDER,
+ .vid = NHLT_VID,
+ .did = NHLT_DID_SSP,
+ .formats = ssm4567_render_formats,
+ .num_formats = ARRAY_SIZE(ssm4567_render_formats),
+ },
+ /* Capture Endpoint */
+ {
+ .link = NHLT_LINK_SSP,
+ .device = NHLT_SSP_DEV_I2S,
+ .direction = NHLT_DIR_CAPTURE,
+ .vid = NHLT_VID,
+ .did = NHLT_DID_SSP,
+ .formats = ssm4567_capture_formats,
+ .num_formats = ARRAY_SIZE(ssm4567_capture_formats),
+ },
+};
- return 0;
+int nhlt_soc_add_ssm4567(struct nhlt *nhlt, int hwlink)
+{
+ /* Virtual bus id of SSP links are the hardware port ids proper. */
+ return nhlt_add_ssp_endpoints(nhlt, hwlink, ssm4567_descriptors,
+ ARRAY_SIZE(ssm4567_descriptors));
}