]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: codec: Remove pxa2xx-ac97.c
authorPeng Fan <peng.fan@nxp.com>
Thu, 22 Jan 2026 12:44:58 +0000 (20:44 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 27 Jan 2026 12:45:55 +0000 (12:45 +0000)
With commit ce79f3a1ad5f ("ARM: pxa: prune unused device support") and
commit 2548e6c76ebf ("ARM: pxa: pxa2xx-ac97-lib: use IRQ resource"), there
is no 'pxa2xx-ac97' platform device created by machine level code, so this
driver could be removed.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Link: https://patch.msgid.link/20260122-sound-cleanup-v1-2-0a91901609b8@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/arm/Kconfig
sound/arm/Makefile
sound/arm/pxa2xx-ac97.c [deleted file]

index dea2c661b3537309d8ba0ab044640f15205bf29c..e4d7288d1e1e3e7c5d081a7bf474319693d5bff6 100644 (file)
@@ -18,16 +18,6 @@ config SND_ARMAACI
        select SND_PCM
        select SND_AC97_CODEC
 
-config SND_PXA2XX_AC97
-       tristate "AC97 driver for the Intel PXA2xx chip"
-       depends on ARCH_PXA
-       select SND_AC97_CODEC
-       select SND_PXA2XX_LIB
-       select SND_PXA2XX_LIB_AC97
-       help
-         Say Y or M if you want to support any AC97 codec attached to
-         the PXA2xx AC97 interface.
-
 endif  # SND_ARM
 
 config SND_PXA2XX_LIB
index 899edb4bb278dad0e7dd90fd11703f4dca6c3cb1..99325a66cf771ad7a22df18b340221fa13e69a2d 100644 (file)
@@ -9,6 +9,3 @@ snd-aaci-y                      := aaci.o
 obj-$(CONFIG_SND_PXA2XX_LIB)   += snd-pxa2xx-lib.o
 snd-pxa2xx-lib-y               := pxa2xx-pcm-lib.o
 snd-pxa2xx-lib-$(CONFIG_SND_PXA2XX_LIB_AC97)   += pxa2xx-ac97-lib.o
-
-obj-$(CONFIG_SND_PXA2XX_AC97)  += snd-pxa2xx-ac97.o
-snd-pxa2xx-ac97-y              := pxa2xx-ac97.o
diff --git a/sound/arm/pxa2xx-ac97.c b/sound/arm/pxa2xx-ac97.c
deleted file mode 100644 (file)
index 77b1161..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * linux/sound/pxa2xx-ac97.c -- AC97 support for the Intel PXA2xx chip.
- *
- * Author:     Nicolas Pitre
- * Created:    Dec 02, 2004
- * Copyright:  MontaVista Software Inc.
- */
-
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/dmaengine.h>
-#include <linux/dma-mapping.h>
-
-#include <sound/core.h>
-#include <sound/pcm.h>
-#include <sound/ac97_codec.h>
-#include <sound/initval.h>
-#include <sound/pxa2xx-lib.h>
-#include <sound/dmaengine_pcm.h>
-
-#include <linux/platform_data/asoc-pxa.h>
-
-static void pxa2xx_ac97_legacy_reset(struct snd_ac97 *ac97)
-{
-       if (!pxa2xx_ac97_try_cold_reset())
-               pxa2xx_ac97_try_warm_reset();
-
-       pxa2xx_ac97_finish_reset();
-}
-
-static unsigned short pxa2xx_ac97_legacy_read(struct snd_ac97 *ac97,
-                                             unsigned short reg)
-{
-       int ret;
-
-       ret = pxa2xx_ac97_read(ac97->num, reg);
-       if (ret < 0)
-               return 0;
-       else
-               return (unsigned short)(ret & 0xffff);
-}
-
-static void pxa2xx_ac97_legacy_write(struct snd_ac97 *ac97,
-                                    unsigned short reg, unsigned short val)
-{
-       pxa2xx_ac97_write(ac97->num, reg, val);
-}
-
-static const struct snd_ac97_bus_ops pxa2xx_ac97_ops = {
-       .read   = pxa2xx_ac97_legacy_read,
-       .write  = pxa2xx_ac97_legacy_write,
-       .reset  = pxa2xx_ac97_legacy_reset,
-};
-
-static struct snd_pcm *pxa2xx_ac97_pcm;
-static struct snd_ac97 *pxa2xx_ac97_ac97;
-
-static int pxa2xx_ac97_pcm_open(struct snd_pcm_substream *substream)
-{
-       struct snd_pcm_runtime *runtime = substream->runtime;
-       pxa2xx_audio_ops_t *platform_ops;
-       int ret, i;
-
-       ret = pxa2xx_pcm_open(substream);
-       if (ret)
-               return ret;
-
-       runtime->hw.channels_min = 2;
-       runtime->hw.channels_max = 2;
-
-       i = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
-               AC97_RATES_FRONT_DAC : AC97_RATES_ADC;
-       runtime->hw.rates = pxa2xx_ac97_ac97->rates[i];
-       snd_pcm_limit_hw_rates(runtime);
-
-       platform_ops = substream->pcm->card->dev->platform_data;
-       if (platform_ops && platform_ops->startup) {
-               ret = platform_ops->startup(substream, platform_ops->priv);
-               if (ret < 0)
-                       pxa2xx_pcm_close(substream);
-       }
-
-       return ret;
-}
-
-static int pxa2xx_ac97_pcm_close(struct snd_pcm_substream *substream)
-{
-       pxa2xx_audio_ops_t *platform_ops;
-
-       platform_ops = substream->pcm->card->dev->platform_data;
-       if (platform_ops && platform_ops->shutdown)
-               platform_ops->shutdown(substream, platform_ops->priv);
-
-       return 0;
-}
-
-static int pxa2xx_ac97_pcm_prepare(struct snd_pcm_substream *substream)
-{
-       struct snd_pcm_runtime *runtime = substream->runtime;
-       int reg = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
-                 AC97_PCM_FRONT_DAC_RATE : AC97_PCM_LR_ADC_RATE;
-       int ret;
-
-       ret = pxa2xx_pcm_prepare(substream);
-       if (ret < 0)
-               return ret;
-
-       return snd_ac97_set_rate(pxa2xx_ac97_ac97, reg, runtime->rate);
-}
-
-static int pxa2xx_ac97_do_suspend(struct snd_card *card)
-{
-       pxa2xx_audio_ops_t *platform_ops = card->dev->platform_data;
-
-       snd_power_change_state(card, SNDRV_CTL_POWER_D3cold);
-       snd_ac97_suspend(pxa2xx_ac97_ac97);
-       if (platform_ops && platform_ops->suspend)
-               platform_ops->suspend(platform_ops->priv);
-
-       return pxa2xx_ac97_hw_suspend();
-}
-
-static int pxa2xx_ac97_do_resume(struct snd_card *card)
-{
-       pxa2xx_audio_ops_t *platform_ops = card->dev->platform_data;
-       int rc;
-
-       rc = pxa2xx_ac97_hw_resume();
-       if (rc)
-               return rc;
-
-       if (platform_ops && platform_ops->resume)
-               platform_ops->resume(platform_ops->priv);
-       snd_ac97_resume(pxa2xx_ac97_ac97);
-       snd_power_change_state(card, SNDRV_CTL_POWER_D0);
-
-       return 0;
-}
-
-static int pxa2xx_ac97_suspend(struct device *dev)
-{
-       struct snd_card *card = dev_get_drvdata(dev);
-       int ret = 0;
-
-       if (card)
-               ret = pxa2xx_ac97_do_suspend(card);
-
-       return ret;
-}
-
-static int pxa2xx_ac97_resume(struct device *dev)
-{
-       struct snd_card *card = dev_get_drvdata(dev);
-       int ret = 0;
-
-       if (card)
-               ret = pxa2xx_ac97_do_resume(card);
-
-       return ret;
-}
-
-static DEFINE_SIMPLE_DEV_PM_OPS(pxa2xx_ac97_pm_ops, pxa2xx_ac97_suspend, pxa2xx_ac97_resume);
-
-static const struct snd_pcm_ops pxa2xx_ac97_pcm_ops = {
-       .open           = pxa2xx_ac97_pcm_open,
-       .close          = pxa2xx_ac97_pcm_close,
-       .hw_params      = pxa2xx_pcm_hw_params,
-       .prepare        = pxa2xx_ac97_pcm_prepare,
-       .trigger        = pxa2xx_pcm_trigger,
-       .pointer        = pxa2xx_pcm_pointer,
-};
-
-
-static int pxa2xx_ac97_pcm_new(struct snd_card *card)
-{
-       struct snd_pcm *pcm;
-       int ret;
-
-       ret = snd_pcm_new(card, "PXA2xx-PCM", 0, 1, 1, &pcm);
-       if (ret)
-               goto out;
-
-       ret = dma_coerce_mask_and_coherent(card->dev, DMA_BIT_MASK(32));
-       if (ret)
-               goto out;
-
-       snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &pxa2xx_ac97_pcm_ops);
-       snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &pxa2xx_ac97_pcm_ops);
-       ret = pxa2xx_pcm_preallocate_dma_buffer(pcm);
-       if (ret)
-               goto out;
-
-       pxa2xx_ac97_pcm = pcm;
-       ret = 0;
-
- out:
-       return ret;
-}
-
-static int pxa2xx_ac97_probe(struct platform_device *dev)
-{
-       struct snd_card *card;
-       struct snd_ac97_bus *ac97_bus;
-       struct snd_ac97_template ac97_template;
-       int ret;
-       pxa2xx_audio_ops_t *pdata = dev->dev.platform_data;
-
-       if (dev->id >= 0) {
-               dev_err(&dev->dev, "PXA2xx has only one AC97 port.\n");
-               ret = -ENXIO;
-               goto err_dev;
-       }
-
-       ret = snd_card_new(&dev->dev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1,
-                          THIS_MODULE, 0, &card);
-       if (ret < 0)
-               goto err;
-
-       strscpy(card->driver, dev->dev.driver->name, sizeof(card->driver));
-
-       ret = pxa2xx_ac97_pcm_new(card);
-       if (ret)
-               goto err;
-
-       ret = pxa2xx_ac97_hw_probe(dev);
-       if (ret)
-               goto err;
-
-       ret = snd_ac97_bus(card, 0, &pxa2xx_ac97_ops, NULL, &ac97_bus);
-       if (ret)
-               goto err_remove;
-       memset(&ac97_template, 0, sizeof(ac97_template));
-       ret = snd_ac97_mixer(ac97_bus, &ac97_template, &pxa2xx_ac97_ac97);
-       if (ret)
-               goto err_remove;
-
-       snprintf(card->shortname, sizeof(card->shortname),
-                "%s", snd_ac97_get_short_name(pxa2xx_ac97_ac97));
-       snprintf(card->longname, sizeof(card->longname),
-                "%s (%s)", dev->dev.driver->name, card->mixername);
-
-       if (pdata && pdata->codec_pdata[0])
-               snd_ac97_dev_add_pdata(ac97_bus->codec[0], pdata->codec_pdata[0]);
-       ret = snd_card_register(card);
-       if (ret == 0) {
-               platform_set_drvdata(dev, card);
-               return 0;
-       }
-
-err_remove:
-       pxa2xx_ac97_hw_remove(dev);
-err:
-       if (card)
-               snd_card_free(card);
-err_dev:
-       return ret;
-}
-
-static void pxa2xx_ac97_remove(struct platform_device *dev)
-{
-       struct snd_card *card = platform_get_drvdata(dev);
-
-       if (card) {
-               snd_card_free(card);
-               pxa2xx_ac97_hw_remove(dev);
-       }
-}
-
-static struct platform_driver pxa2xx_ac97_driver = {
-       .probe          = pxa2xx_ac97_probe,
-       .remove         = pxa2xx_ac97_remove,
-       .driver         = {
-               .name   = "pxa2xx-ac97",
-               .pm     = &pxa2xx_ac97_pm_ops,
-       },
-};
-
-module_platform_driver(pxa2xx_ac97_driver);
-
-MODULE_AUTHOR("Nicolas Pitre");
-MODULE_DESCRIPTION("AC97 driver for the Intel PXA2xx chip");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:pxa2xx-ac97");