Message ID | 20190722124833.28757-2-daniel.baluta@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for new SAI IP version | expand |
On Mon, Jul 22, 2019 at 03:48:24PM +0300, Daniel Baluta wrote: > From: Lucas Stach <l.stach@pengutronix.de> > > New revisions of the SAI IP block have even more differences that need > be taken into account by the driver. To avoid sprinking compatible > checks all over the driver move the current differences into of_match_data. > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de> > --- > sound/soc/fsl/fsl_sai.c | 22 ++++++++++++++-------- You need to supply your own signoff if you're sending someone else's patch - see submitting-patches.rst for details on what signoffs mean and why they're required.
On Tue, Jul 23, 2019 at 8:01 PM Mark Brown <broonie@kernel.org> wrote: > > On Mon, Jul 22, 2019 at 03:48:24PM +0300, Daniel Baluta wrote: > > From: Lucas Stach <l.stach@pengutronix.de> > > > > New revisions of the SAI IP block have even more differences that need > > be taken into account by the driver. To avoid sprinking compatible > > checks all over the driver move the current differences into of_match_data. > > > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de> > > --- > > sound/soc/fsl/fsl_sai.c | 22 ++++++++++++++-------- > > You need to supply your own signoff if you're sending someone else's > patch - see submitting-patches.rst for details on what signoffs mean and > why they're required. Ack. Sorry for missing this.
On Mon, Jul 22, 2019 at 03:48:24PM +0300, Daniel Baluta wrote: > From: Lucas Stach <l.stach@pengutronix.de> > > New revisions of the SAI IP block have even more differences that need > be taken into account by the driver. To avoid sprinking compatible > checks all over the driver move the current differences into of_match_data. > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Looks like Mark has applied this already? If so, should probably drop applied ones and rebase the remaining patches for a resend.
On Thu, Jul 25, 2019 at 1:34 AM Nicolin Chen <nicoleotsuka@gmail.com> wrote: > > On Mon, Jul 22, 2019 at 03:48:24PM +0300, Daniel Baluta wrote: > > From: Lucas Stach <l.stach@pengutronix.de> > > > > New revisions of the SAI IP block have even more differences that need > > be taken into account by the driver. To avoid sprinking compatible > > checks all over the driver move the current differences into of_match_data. > > > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de> > > Looks like Mark has applied this already? If so, should probably > drop applied ones and rebase the remaining patches for a resend. Yes 1/10 and 2/10 were already applied. Will drop them from next version.
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c index d58cc3ae90d8..ed0432e7327a 100644 --- a/sound/soc/fsl/fsl_sai.c +++ b/sound/soc/fsl/fsl_sai.c @@ -9,6 +9,7 @@ #include <linux/dmaengine.h> #include <linux/module.h> #include <linux/of_address.h> +#include <linux/of_device.h> #include <linux/pm_runtime.h> #include <linux/regmap.h> #include <linux/slab.h> @@ -788,10 +789,7 @@ static int fsl_sai_probe(struct platform_device *pdev) return -ENOMEM; sai->pdev = pdev; - - if (of_device_is_compatible(np, "fsl,imx6sx-sai") || - of_device_is_compatible(np, "fsl,imx6ul-sai")) - sai->sai_on_imx = true; + sai->soc_data = of_device_get_match_data(&pdev->dev); sai->is_lsb_first = of_property_read_bool(np, "lsb-first"); @@ -900,7 +898,7 @@ static int fsl_sai_probe(struct platform_device *pdev) if (ret) return ret; - if (sai->sai_on_imx) + if (sai->soc_data->use_imx_pcm) return imx_pcm_dma_init(pdev, IMX_SAI_DMABUF_SIZE); else return devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); @@ -913,10 +911,18 @@ static int fsl_sai_remove(struct platform_device *pdev) return 0; } +static const struct fsl_sai_soc_data fsl_sai_vf610_data = { + .use_imx_pcm = false, +}; + +static const struct fsl_sai_soc_data fsl_sai_imx6sx_data = { + .use_imx_pcm = true, +}; + static const struct of_device_id fsl_sai_ids[] = { - { .compatible = "fsl,vf610-sai", }, - { .compatible = "fsl,imx6sx-sai", }, - { .compatible = "fsl,imx6ul-sai", }, + { .compatible = "fsl,vf610-sai", .data = &fsl_sai_vf610_data }, + { .compatible = "fsl,imx6sx-sai", .data = &fsl_sai_imx6sx_data }, + { .compatible = "fsl,imx6ul-sai", .data = &fsl_sai_imx6sx_data }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, fsl_sai_ids); diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h index 24cb156bf995..83e2bfe05b1b 100644 --- a/sound/soc/fsl/fsl_sai.h +++ b/sound/soc/fsl/fsl_sai.h @@ -126,6 +126,10 @@ #define FSL_SAI_MAXBURST_TX 6 #define FSL_SAI_MAXBURST_RX 6 +struct fsl_sai_soc_data { + bool use_imx_pcm; +}; + struct fsl_sai { struct platform_device *pdev; struct regmap *regmap; @@ -135,7 +139,6 @@ struct fsl_sai { bool is_slave_mode; bool is_lsb_first; bool is_dsp_mode; - bool sai_on_imx; bool synchronous[2]; unsigned int mclk_id[2]; @@ -143,6 +146,7 @@ struct fsl_sai { unsigned int slots; unsigned int slot_width; + const struct fsl_sai_soc_data *soc_data; struct snd_dmaengine_dai_dma_data dma_params_rx; struct snd_dmaengine_dai_dma_data dma_params_tx; };