diff options
-rw-r--r-- | sound/soc/fsl/fsl_dsp.c | 6 | ||||
-rw-r--r-- | sound/soc/fsl/fsl_dsp.h | 6 | ||||
-rw-r--r-- | sound/soc/fsl/fsl_dsp_proxy.c | 1 | ||||
-rw-r--r-- | sound/soc/fsl/fsl_dsp_proxy.h | 1 |
4 files changed, 13 insertions, 1 deletions
diff --git a/sound/soc/fsl/fsl_dsp.c b/sound/soc/fsl/fsl_dsp.c index fa238834385b..63c11db54f04 100644 --- a/sound/soc/fsl/fsl_dsp.c +++ b/sound/soc/fsl/fsl_dsp.c @@ -792,6 +792,11 @@ static int fsl_dsp_probe(struct platform_device *pdev) if (!dsp_priv) return -ENOMEM; + if (of_device_is_compatible(np, "fsl,imx8qxp-dsp")) + dsp_priv->dsp_board_type = DSP_IMX8QXP_TYPE; + else + dsp_priv->dsp_board_type = DSP_IMX8QM_TYPE; + dsp_priv->dev = &pdev->dev; /* Get the addresses and IRQ */ @@ -1059,6 +1064,7 @@ static const struct dev_pm_ops fsl_dsp_pm = { static const struct of_device_id fsl_dsp_ids[] = { { .compatible = "fsl,imx8qxp-dsp", }, + { .compatible = "fsl,imx8qm-dsp", }, {} }; MODULE_DEVICE_TABLE(of, fsl_dsp_ids); diff --git a/sound/soc/fsl/fsl_dsp.h b/sound/soc/fsl/fsl_dsp.h index 6f983f7fae5f..99199e4d5c22 100644 --- a/sound/soc/fsl/fsl_dsp.h +++ b/sound/soc/fsl/fsl_dsp.h @@ -21,6 +21,10 @@ typedef void (*memset_func) (void *s, int c, size_t n); /* ...maximal number of IPC clients per proxy */ #define XF_CFG_MAX_IPC_CLIENTS (1 << 4) +enum { + DSP_IMX8QXP_TYPE = 0, + DSP_IMX8QM_TYPE, +}; /* ...proxy client data */ struct xf_client { @@ -87,7 +91,7 @@ struct fsl_dsp { void *dsp_config_virt; dma_addr_t dsp_config_phys; int dsp_config_size; - + int dsp_board_type; unsigned int fixup_offset; /* ...proxy data structures */ diff --git a/sound/soc/fsl/fsl_dsp_proxy.c b/sound/soc/fsl/fsl_dsp_proxy.c index f29b6ecaacbb..266a50deab91 100644 --- a/sound/soc/fsl/fsl_dsp_proxy.c +++ b/sound/soc/fsl/fsl_dsp_proxy.c @@ -192,6 +192,7 @@ int send_dpu_ext_msg_addr(struct xf_proxy *proxy) dpu_ext_msg->scratch_size = dsp_priv->scratch_buf_size; dpu_ext_msg->dsp_config_phys = dsp_priv->dsp_config_phys; dpu_ext_msg->dsp_config_size = dsp_priv->dsp_config_size; + dpu_ext_msg->dsp_board_type = dsp_priv->dsp_board_type; icm_intr_extended_send(proxy, msghdr.allbits, &ext_msg); diff --git a/sound/soc/fsl/fsl_dsp_proxy.h b/sound/soc/fsl/fsl_dsp_proxy.h index c80412a632ff..9b5c78f8b993 100644 --- a/sound/soc/fsl/fsl_dsp_proxy.h +++ b/sound/soc/fsl/fsl_dsp_proxy.h @@ -350,6 +350,7 @@ struct dsp_mem_msg { u32 scratch_size; u32 dsp_config_phys; u32 dsp_config_size; + u32 dsp_board_type; }; static inline void xf_lock_init(spinlock_t *lock) |