ALSA hwdep is a thin wrapper of usual ioctl operation, thus it's better to support compatible ioctl operation.
Currently, ALSA USB US122L module doesn't support it. This commit adds support for it.
Fixes: 030a07e4412 ('ALSA: Add USB US122L driver') Signed-off-by: Takashi Sakamoto o-takashi@sakamocchi.jp --- sound/usb/usx2y/us122l.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/sound/usb/usx2y/us122l.c b/sound/usb/usx2y/us122l.c index ace708f..36654ac 100644 --- a/sound/usb/usx2y/us122l.c +++ b/sound/usb/usx2y/us122l.c @@ -24,6 +24,7 @@ #include <sound/hwdep.h> #include <sound/pcm.h> #include <sound/initval.h> +#include <linux/compat.h> #define MODNAME "US122L" #include "usb_stream.c" #include "../usbaudio.h" @@ -453,6 +454,18 @@ free: return err; }
+#ifdef CONFIG_COMPAT +static int usb_stream_hwdep_compat_ioctl(struct snd_hwdep *hw, + struct file *file, + unsigned int cmd, unsigned long arg) +{ + return usb_stream_hwdep_compat_ioctl(hw, file, cmd, + (unsigned long)compat_ptr(arg)); +} +#else +#define usb_stream_hwdep_compat_ioctl NULL +#endif + #define SND_USB_STREAM_ID "USB STREAM" static int usb_stream_hwdep_new(struct snd_card *card) { @@ -469,7 +482,7 @@ static int usb_stream_hwdep_new(struct snd_card *card) hw->ops.open = usb_stream_hwdep_open; hw->ops.release = usb_stream_hwdep_release; hw->ops.ioctl = usb_stream_hwdep_ioctl; - hw->ops.ioctl_compat = usb_stream_hwdep_ioctl; + hw->ops.ioctl_compat = usb_stream_hwdep_compat_ioctl; hw->ops.mmap = usb_stream_hwdep_mmap; hw->ops.poll = usb_stream_hwdep_poll;