Message ID | 20230118161110.521504-1-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/5] ASoC: samsung: remove DMA filter function and data | expand |
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
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, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
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.
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
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 --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;