diff mbox series

[1/5] ASoC: samsung: remove DMA filter function and data

Message ID 20230118161110.521504-1-arnd@kernel.org (mailing list archive)
State New
Headers show
Series [1/5] ASoC: samsung: remove DMA filter function and data | expand

Commit Message

Arnd Bergmann Jan. 18, 2023, 4:10 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

This data is no longer passed by the platform code, so
there is no point passing it down at all.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 include/linux/platform_data/asoc-s3c.h |  6 ------
 sound/soc/samsung/dma.h                |  2 +-
 sound/soc/samsung/dmaengine.c          |  3 +--
 sound/soc/samsung/i2s.c                | 21 +++------------------
 sound/soc/samsung/pcm.c                | 11 +----------
 sound/soc/samsung/spdif.c              |  9 +--------
 6 files changed, 7 insertions(+), 45 deletions(-)

Comments

Krzysztof Kozlowski Jan. 19, 2023, 3:39 p.m. UTC | #1
On 18/01/2023 17:10, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> This data is no longer passed by the platform code, so
> there is no point passing it down at all.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  include/linux/platform_data/asoc-s3c.h |  6 ------
>  sound/soc/samsung/dma.h                |  2 +-
>  sound/soc/samsung/dmaengine.c          |  3 +--
>  sound/soc/samsung/i2s.c                | 21 +++------------------
>  sound/soc/samsung/pcm.c                | 11 +----------
>  sound/soc/samsung/spdif.c              |  9 +--------
>  6 files changed, 7 insertions(+), 45 deletions(-)

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof
Mark Brown Jan. 19, 2023, 4:59 p.m. UTC | #2
On Wed, Jan 18, 2023 at 05:10:45PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> This data is no longer passed by the platform code, so
> there is no point passing it down at all.

This breaks an x86 allmodconfig build:

/build/stage/linux/sound/soc/samsung/s3c24xx-i2s.c: In function ‘s3c24xx_iis_dev_probe’:
/build/stage/linux/sound/soc/samsung/s3c24xx-i2s.c:436:56: error: passing argument 4 of ‘samsung_asoc_dma_platform_register’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  436 |                                                  "tx", "rx", NULL);
      |                                                        ^~~~
      |                                                        |
      |                                                        char *
In file included from /build/stage/linux/sound/soc/samsung/s3c24xx-i2s.c:21:
/build/stage/linux/sound/soc/samsung/dma.h:17:55: note: expected ‘struct device *’ but argument is of type ‘char *’
   17 |                                        struct device *dma_dev);
      |                                        ~~~~~~~~~~~~~~~^~~~~~~
/build/stage/linux/sound/soc/samsung/s3c24xx-i2s.c:435:15: error: too many arguments to function ‘samsung_asoc_dma_platform_register’
  435 |         ret = samsung_asoc_dma_platform_register(&pdev->dev, NULL,
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/stage/linux/sound/soc/samsung/dma.h:15:5: note: declared here
   15 | int samsung_asoc_dma_platform_register(struct device *dev,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arnd Bergmann Jan. 20, 2023, 9:05 a.m. UTC | #3
On Thu, Jan 19, 2023, at 17:59, Mark Brown wrote:
> On Wed, Jan 18, 2023 at 05:10:45PM +0100, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> This data is no longer passed by the platform code, so
>> there is no point passing it down at all.
>
> This breaks an x86 allmodconfig build:

I see, this patch still depends on the s3c24xx removal, which
is in soc/for-next and I used for testing. I see a similar
problem with the MMP platform in patch 2/5. The series here
is mostly older patches I did a while ago and rebased on top
of the boardfile removal, but it breaks when it gets applied
first.

Unless there is anything in here that you really want to apply
for 6.3, lets drop all five for now, and I'll resend it
after the dust has settled on the boardfile removal.

     Arnd
Mark Brown Jan. 20, 2023, 12:07 p.m. UTC | #4
On Fri, Jan 20, 2023 at 10:05:59AM +0100, Arnd Bergmann wrote:

> I see, this patch still depends on the s3c24xx removal, which
> is in soc/for-next and I used for testing. I see a similar
> problem with the MMP platform in patch 2/5. The series here
> is mostly older patches I did a while ago and rebased on top
> of the boardfile removal, but it breaks when it gets applied
> first.

> Unless there is anything in here that you really want to apply
> for 6.3, lets drop all five for now, and I'll resend it
> after the dust has settled on the boardfile removal.

I'd left the ux500 stuff running through my testing, no
particular urgency just it saves rereviewing anything.  Assuming
it's fine (seems so thus far) I'll push it out.
Arnd Bergmann Jan. 20, 2023, 12:29 p.m. UTC | #5
On Fri, Jan 20, 2023, at 13:07, Mark Brown wrote:
> On Fri, Jan 20, 2023 at 10:05:59AM +0100, Arnd Bergmann wrote:
>
>> I see, this patch still depends on the s3c24xx removal, which
>> is in soc/for-next and I used for testing. I see a similar
>> problem with the MMP platform in patch 2/5. The series here
>> is mostly older patches I did a while ago and rebased on top
>> of the boardfile removal, but it breaks when it gets applied
>> first.
>
>> Unless there is anything in here that you really want to apply
>> for 6.3, lets drop all five for now, and I'll resend it
>> after the dust has settled on the boardfile removal.
>
> I'd left the ux500 stuff running through my testing, no
> particular urgency just it saves rereviewing anything.  Assuming
> it's fine (seems so thus far) I'll push it out.

Yes, sounds good to me, I don't see any risk of missed
dependencies for that.

       Arnd
Mark Brown Jan. 20, 2023, 10:22 p.m. UTC | #6
On Wed, 18 Jan 2023 17:10:45 +0100, Arnd Bergmann wrote:
> This data is no longer passed by the platform code, so
> there is no point passing it down at all.
> 
> 

Applied to

   broonie/sound.git for-next

Thanks!

[1/5] ASoC: samsung: remove DMA filter function and data
      (no commit info)
[2/5] ASoC: pxa: remove snd_dmaengine_pcm_open_request_chan()
      (no commit info)
[3/5] ASoC: ux500: remove platform_data support
      commit: 1766ac5248063c25d1fe46e04bb936c46313ed89
[4/5] ASoC: ux500: remove stedma40 references
      commit: aafe9375b386010e28614f58499d199250a16874
[5/5] ASoC: remove snd_dmaengine_pcm_config->compat_request_channel
      (no commit info)

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
diff mbox series

Patch

diff --git a/include/linux/platform_data/asoc-s3c.h b/include/linux/platform_data/asoc-s3c.h
index f9c00f839e9f..84874433cf21 100644
--- a/include/linux/platform_data/asoc-s3c.h
+++ b/include/linux/platform_data/asoc-s3c.h
@@ -30,7 +30,6 @@  struct samsung_i2s_type {
 #define QUIRK_SUPPORTS_IDMA	(1 << 5)
 	/* Quirks of the I2S controller */
 	u32 quirks;
-	dma_addr_t idma_addr;
 };
 
 /**
@@ -39,10 +38,5 @@  struct samsung_i2s_type {
  */
 struct s3c_audio_pdata {
 	int (*cfg_gpio)(struct platform_device *);
-	dma_filter_fn dma_filter;
-	void *dma_playback;
-	void *dma_capture;
-	void *dma_play_sec;
-	void *dma_capture_mic;
 	struct samsung_i2s_type type;
 };
diff --git a/sound/soc/samsung/dma.h b/sound/soc/samsung/dma.h
index 7b5d4556e0fd..bd0faf84972e 100644
--- a/sound/soc/samsung/dma.h
+++ b/sound/soc/samsung/dma.h
@@ -12,7 +12,7 @@ 
  * @tx, @rx arguments can be NULL if the DMA channel names are "tx", "rx",
  * otherwise actual DMA channel names must be passed to this function.
  */
-int samsung_asoc_dma_platform_register(struct device *dev, dma_filter_fn filter,
+int samsung_asoc_dma_platform_register(struct device *dev,
 				       const char *tx, const char *rx,
 				       struct device *dma_dev);
 #endif /* _SAMSUNG_DMA_H */
diff --git a/sound/soc/samsung/dmaengine.c b/sound/soc/samsung/dmaengine.c
index 2802789a323e..900953ee3786 100644
--- a/sound/soc/samsung/dmaengine.c
+++ b/sound/soc/samsung/dmaengine.c
@@ -14,7 +14,7 @@ 
 
 #include "dma.h"
 
-int samsung_asoc_dma_platform_register(struct device *dev, dma_filter_fn filter,
+int samsung_asoc_dma_platform_register(struct device *dev,
 				       const char *tx, const char *rx,
 				       struct device *dma_dev)
 {
@@ -25,7 +25,6 @@  int samsung_asoc_dma_platform_register(struct device *dev, dma_filter_fn filter,
 		return -ENOMEM;
 
 	pcm_conf->prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config;
-	pcm_conf->compat_filter_fn = filter;
 	pcm_conf->dma_dev = dma_dev;
 
 	pcm_conf->chan_names[SNDRV_PCM_STREAM_PLAYBACK] = tx;
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index 9505200f3d11..052c263c126a 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -79,7 +79,6 @@  struct i2s_dai {
 	struct snd_dmaengine_dai_dma_data dma_playback;
 	struct snd_dmaengine_dai_dma_data dma_capture;
 	struct snd_dmaengine_dai_dma_data idma_playback;
-	dma_filter_fn filter;
 
 	struct samsung_i2s_priv *priv;
 };
@@ -1431,13 +1430,7 @@  static int samsung_i2s_probe(struct platform_device *pdev)
 	spin_lock_init(&priv->lock);
 	spin_lock_init(&priv->pcm_lock);
 
-	if (!np) {
-		pri_dai->dma_playback.filter_data = i2s_pdata->dma_playback;
-		pri_dai->dma_capture.filter_data = i2s_pdata->dma_capture;
-		pri_dai->filter = i2s_pdata->dma_filter;
-
-		idma_addr = i2s_pdata->type.idma_addr;
-	} else {
+	if (np) {
 		if (of_property_read_u32(np, "samsung,idma-addr",
 					 &idma_addr)) {
 			if (priv->quirks & QUIRK_SUPPORTS_IDMA) {
@@ -1475,8 +1468,7 @@  static int samsung_i2s_probe(struct platform_device *pdev)
 	if (priv->quirks & QUIRK_PRI_6CHAN)
 		pri_dai->drv->playback.channels_max = 6;
 
-	ret = samsung_asoc_dma_platform_register(&pdev->dev, pri_dai->filter,
-						 "tx", "rx", NULL);
+	ret = samsung_asoc_dma_platform_register(&pdev->dev, "tx", "rx", NULL);
 	if (ret < 0)
 		goto err_disable_clk;
 
@@ -1485,12 +1477,6 @@  static int samsung_i2s_probe(struct platform_device *pdev)
 
 		sec_dai->dma_playback.addr = regs_base + I2STXDS;
 		sec_dai->dma_playback.chan_name = "tx-sec";
-
-		if (!np) {
-			sec_dai->dma_playback.filter_data = i2s_pdata->dma_play_sec;
-			sec_dai->filter = i2s_pdata->dma_filter;
-		}
-
 		sec_dai->dma_playback.addr_width = 4;
 		sec_dai->idma_playback.addr = idma_addr;
 		sec_dai->pri_dai = pri_dai;
@@ -1502,8 +1488,7 @@  static int samsung_i2s_probe(struct platform_device *pdev)
 			goto err_disable_clk;
 
 		ret = samsung_asoc_dma_platform_register(&priv->pdev_sec->dev,
-						sec_dai->filter, "tx-sec", NULL,
-						&pdev->dev);
+						"tx-sec", NULL, &pdev->dev);
 		if (ret < 0)
 			goto err_del_sec;
 
diff --git a/sound/soc/samsung/pcm.c b/sound/soc/samsung/pcm.c
index e859252ae5e6..2f3a99de6434 100644
--- a/sound/soc/samsung/pcm.c
+++ b/sound/soc/samsung/pcm.c
@@ -489,7 +489,6 @@  static int s3c_pcm_dev_probe(struct platform_device *pdev)
 	struct s3c_pcm_info *pcm;
 	struct resource *mem_res;
 	struct s3c_audio_pdata *pcm_pdata;
-	dma_filter_fn filter;
 	int ret;
 
 	/* Check for valid device index */
@@ -542,18 +541,10 @@  static int s3c_pcm_dev_probe(struct platform_device *pdev)
 	s3c_pcm_stereo_in[pdev->id].addr = mem_res->start + S3C_PCM_RXFIFO;
 	s3c_pcm_stereo_out[pdev->id].addr = mem_res->start + S3C_PCM_TXFIFO;
 
-	filter = NULL;
-	if (pcm_pdata) {
-		s3c_pcm_stereo_in[pdev->id].filter_data = pcm_pdata->dma_capture;
-		s3c_pcm_stereo_out[pdev->id].filter_data = pcm_pdata->dma_playback;
-		filter = pcm_pdata->dma_filter;
-	}
-
 	pcm->dma_capture = &s3c_pcm_stereo_in[pdev->id];
 	pcm->dma_playback = &s3c_pcm_stereo_out[pdev->id];
 
-	ret = samsung_asoc_dma_platform_register(&pdev->dev, filter,
-						 NULL, NULL, NULL);
+	ret = samsung_asoc_dma_platform_register(&pdev->dev, NULL, NULL, NULL);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to get register DMA: %d\n", ret);
 		goto err_dis_pclk;
diff --git a/sound/soc/samsung/spdif.c b/sound/soc/samsung/spdif.c
index 7d815e237e5c..beabcadd7d1d 100644
--- a/sound/soc/samsung/spdif.c
+++ b/sound/soc/samsung/spdif.c
@@ -363,7 +363,6 @@  static int spdif_probe(struct platform_device *pdev)
 	struct s3c_audio_pdata *spdif_pdata;
 	struct resource *mem_res;
 	struct samsung_spdif_info *spdif;
-	dma_filter_fn filter;
 	int ret;
 
 	spdif_pdata = pdev->dev.platform_data;
@@ -424,15 +423,9 @@  static int spdif_probe(struct platform_device *pdev)
 
 	spdif_stereo_out.addr_width = 2;
 	spdif_stereo_out.addr = mem_res->start + DATA_OUTBUF;
-	filter = NULL;
-	if (spdif_pdata) {
-		spdif_stereo_out.filter_data = spdif_pdata->dma_playback;
-		filter = spdif_pdata->dma_filter;
-	}
 	spdif->dma_playback = &spdif_stereo_out;
 
-	ret = samsung_asoc_dma_platform_register(&pdev->dev, filter,
-						 NULL, NULL, NULL);
+	ret = samsung_asoc_dma_platform_register(&pdev->dev, NULL, NULL, NULL);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to register DMA: %d\n", ret);
 		goto err4;