All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/24] ALSA: Generic PCM copy ops using sockptr_t
@ 2023-07-31 15:46 Takashi Iwai
  2023-07-31 15:46 ` [PATCH 01/24] ALSA: pcm: Add copy ops with universal sockptr_t Takashi Iwai
                   ` (24 more replies)
  0 siblings, 25 replies; 34+ messages in thread
From: Takashi Iwai @ 2023-07-31 15:46 UTC (permalink / raw)
  To: alsa-devel
  Cc: Takashi Iwai, Andy Shevchenko, Andrey Utkin, Anton Sviridenko,
	Arnaud Pouliquen, Banajit Goswami, Bluecherry Maintainers,
	Claudiu Beznea, Ismael Luceno, Lars-Peter Clausen, Mark Brown,
	Mauro Carvalho Chehab, Oleksandr Andrushchenko, Olivier Moysan,
	Srinivas Kandagatla, linux-media, xen-devel

Hi,

this is a patch set to clean up the PCM copy ops using sockptr_t as a
"universal" pointer, inspired by the recent patch from Andy
Shevchenko:
  https://lore.kernel.org/r/20230721100146.67293-1-andriy.shevchenko@linux.intel.com

Even though it sounds a bit weird, sockptr_t is a generic type that is
used already in wide ranges, and it can fit our purpose, too.  With
sockptr_t, the former split of copy_user and copy_kernel PCM ops can
be unified again gracefully.

The patch set introduces the new PCM ops, converting users, and drops
the old PCM ops.  Most of conversions are straightforward, simply
replacing copy_*_user() with copy_*_sockptr() variants.

Note that the conversion in ASoC will fix a potential problem of ASoC
PCM that has been for long time.  Since ASoC component takes care of
only copy_user, the conversion form/to kernel space might have been
missing.  With this patch set, both cases are handled with sockptr_t
by a single callback.

The patches are lightly tested (with a faked PCM copy implementation
on HD-audio), while most of patches are only compile-tested.


Takashi

===

Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Andrey Utkin <andrey_utkin@fastmail.com>
Cc: Anton Sviridenko <anton@corp.bluecherry.net>
Cc: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Cc: Banajit Goswami <bgoswami@quicinc.com>
Cc: Bluecherry Maintainers <maintainers@bluecherrydvr.com>
Cc: Claudiu Beznea <claudiu.beznea@microchip.com>
Cc: Ismael Luceno <ismael@iodev.co.uk>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Mark Brown <broonie@kernel.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: Olivier Moysan <olivier.moysan@foss.st.com>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: linux-media@vger.kernel.org
Cc: xen-devel@lists.xenproject.org

===

Takashi Iwai (24):
  ALSA: pcm: Add copy ops with universal sockptr_t
  ALSA: core: Add memory copy helpers between sockptr and iomem
  ALSA: dummy: Convert to generic PCM copy ops
  ALSA: gus: Convert to generic PCM copy ops
  ALSA: emu8000: Convert to generic PCM copy ops
  ALSA: es1938: Convert to generic PCM copy ops
  ALSA: korg1212: Convert to generic PCM copy ops
  ALSA: nm256: Convert to generic PCM copy ops
  ALSA: rme32: Convert to generic PCM copy ops
  ALSA: rme96: Convert to generic PCM copy ops
  ALSA: hdsp: Convert to generic PCM copy ops
  ALSA: rme9652: Convert to generic PCM copy ops
  ALSA: sh: Convert to generic PCM copy ops
  ALSA: xen: Convert to generic PCM copy ops
  ALSA: pcmtest: Update comment about PCM copy ops
  media: solo6x10: Convert to generic PCM copy ops
  ASoC: component: Add generic PCM copy ops
  ASoC: mediatek: Convert to generic PCM copy ops
  ASoC: qcom: Convert to generic PCM copy ops
  ASoC: dmaengine: Convert to generic PCM copy ops
  ASoC: dmaengine: Use sockptr_t for process callback, too
  ALSA: doc: Update description for the new PCM copy ops
  ASoC: pcm: Drop obsoleted PCM copy_user ops
  ALSA: pcm: Drop obsoleted PCM copy_user and copy_kernel ops

 .../kernel-api/writing-an-alsa-driver.rst     | 59 +++++---------
 drivers/media/pci/solo6x10/solo6x10-g723.c    | 41 ++--------
 include/sound/dmaengine_pcm.h                 |  2 +-
 include/sound/pcm.h                           | 12 +--
 include/sound/soc-component.h                 | 14 ++--
 sound/core/memory.c                           | 39 +++++++++
 sound/core/pcm_lib.c                          | 81 +++++++++----------
 sound/core/pcm_native.c                       |  2 +-
 sound/drivers/dummy.c                         | 12 +--
 sound/drivers/pcmtest.c                       |  2 +-
 sound/isa/gus/gus_pcm.c                       | 23 +-----
 sound/isa/sb/emu8000_pcm.c                    | 79 +++++-------------
 sound/pci/es1938.c                            | 31 ++-----
 sound/pci/korg1212/korg1212.c                 | 46 +++--------
 sound/pci/nm256/nm256.c                       | 42 ++--------
 sound/pci/rme32.c                             | 50 +++---------
 sound/pci/rme96.c                             | 48 +++--------
 sound/pci/rme9652/hdsp.c                      | 42 ++--------
 sound/pci/rme9652/rme9652.c                   | 46 ++---------
 sound/sh/sh_dac_audio.c                       | 25 +-----
 sound/soc/atmel/mchp-pdmc.c                   |  2 +-
 sound/soc/mediatek/common/mtk-btcvsd.c        | 22 ++---
 sound/soc/qcom/lpass-platform.c               | 12 +--
 sound/soc/soc-component.c                     | 10 +--
 sound/soc/soc-generic-dmaengine-pcm.c         | 18 ++---
 sound/soc/soc-pcm.c                           |  4 +-
 sound/soc/stm/stm32_sai_sub.c                 |  2 +-
 sound/xen/xen_snd_front_alsa.c                | 55 +++----------
 28 files changed, 251 insertions(+), 570 deletions(-)

-- 
2.35.3


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2023-08-07 16:01 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-31 15:46 [PATCH 00/24] ALSA: Generic PCM copy ops using sockptr_t Takashi Iwai
2023-07-31 15:46 ` [PATCH 01/24] ALSA: pcm: Add copy ops with universal sockptr_t Takashi Iwai
2023-07-31 15:46 ` [PATCH 02/24] ALSA: core: Add memory copy helpers between sockptr and iomem Takashi Iwai
2023-07-31 15:46 ` [PATCH 03/24] ALSA: dummy: Convert to generic PCM copy ops Takashi Iwai
2023-07-31 15:46 ` [PATCH 04/24] ALSA: gus: " Takashi Iwai
2023-07-31 15:46 ` [PATCH 05/24] ALSA: emu8000: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 06/24] ALSA: es1938: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 07/24] ALSA: korg1212: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 08/24] ALSA: nm256: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 09/24] ALSA: rme32: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 10/24] ALSA: rme96: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 11/24] ALSA: hdsp: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 12/24] ALSA: rme9652: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 13/24] ALSA: sh: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 14/24] ALSA: xen: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 15/24] ALSA: pcmtest: Update comment about " Takashi Iwai
2023-07-31 15:47 ` [PATCH 16/24] media: solo6x10: Convert to generic " Takashi Iwai
2023-07-31 15:47 ` [PATCH 17/24] ASoC: component: Add " Takashi Iwai
2023-07-31 15:47 ` [PATCH 18/24] ASoC: mediatek: Convert to " Takashi Iwai
2023-07-31 15:47 ` [PATCH 19/24] ASoC: qcom: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 20/24] ASoC: dmaengine: " Takashi Iwai
2023-07-31 15:47 ` [PATCH 21/24] ASoC: dmaengine: Use sockptr_t for process callback, too Takashi Iwai
2023-07-31 15:47 ` [PATCH 22/24] ALSA: doc: Update description for the new PCM copy ops Takashi Iwai
2023-07-31 15:47 ` [PATCH 23/24] ASoC: pcm: Drop obsoleted PCM copy_user ops Takashi Iwai
2023-07-31 15:47 ` [PATCH 24/24] ALSA: pcm: Drop obsoleted PCM copy_user and copy_kernel ops Takashi Iwai
2023-07-31 17:20 ` [PATCH 00/24] ALSA: Generic PCM copy ops using sockptr_t Mark Brown
2023-07-31 19:30   ` Takashi Iwai
2023-07-31 19:40     ` Mark Brown
2023-08-01 12:54       ` Takashi Iwai
2023-08-01 14:04         ` Mark Brown
2023-08-01 17:51         ` Andy Shevchenko
2023-08-07 15:22           ` Takashi Iwai
2023-08-07 16:00             ` Andy Shevchenko
2023-08-01 13:57     ` Andy Shevchenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.