I've tried the suggestion from Jaroslaw, doing a minimal change to the UAPI headers to keep the existing binary interface. As he predicted, this is a much simpler set of kernel changes, but we will pay for that with added complexity in alsa-lib.
The first two patches in this series are taken from Baolin's patch set, with a small bugfix folded in to avoid a compile-time regression.
The other two patches are to redefine the UAPI and to deprecate the support for CLOCK_REALTIME time stamps, which we can no longer allow with user space that we expect to survive beyond 2038.
Overall, I'd still be happier with Baolin's approach since it allows us to keep compatiblity with CLOCK_REALTIME users and requires fewer changes in user space, but this would work as well.
Arnd
Cc: Jaroslav Kysela perex@perex.cz Cc: tiwai@suse.com Cc: lgirdwood@gmail.com Cc: broonie@kernel.org Cc: o-takashi@sakamocchi.jp Cc: y2038@lists.linaro.org Cc: alsa-devel@alsa-project.org Cc: linux-kernel@vger.kernel.org Cc: Baolin Wang baolin.wang@linaro.org
Arnd Bergmann (2): ALSA: replace timespec types in uapi headers ALSA: Deprecate CLOCK_REALTIME timestamps
Baolin Wang (2): ALSA: Replace timespec with timespec64 ALSA: Avoid using timespec for struct snd_ctl_elem_value
include/sound/asound.h | 8 +++++ include/sound/pcm.h | 22 +++++++----- include/sound/timer.h | 4 +-- include/uapi/sound/asound.h | 53 +++++++++++++++++++++-------- sound/core/Kconfig | 11 ++++++ sound/core/compat.h | 11 ++++++ sound/core/pcm.c | 3 ++ sound/core/pcm_compat.c | 70 ++++++++++++++++++++++----------------- sound/core/pcm_lib.c | 36 ++++++++++++-------- sound/core/pcm_native.c | 25 ++++++++++---- sound/core/rawmidi_compat.c | 12 +++---- sound/core/timer.c | 28 ++++++++-------- sound/core/timer_compat.c | 4 ++- sound/pci/hda/hda_controller.c | 14 +++++--- sound/soc/intel/skylake/skl-pcm.c | 4 +-- 15 files changed, 203 insertions(+), 102 deletions(-) create mode 100644 sound/core/compat.h