Hi,
this is a sort of RFC, a revised patchset of the previous two patches for killing set_fs() usages in PCM. Instead of converting to the merged copy_silence ops, this adds a new copy_kernel ops instead. At the same time, copy/silence are changed to receive the position and size in bytes instead of frames. This allows us to simplify the PCM core code. As a result, a good amount of code could be removed from pcm_lib.c.
Note that this patchset isn't complete, containing only two driver conversions (nm256 for interleaved and rme9652 for non-interleaved) as a demonstration.
Takashi
===
Takashi Iwai (14): ALSA: pcm: Introduce copy_user, copy_kernel and fill_silence ops ALSA: nm256: Convert to new PCM copy ops ALSA: rme9652: Convert to the new PCM ops ALSA: pcm: Drop the old copy and silence ops ALSA: pcm: Check PCM state by a common helper function ALSA: pcm: Shuffle codes ALSA: pcm: Call directly the common read/write helpers ALSA: pcm: More unification of PCM transfer codes ALSA: pcm: Unify read/write loop ALSA: pcm: Simplify snd_pcm_playback_silence() ALSA: pcm: Direct in-kernel read/write support usb: gadget: u_uac1: Kill set_fs() usage ALSA: pcm: Kill set_fs() in PCM OSS layer ALSA: pcm: Build OSS writev/readv helpers conditionally
drivers/usb/gadget/function/u_uac1.c | 7 +- include/sound/pcm.h | 80 ++++- sound/core/oss/io.c | 4 +- sound/core/oss/pcm_oss.c | 81 +---- sound/core/oss/pcm_plugin.h | 6 +- sound/core/pcm_lib.c | 551 +++++++++++++---------------------- sound/pci/nm256/nm256.c | 57 ++-- sound/pci/rme9652/rme9652.c | 71 +++-- sound/soc/soc-pcm.c | 5 +- 9 files changed, 386 insertions(+), 476 deletions(-)