hal: add support to set custom channel configs

Add generic implementation to set custom channel configs
as per usecase config present in platform info xml.
Each usecase identified by usecase id, input channels,
output channels, snd_device and feature id can have
a separate channel config.

Change-Id: I957b5b06adbcd17f65ed49b839327bf8e9e8b318
diff --git a/hal/platform_api.h b/hal/platform_api.h
index cbc0a8b..c53d460 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -96,6 +96,21 @@
     uint32_t             param_id;
 } acdb_audio_cal_cfg_t;
 
+
+struct audio_custom_mtmx_params_info {
+    uint32_t id;
+    uint32_t ip_channels;
+    uint32_t op_channels;
+    uint32_t usecase_id;
+    uint32_t snd_device;
+};
+
+struct audio_custom_mtmx_params {
+    struct listnode list;
+    struct audio_custom_mtmx_params_info info;
+    uint32_t coeffs[0];
+};
+
 enum card_status_t;
 
 void *platform_init(struct audio_device *adev);
@@ -328,4 +343,9 @@
 
 int platform_get_license_by_product(void *platform, const char* product_name, int *product_id, char* product_license);
 int platform_get_haptics_pcm_device_id();
+struct audio_custom_mtmx_params *
+    platform_get_custom_mtmx_params(void *platform,
+                                    struct audio_custom_mtmx_params_info *info);
+int platform_add_custom_mtmx_params(void *platform,
+                                    struct audio_custom_mtmx_params_info *info);
 #endif // AUDIO_PLATFORM_API_H