diff --git a/sound/soc/fsl/fsl_dsp.c b/sound/soc/fsl/fsl_dsp.c
index f72f873d0c6fd2e660a0ab885004a1280317deb2..667388140bb9fc365f1ae1907f58c2b6d45eff68 100644
--- a/sound/soc/fsl/fsl_dsp.c
+++ b/sound/soc/fsl/fsl_dsp.c
@@ -62,11 +62,16 @@
 #include <soc/imx8/sc/svc/irq/api.h>
 #include <soc/imx8/sc/ipc.h>
 #include <soc/imx8/sc/sci.h>
-#include "fsl_dsp.h"
 
+#include <sound/pcm.h>
+#include <sound/soc.h>
+
+#include "fsl_dsp.h"
+#include "fsl_dsp_pool.h"
+#include "fsl_dsp_xaf_api.h"
 
 /* ...allocate new client */
-static inline struct xf_client *xf_client_alloc(struct fsl_dsp *dsp_priv)
+struct xf_client *xf_client_alloc(struct fsl_dsp *dsp_priv)
 {
 	struct xf_client *client;
 	u32             id;
diff --git a/sound/soc/fsl/fsl_dsp.h b/sound/soc/fsl/fsl_dsp.h
index 474b4ae9e3bb0f3444d442953d27bca540d24713..95912fea05b4117b199e45c750487c5db2712e1e 100644
--- a/sound/soc/fsl/fsl_dsp.h
+++ b/sound/soc/fsl/fsl_dsp.h
@@ -5,8 +5,10 @@
  *
  */
 
-#include <soc/imx8/sc/ipc.h>
+#ifndef FSL_DSP_H
+#define FSL_DSP_H
 #include <uapi/linux/mxc_dsp.h>
+#include <soc/imx8/sc/ipc.h>
 #include "fsl_dsp_proxy.h"
 
 
@@ -137,3 +139,6 @@ struct fsl_dsp {
 void *memcpy_dsp(void *dest, const void *src, size_t count);
 void *memset_dsp(void *dest, int c, size_t count);
 struct xf_client *xf_client_lookup(struct fsl_dsp *dsp_priv, u32 id);
+struct xf_client *xf_client_alloc(struct fsl_dsp *dsp_priv);
+
+#endif