Re: [PATCH] ALSA: virtio: remove duplicate check if queue is broken
On Wed, 24 Jan 2024 13:08:34 +0100, Li RongQing wrote: > > virtqueue_enable_cb() will call virtqueue_poll() which will check if > queue is broken at beginning, so remove the virtqueue_is_broken() call > > Signed-off-by: Li RongQing Applied now. Thanks. Takashi
Re: [PATCH] ALSA: virtio: remove duplicate check if queue is broken
On Wed, 24 Jan 2024 at 07:17, Li RongQing wrote: > > virtqueue_enable_cb() will call virtqueue_poll() which will check if > queue is broken at beginning, so remove the virtqueue_is_broken() call > > Signed-off-by: Li RongQing > --- > sound/virtio/virtio_card.c| 2 -- > sound/virtio/virtio_ctl_msg.c | 2 -- > sound/virtio/virtio_pcm_msg.c | 2 -- > 3 files changed, 6 deletions(-) Reviewed-by: Stefan Hajnoczi > > diff --git a/sound/virtio/virtio_card.c b/sound/virtio/virtio_card.c > index e2847c0..b158c3c 100644 > --- a/sound/virtio/virtio_card.c > +++ b/sound/virtio/virtio_card.c > @@ -91,8 +91,6 @@ static void virtsnd_event_notify_cb(struct virtqueue > *vqueue) > virtsnd_event_dispatch(snd, event); > virtsnd_event_send(vqueue, event, true, GFP_ATOMIC); > } > - if (unlikely(virtqueue_is_broken(vqueue))) > - break; > } while (!virtqueue_enable_cb(vqueue)); > spin_unlock_irqrestore(>lock, flags); > } > diff --git a/sound/virtio/virtio_ctl_msg.c b/sound/virtio/virtio_ctl_msg.c > index 18dc5ac..9dabea0 100644 > --- a/sound/virtio/virtio_ctl_msg.c > +++ b/sound/virtio/virtio_ctl_msg.c > @@ -303,8 +303,6 @@ void virtsnd_ctl_notify_cb(struct virtqueue *vqueue) > virtqueue_disable_cb(vqueue); > while ((msg = virtqueue_get_buf(vqueue, ))) > virtsnd_ctl_msg_complete(msg); > - if (unlikely(virtqueue_is_broken(vqueue))) > - break; > } while (!virtqueue_enable_cb(vqueue)); > spin_unlock_irqrestore(>lock, flags); > } > diff --git a/sound/virtio/virtio_pcm_msg.c b/sound/virtio/virtio_pcm_msg.c > index 542446c..8c32efa 100644 > --- a/sound/virtio/virtio_pcm_msg.c > +++ b/sound/virtio/virtio_pcm_msg.c > @@ -358,8 +358,6 @@ static inline void virtsnd_pcm_notify_cb(struct > virtio_snd_queue *queue) > virtqueue_disable_cb(queue->vqueue); > while ((msg = virtqueue_get_buf(queue->vqueue, > _bytes))) > virtsnd_pcm_msg_complete(msg, written_bytes); > - if (unlikely(virtqueue_is_broken(queue->vqueue))) > - break; > } while (!virtqueue_enable_cb(queue->vqueue)); > spin_unlock_irqrestore(>lock, flags); > } > -- > 2.9.4 > >
[PATCH] ALSA: virtio: remove duplicate check if queue is broken
virtqueue_enable_cb() will call virtqueue_poll() which will check if queue is broken at beginning, so remove the virtqueue_is_broken() call Signed-off-by: Li RongQing --- sound/virtio/virtio_card.c| 2 -- sound/virtio/virtio_ctl_msg.c | 2 -- sound/virtio/virtio_pcm_msg.c | 2 -- 3 files changed, 6 deletions(-) diff --git a/sound/virtio/virtio_card.c b/sound/virtio/virtio_card.c index e2847c0..b158c3c 100644 --- a/sound/virtio/virtio_card.c +++ b/sound/virtio/virtio_card.c @@ -91,8 +91,6 @@ static void virtsnd_event_notify_cb(struct virtqueue *vqueue) virtsnd_event_dispatch(snd, event); virtsnd_event_send(vqueue, event, true, GFP_ATOMIC); } - if (unlikely(virtqueue_is_broken(vqueue))) - break; } while (!virtqueue_enable_cb(vqueue)); spin_unlock_irqrestore(>lock, flags); } diff --git a/sound/virtio/virtio_ctl_msg.c b/sound/virtio/virtio_ctl_msg.c index 18dc5ac..9dabea0 100644 --- a/sound/virtio/virtio_ctl_msg.c +++ b/sound/virtio/virtio_ctl_msg.c @@ -303,8 +303,6 @@ void virtsnd_ctl_notify_cb(struct virtqueue *vqueue) virtqueue_disable_cb(vqueue); while ((msg = virtqueue_get_buf(vqueue, ))) virtsnd_ctl_msg_complete(msg); - if (unlikely(virtqueue_is_broken(vqueue))) - break; } while (!virtqueue_enable_cb(vqueue)); spin_unlock_irqrestore(>lock, flags); } diff --git a/sound/virtio/virtio_pcm_msg.c b/sound/virtio/virtio_pcm_msg.c index 542446c..8c32efa 100644 --- a/sound/virtio/virtio_pcm_msg.c +++ b/sound/virtio/virtio_pcm_msg.c @@ -358,8 +358,6 @@ static inline void virtsnd_pcm_notify_cb(struct virtio_snd_queue *queue) virtqueue_disable_cb(queue->vqueue); while ((msg = virtqueue_get_buf(queue->vqueue, _bytes))) virtsnd_pcm_msg_complete(msg, written_bytes); - if (unlikely(virtqueue_is_broken(queue->vqueue))) - break; } while (!virtqueue_enable_cb(queue->vqueue)); spin_unlock_irqrestore(>lock, flags); } -- 2.9.4
[PATCH] ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
The same fixup to enable laptop imic is needed for ASUS M9V with AD1986A codec like another HP machine. Signed-off-by: Shih-Yuan Lee (FourDollars) --- sound/pci/hda/patch_analog.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index e283966bdbb1..bc9dd8e6fd86 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -357,6 +357,7 @@ static const struct hda_fixup ad1986a_fixups[] = { static const struct snd_pci_quirk ad1986a_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x30af, "HP B2800", AD1986A_FIXUP_LAPTOP_IMIC), + SND_PCI_QUIRK(0x1043, 0x1153, "ASUS M9V", AD1986A_FIXUP_LAPTOP_IMIC), SND_PCI_QUIRK(0x1043, 0x1443, "ASUS Z99He", AD1986A_FIXUP_EAPD), SND_PCI_QUIRK(0x1043, 0x1447, "ASUS A8JN", AD1986A_FIXUP_EAPD), SND_PCI_QUIRK_MASK(0x1043, 0xff00, 0x8100, "ASUS P5", AD1986A_FIXUP_3STACK), -- 2.17.1 signature.asc Description: PGP signature
Hello Dear.
-- Hello Dear, Greetings and how is your day going? I am Miss Noora Abdul from South Sudan and I am also an orphan and I will like to discuss something very urgent with you when I hear from you. Regards Noora Abdul --
Re: Microphone volume low on linux driver
*the Windows driver On Fri, 19 Apr 2019 at 14:17, Eric Curtin wrote: > > Hi Guys, > > I have a headset, Linux recognizes it as "HyperX Virtual Surround Sound > Digital Stereo", I have it set to 150% recording volume. It's a "HyperX > Cloud II" headset, the Windows seems to work fine. I also tried > "Digital Stereo (IEC958) Input" mode. > > Is there a quirk or similar in the kernel I can set in order to > increase the recording volume of this device specifically? > > Some details about my system (it's xubuntu): > > username@hp-zbook-15-g5 14:13:12 > ~/>dpkg -l | grep -i pulseaud > ii gstreamer1.0-pulseaudio:amd64 > 1.14.1-1ubuntu1~ubuntu18.04.1 > amd64GStreamer plugin for PulseAudio > ii libcanberra-pulse:amd64 0.30-5ubuntu1 >amd64 > PulseAudio backend for libcanberra > ii libpulse-mainloop-glib0:amd64 1:11.1-1ubuntu7.2 >amd64 > PulseAudio client libraries (glib support) > ii libpulse0:amd64 1:11.1-1ubuntu7.2 >amd64 > PulseAudio client libraries > rc libpulse0:i3861:11.1-1ubuntu7.2 >i386 > PulseAudio client libraries > ii libpulsedsp:amd64 1:11.1-1ubuntu7.2 >amd64 > PulseAudio OSS pre-load library > ii pavucontrol 3.0-4 >amd64 > PulseAudio Volume Control > ii pulseaudio1:11.1-1ubuntu7.2 >amd64 > PulseAudio sound server > ii pulseaudio-module-bluetooth 1:11.1-1ubuntu7.2 >amd64 > Bluetooth module for PulseAudio sound server > ii pulseaudio-utils 1:11.1-1ubuntu7.2 >amd64 > Command line tools for the PulseAudio sound server > ii xfce4-pulseaudio-plugin:amd64 0.4.1-0ubuntu1 >amd64 > Xfce4 panel plugin to control pulseaudio > username@hp-zbook-15-g5 14:13:15 > ~/git/Domino>lsb_release -a > No LSB modules are available. > Distributor ID: Ubuntu > Description: Ubuntu 18.04.2 LTS > Release: 18.04 > Codename: bionic > username@hp-zbook-15-g5 14:13:20 > ~/git/Domino>uname -a > Linux hp-zbook-15-g5 4.18.0-17-generic #18~18.04.1-Ubuntu SMP Fri Mar > 15 15:27:12 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux > > Regards, > > Eric
Microphone volume low on linux driver
Hi Guys, I have a headset, Linux recognizes it as "HyperX Virtual Surround Sound Digital Stereo", I have it set to 150% recording volume. It's a "HyperX Cloud II" headset, the Windows seems to work fine. I also tried "Digital Stereo (IEC958) Input" mode. Is there a quirk or similar in the kernel I can set in order to increase the recording volume of this device specifically? Some details about my system (it's xubuntu): username@hp-zbook-15-g5 14:13:12 ~/>dpkg -l | grep -i pulseaud ii gstreamer1.0-pulseaudio:amd64 1.14.1-1ubuntu1~ubuntu18.04.1 amd64GStreamer plugin for PulseAudio ii libcanberra-pulse:amd64 0.30-5ubuntu1 amd64 PulseAudio backend for libcanberra ii libpulse-mainloop-glib0:amd64 1:11.1-1ubuntu7.2 amd64 PulseAudio client libraries (glib support) ii libpulse0:amd64 1:11.1-1ubuntu7.2 amd64 PulseAudio client libraries rc libpulse0:i3861:11.1-1ubuntu7.2 i386 PulseAudio client libraries ii libpulsedsp:amd64 1:11.1-1ubuntu7.2 amd64 PulseAudio OSS pre-load library ii pavucontrol 3.0-4 amd64 PulseAudio Volume Control ii pulseaudio1:11.1-1ubuntu7.2 amd64 PulseAudio sound server ii pulseaudio-module-bluetooth 1:11.1-1ubuntu7.2 amd64 Bluetooth module for PulseAudio sound server ii pulseaudio-utils 1:11.1-1ubuntu7.2 amd64 Command line tools for the PulseAudio sound server ii xfce4-pulseaudio-plugin:amd64 0.4.1-0ubuntu1 amd64 Xfce4 panel plugin to control pulseaudio username@hp-zbook-15-g5 14:13:15 ~/git/Domino>lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic username@hp-zbook-15-g5 14:13:20 ~/git/Domino>uname -a Linux hp-zbook-15-g5 4.18.0-17-generic #18~18.04.1-Ubuntu SMP Fri Mar 15 15:27:12 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux Regards, Eric
In need of your swift response, Kindly Email today.
With All Due Respects , I am Mr Bretton Calunoth,I have a High Profile Client Who confided in me about US$60,000,000.00 and she wishes to invest, She needs a foreigner who will be her Investment/Asset manager to help her invest into any of investment sectors reachable to the manager. Please let me know if you are willing to work with us as further information will be provided on request. Best Regard Mr Bretton Calunoth.
Re: [PATCH 0/4] Introduce the aural error reporting framework
Matteo, On Tue, 2 Apr 2019, Matteo Croce wrote: > On Tue, Apr 2, 2019 at 11:33 AM Thomas Gleixner wrote: > > Aside of that, where is the android-app to customize and decode the > > melodies? > > > > I surely want to have the music theme of 'Once Upon a Time in the West' on > > kernel crashes. > > I'm a little rusty with Android programming, so I'll share the script > I use to convert notes to frequences. > With some awk magic it can turn notes into a C array, I hope that you > find it useful. That's great. Just a few nitpicks on the patches themself. You want to change msleep() to mdelay() in order to avoid "Scheduling while atomic" noise and you want to have global serialization because interleaving "La Paloma" from CPU1 and "Once Upon a Time in the West" from CPU2 sounds really horrible. Thanks, tglx
Re: [PATCH 0/4] Introduce the aural error reporting framework
On Tue, Apr 2, 2019 at 11:33 AM Thomas Gleixner wrote: > > On Mon, 1 Apr 2019, Peter Zijlstra wrote: > > On Mon, Apr 01, 2019 at 12:24:51PM +0200, Matteo Croce wrote: > > > The buzzer driver is simple, requires just a few register writes to work, > > > the hardware is extremely cheap and is already present on most machines. > > > > What, no morse-code register dumps? > > Aside of that, where is the android-app to customize and decode the > melodies? > > I surely want to have the music theme of 'Once Upon a Time in the West' on > kernel crashes. > > Thanks, > > tglx > Hi Thomas, I'm a little rusty with Android programming, so I'll share the script I use to convert notes to frequences. With some awk magic it can turn notes into a C array, I hope that you find it useful. Bye, -- Matteo Croce per aspera ad upstream notes2freq.sh Description: application/shellscript
Re: [PATCH 0/4] Introduce the aural error reporting framework
On Mon, 1 Apr 2019, Peter Zijlstra wrote: > On Mon, Apr 01, 2019 at 12:24:51PM +0200, Matteo Croce wrote: > > The buzzer driver is simple, requires just a few register writes to work, > > the hardware is extremely cheap and is already present on most machines. > > What, no morse-code register dumps? Aside of that, where is the android-app to customize and decode the melodies? I surely want to have the music theme of 'Once Upon a Time in the West' on kernel crashes. Thanks, tglx
Re: [PATCH 0/4] Introduce the aural error reporting framework
On Mon, Apr 01, 2019 at 12:24:51PM +0200, Matteo Croce wrote: > The buzzer driver is simple, requires just a few register writes to work, > the hardware is extremely cheap and is already present on most machines. What, no morse-code register dumps?
[PATCH 5/4] procfs: utility handler to trigger different errors
Add a /proc/crashtest handler which triggers different kernel errors. Just write a single character (if many are written, only the first one is read), to trigger different errors: - p: raise a kernel panic - w: generate a warning - o: raise an oops The handler permissions are set to 0220 to avoid non root users to crash the system. Signed-off-by: Matteo Croce --- fs/proc/Makefile| 1 + fs/proc/crashtest.c | 43 +++ 2 files changed, 44 insertions(+) create mode 100644 fs/proc/crashtest.c diff --git a/fs/proc/Makefile b/fs/proc/Makefile index ead487e80510..df99d3245ad9 100644 --- a/fs/proc/Makefile +++ b/fs/proc/Makefile @@ -15,6 +15,7 @@ proc-$(CONFIG_TTY) += proc_tty.o proc-y += cmdline.o proc-y += consoles.o proc-y += cpuinfo.o +proc-y += crashtest.o proc-y += devices.o proc-y += interrupts.o proc-y += loadavg.o diff --git a/fs/proc/crashtest.c b/fs/proc/crashtest.c new file mode 100644 index ..ad7d21cc9d98 --- /dev/null +++ b/fs/proc/crashtest.c @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: GPL-2.0 +#include +#include +#include +#include + +static ssize_t crashtest_write(struct file *file, const char __user *buf, + size_t count, loff_t *ppos) +{ + char cmd; + + if (!count) + return 0; + + if (get_user(cmd, buf)) + return -EFAULT; + + switch (cmd) { + case 'p': + panic("crashtest"); + break; + case 'w': + WARN(1, "crashtest"); + break; + case 'o': + *(int*)0 = 0; + break; + default: + return -EINVAL; + } + + return count; +} + +static const struct file_operations proc_crashtest_ops = { + .write = crashtest_write, +}; + +static int __init proc_crashtest_init(void) +{ + return !proc_create("crashtest", 0220, NULL, _crashtest_ops); +} +fs_initcall(proc_crashtest_init); -- 2.20.1
[PATCH 3/4] bug: use the aural error reporting framework to report warnings
Use the new aural error reporting framework to signal kernel bugs. Emit the sound at the end of the __warn(), so the WARN_* are all covered. If panic_on_warn is set, panic() will play its sound and never return, so there is no risk to emit two sounds or the wrong one. Signed-off-by: Matteo Croce --- kernel/panic.c| 18 ++ lib/Kconfig.debug | 10 ++ 2 files changed, 28 insertions(+) diff --git a/kernel/panic.c b/kernel/panic.c index 360578e092e7..b87c4403924d 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -81,6 +81,22 @@ static struct note panic_sound[] = { }; #endif +#ifdef CONFIG_AUDIBLE_WARN +static struct note warn_sound[] = { + { 440, 400 }, + { 440, 300 }, + { 440, 100 }, + { 440, 400 }, + { 523, 300 }, + { 494, 100 }, + { 494, 300 }, + { 440, 100 }, + { 440, 300 }, + { 440, 100 }, + { 440, 800 }, +}; +#endif + static long no_blink(int state) { return 0; @@ -609,6 +625,8 @@ void __warn(const char *file, int line, void *caller, unsigned taint, /* Just a warning, don't kill lockdep. */ add_taint(taint, LOCKDEP_STILL_OK); + + play(warn_sound, ARRAY_SIZE(warn_sound)); } #ifdef WANT_WARN_ON_SLOWPATH diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index e5d187dfc74a..909c271d283b 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1007,6 +1007,16 @@ config AUDIBLE_PANIC the system buzzer and not via any soundcard. Not available on all platforms. +config AUDIBLE_WARN + bool "Aural warning" + select PLAY_LIB + default n + help + If you say Y here, warnings will play a sound just + after the stacktrace and registers dump. The sound is played via + the system buzzer and not via any soundcard. + Not available on all platforms. + config SCHED_DEBUG bool "Collect scheduler debugging info" depends on DEBUG_KERNEL && PROC_FS -- 2.20.1
[PATCH 1/4] aural error reporting framework
The Linux kernel has had verbal error reporting since the beginning. Different error conditions trigger different error messages, with different severity: from a simple warning to the most feared kernel panic. While this detailed error reporting is much helpful to developers or end users, there are some cases in which it's impossible to notice that an error happened. The most common case is headless devices, such as home servers without an attached display, or routers without an exposed serial port. Needless to say, logging into the machine via SSH is not an option after such a severe error. In other cases the monitor might be attached, but the system is unable to display the error, probably because there is an X server running and the KMS switch fails. Or simply the user is visually impaired. These are all cases when the aural errors framework comes to help. This framework adds to the kernel a generic library to play sounds, which can be used to report errors or generic events. As the sound card driver could, and most probably will, become unusable during a kernel crash, the sounds are played via the system buzzer which has been around since the dawn of time. The buzzer driver is simple, requires just a few register writes to work, the hardware is extremely cheap and is already present on most machines. Signed-off-by: Matteo Croce --- arch/x86/lib/Makefile | 1 + arch/x86/lib/play.c | 75 +++ include/linux/play.h | 34 lib/Kconfig.debug | 5 +++ 4 files changed, 115 insertions(+) create mode 100644 arch/x86/lib/play.c create mode 100644 include/linux/play.h diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile index 140e61843a07..fcd1ee6adfad 100644 --- a/arch/x86/lib/Makefile +++ b/arch/x86/lib/Makefile @@ -28,6 +28,7 @@ lib-$(CONFIG_INSTRUCTION_DECODER) += insn.o inat.o insn-eval.o lib-$(CONFIG_RANDOMIZE_BASE) += kaslr.o lib-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o lib-$(CONFIG_RETPOLINE) += retpoline.o +lib-$(CONFIG_PLAY_LIB) += play.o obj-y += msr.o msr-reg.o msr-reg-export.o hweight.o obj-y += iomem.o diff --git a/arch/x86/lib/play.c b/arch/x86/lib/play.c new file mode 100644 index ..e798eeb144f8 --- /dev/null +++ b/arch/x86/lib/play.c @@ -0,0 +1,75 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Aural kernel panic - x86 implementation + * + * Copyright (C) 2019 Matteo Croce + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include + +#define CONTROL_WORD_REG 0x43 +#define COUNTER2 0x42 +#define SPEAKER_PORT 0x61 + +void arch_play_one(unsigned int ms, unsigned int hz) +{ + unsigned long flags; + u8 p61; + + /* filter out non audible by humans freqs */ + if (hz >= 16 && hz <= 22000) { + unsigned int count = PIT_TICK_RATE / hz; + + raw_spin_lock_irqsave(_lock, flags); + + /* set buzzer +* 0xB6 +* 1 0 Counter 2 +* 1 1 2xRD/2xWR bits 0..7, 8..15 of counter value +* 0 1 1Mode 3: Square Wave +* 0Counter is a 16 bit binary counter +*/ + outb_p(0xB6, CONTROL_WORD_REG); + + /* select desired HZ with two writes in counter 2, port 42h */ + outb_p(count, COUNTER2); + outb_p(count >> 8, COUNTER2); + + /* start beep +* set bit 0-1 (0: SPEAKER DATA; 1: OUT2) of GATE2 (port 61h) +*/ + p61 = inb_p(SPEAKER_PORT); + if ((p61 & 3) != 3) + outb_p(p61 | 3, SPEAKER_PORT); + + raw_spin_unlock_irqrestore(_lock, flags); + } + + msleep(ms * 9 / 10); + + raw_spin_lock_irqsave(_lock, flags); + + /* stop beep +* clear bit 0-1 of port 61h +*/ + p61 = inb_p(SPEAKER_PORT); + if (p61 & 3) + outb(p61 & 0xFC, SPEAKER_PORT); + + raw_spin_unlock_irqrestore(_lock, flags); + + msleep(ms / 10); +} diff --git a/include/linux/play.h b/include/linux/play.h new file mode 100644 index ..ae30cb8a0c1d --- /dev/null +++ b/include/linux/play.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * play.h - Definitions and headers for the aural error reporting framework. + * + * Copyright (C) 2019 Matteo Croce + * + * This file is released under the GPLv2. + */ + +#ifndef _LINUX_PLAY_H +#define
[PATCH 4/4] oops: use the aural error reporting framework to report oopses
Use the new aural error reporting framework when reporting an oops. The sound is emitted at the end of oops_exit(), to avoid interfering with other oops actions, like stack dump. Signed-off-by: Matteo Croce --- kernel/panic.c| 18 ++ lib/Kconfig.debug | 10 ++ 2 files changed, 28 insertions(+) diff --git a/kernel/panic.c b/kernel/panic.c index b87c4403924d..ea34f93ce410 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -97,6 +97,23 @@ static struct note warn_sound[] = { }; #endif +#ifdef CONFIG_AUDIBLE_OOPS +static struct note oops_sound[] = { + { 494, 100 }, + { 698, 100 }, + { 0, 100 }, + { 698, 100 }, + { 698, 133 }, + { 659, 133 }, + { 587, 133 }, + { 523, 100 }, + { 330, 100 }, + { 262, 100 }, + { 330, 100 }, + { 262, 100 }, +}; +#endif + static long no_blink(int state) { return 0; @@ -575,6 +592,7 @@ void oops_exit(void) do_oops_enter_exit(); print_oops_end_marker(); kmsg_dump(KMSG_DUMP_OOPS); + play(oops_sound, ARRAY_SIZE(oops_sound)); } struct warn_args { diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 909c271d283b..74745ef386ce 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1017,6 +1017,16 @@ config AUDIBLE_WARN the system buzzer and not via any soundcard. Not available on all platforms. +config AUDIBLE_OOPS + bool "Aural oops" + select PLAY_LIB + default n + help + If you say Y here, oops will play a sound just + after the stacktrace and registers dump. The sound is played via + the system buzzer and not via any soundcard. + Not available on all platforms. + config SCHED_DEBUG bool "Collect scheduler debugging info" depends on DEBUG_KERNEL && PROC_FS -- 2.20.1
[PATCH 0/4] Introduce the aural error reporting framework
The Linux kernel has had verbal error reporting since the beginning. Different error conditions trigger different error messages, with different severity: from a simple warning to the most feared kernel panic. While this detailed error reporting is much helpful to developers or end users, there are some cases in which it's impossible to notice that an error happened. The most common case is headless devices, such as home servers without an attached display, or routers without an exposed serial port. Needless to say, logging into the machine via SSH is not an option after such a severe error. In other cases the monitor might be attached, but the system is unable to display the error, probably because there is an X server running and the KMS switch fails. Or simply the user is visually impaired. These are all cases when the aural errors framework comes to help. This framework adds to the kernel a generic library to play sounds, which can be used to report errors or generic events. As the sound card driver could, and most probably will, become unusable during a kernel crash, the sounds are played via the system buzzer which has been around since the dawn of time. The buzzer driver is simple, requires just a few register writes to work, the hardware is extremely cheap and is already present on most machines. The first patch introduces the framework functions, the other three make use of it in, respectively, kernel panic, warning and oops. The last patch, not to be merged, creates a procfs handler useful to test the error reporting. Matteo Croce (4): aural error reporting framework panic: use the aural error reporting framework to report panics bug: use the aural error reporting framework to report warnings oops: use the aural error reporting framework to report oopses arch/x86/lib/Makefile | 1 + arch/x86/lib/play.c | 75 +++ include/linux/play.h | 34 kernel/panic.c| 61 +++ lib/Kconfig.debug | 35 5 files changed, 206 insertions(+) create mode 100644 arch/x86/lib/play.c create mode 100644 include/linux/play.h -- 2.20.1
[PATCH 2/4] panic: use the aural error reporting framework to report panics
Use the new aural error reporting framework to signal kernel panic. The error sound is emitted between the stack dump and the kexec jump. Signed-off-by: Matteo Croce --- kernel/panic.c| 25 + lib/Kconfig.debug | 10 ++ 2 files changed, 35 insertions(+) diff --git a/kernel/panic.c b/kernel/panic.c index 0ae0d7332f12..360578e092e7 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #define PANIC_TIMER_STEP 100 @@ -57,6 +58,29 @@ ATOMIC_NOTIFIER_HEAD(panic_notifier_list); EXPORT_SYMBOL(panic_notifier_list); +#ifdef CONFIG_AUDIBLE_PANIC +static struct note panic_sound[] = { + { 784, 400 }, + { 784, 400 }, + { 784, 400 }, + { 622, 300 }, + { 932, 100 }, + { 784, 400 }, + { 622, 300 }, + { 932, 100 }, + { 784, 800 }, + { 1174, 400 }, + { 1174, 400 }, + { 1174, 400 }, + { 1244, 300 }, + { 932, 100 }, + { 740, 400 }, + { 622, 300 }, + { 932, 100 }, + { 784, 800 }, +}; +#endif + static long no_blink(int state) { return 0; @@ -213,6 +237,7 @@ void panic(const char *fmt, ...) if (!test_taint(TAINT_DIE) && oops_in_progress <= 1) dump_stack(); #endif + play(panic_sound, ARRAY_SIZE(panic_sound)); /* * If we have crashed and we have a crash kernel loaded let it handle diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 10d04b266aef..e5d187dfc74a 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -997,6 +997,16 @@ config PLAY_LIB depends on HAVE_PCSPKR_PLATFORM default n +config AUDIBLE_PANIC + bool "Aural panic" + select PLAY_LIB + default n + help + If you say Y here, kernel panics will play a sound just + after the stacktrace and registers dump. The sound is played via + the system buzzer and not via any soundcard. + Not available on all platforms. + config SCHED_DEBUG bool "Collect scheduler debugging info" depends on DEBUG_KERNEL && PROC_FS -- 2.20.1
kernel panic
Hi , I have Linux panic when started play music with one of my USB audio device. first please see this logs: [ 71.684730] usbcore: registered new interface driver snd-usb-audio [ 73.835355] BUG: unable to handle kernel NULL pointer dereference at 0008 [ 73.835412] IP: [] snd_usb_endpoint_start+0x23c/0x2f0 [snd_usb_audio] [ 73.835414] PGD 0 [ 73.835415] [ 73.835418] Oops: [#1] PREEMPT SMP [ 73.835482] Modules linked in: snd_usb_audio snd_usbmidi_lib snd_hwdep snd_pcm_oss snd_mixer_oss snd_ pcm snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device snd_timer snd soundcore coretemp iwl3945 iwlegacy i915 ehci_pci iTCO_wdt ehci_hcd pcmcia iTCO_vendor_support kvm usbcore mac80211 e1000e yenta_socket sr_mod pcmcia_rsrc cfg80211 pcmcia_core lpc_ich mfd_core drm_kms_helper cdrom rfkill ata_ge neric irqbypass ptp pps_core joydev sg pcspkr i2c_i801 drm battery i2c_algo_bit ata_piix i2c_smbus usb_c ommon shpchp rng_core ac acpi_cpufreq video button nls_utf8 cifs sha256_ssse3 cmac md4 des_generic arc4 dns_resolver fscache sunrpc loop ip_tables x_tables autofs4 ext4 crc16 jbd2 crc32c_generic fscrypto ecb glue_helper lrw gf128mul ablk_helper cryptd aes_x86_64 mbcache sd_mod ahci libahci [ 73.835486] evdev libata psmouse serio_raw scsi_mod thermal [ 73.835491] CPU: 1 PID: 1099 Comm: output:oops Not tainted 4.9.144-rt93 #1 [ 73.835492] Hardware name: LENOVO 636962M/636962M, BIOS 7IET38WW (1.19 ) 03/22/2011 [ 73.835494] task: 8beb97502c40 task.stack: ac1901068000 [ 73.835505] RIP: 0010:[] [] snd_usb_endpoint_start+0x23c/0x2f0 [ snd_usb_audio] [ 73.835507] RSP: :ac190106bcc0 EFLAGS: 00010246 [ 73.835508] RAX: ffea RBX: 8beb96c0 RCX: ffea [ 73.835509] RDX: RSI: c0b5bf98 RDI: 8beb99a18000 [ 73.835511] RBP: 0002 R08: c0b5a8d3 R09: [ 73.835512] R10: fe00 R11: 0200 R12: 8beb96c80070 [ 73.835513] R13: 8beb99a18000 R14: 0002 R15: [ 73.835516] FS: 7fdfedc66700() GS:8bebbf30() knlGS: [ 73.835518] CS: 0010 DS: ES: CR0: 80050033 [ 73.835519] CR2: 0008 CR3: b4ab6000 CR4: 0670 [ 73.835520] Stack: [ 73.835525] 8bebbc18 8beb96c0 8002 [ 73.835528] 7fdfe40197d0 c0b4e7cd 8bebbc18 8beb974b2400 [ 73.835531] c0b5088a 8bebac44 8bebb206d300 [ 73.835531] Call Trace: [ 73.835545] [] ? start_endpoints+0x3d/0x150 [snd_usb_audio] [ 73.83] [] ? snd_usb_pcm_prepare+0x2ea/0x520 [snd_usb_audio] [ 73.835577] [] ? snd_pcm_sw_params_user+0x56/0x90 [snd_pcm] [ 73.835584] [] ? snd_pcm_do_prepare+0x19/0x30 [snd_pcm] [ 73.835591] [] ? snd_pcm_action_single+0x36/0x80 [snd_pcm] [ 73.835598] [] ? snd_pcm_action_nonatomic+0x61/0x70 [snd_pcm] [ 73.835606] [] ? snd_pcm_common_ioctl1+0x3a9/0xc60 [snd_pcm] [ 73.835674] [] ? ext4_file_write_iter+0x22e/0x370 [ext4] [ 73.835682] [] ? snd_pcm_playback_ioctl1+0x1da/0x240 [snd_pcm] [ 73.835690] [] ? __seccomp_filter+0x78/0x2a0 [ 73.835698] [] ? snd_pcm_playback_ioctl+0x23/0x30 [snd_pcm] [ 73.835702] [] ? do_vfs_ioctl+0xa4/0x620 [ 73.835706] [] ? syscall_trace_enter+0x144/0x300 [ 73.835709] [] ? SyS_ioctl+0x74/0x80 [ 73.835711] [] ? do_syscall_64+0x76/0x100 [ 73.835717] [] ? entry_SYSCALL_64_after_swapgs+0x58/0xc6 [ 73.835747] Code: c0 d3 a8 b5 c0 83 f8 a6 74 15 83 f8 e0 49 c7 c0 8c a8 b5 c0 48 c7 c2 74 a8 b5 c0 4c 0f 45 c2 48 8b 13 89 c1 48 c7 c6 98 bf b5 c0 <48> 8b 7a 08 89 ea 48 81 c7 98 00 00 00 e8 e2 7b f4 f8 f0 80 63 [ 73.835757] RIP [] snd_usb_endpoint_start+0x23c/0x2f0 [snd_usb_audio] [ 73.835758] RSP [ 73.835759] CR2: 0008 I give you more detail, I have Debian Linux 4.9.144-rt93. I tested under Debian 4.19 and Ubuntu same panic present. Please help me to fix this problem, this device working fine under Windows. I believe this problem in Linux audio driver. I ready to provide any additional details if needs. -- Regards, Viktor L
Ree...
Greetings! I sent this letter to you 2days ago,but I'm not sure if you get it,and this is the reason i repeat it again.Please get back to me for more details. Regards, Khim Leang
Update
Hello Dear how are you doing today? my name is Bruce Blake, the manager foreign affairs in City Finance Bank, we have a customer here in bank that has not accessed his account for the past 18 years, after some research made about him we found out he was a victim of the crashed mining company in mexico. he died a single man no wife One son from his first marriage that he divorced, his next of kin is that his only son which we can arrange and make your name his next of kin as his brother, and the mandatory rule of the bank is that after 25 years of a dormant account, the fund should be moved to Government Treasury account. This Customer was my friend because i have known him since he opened an account with us, i can't claim his fund because i am a staff in this bank, that is why i want you to come in and claim this fund as my late clients Relative. if you are interested get back to me so we could discuss and make arrangements for the paper work because everything has to be legit and Legal. Regards Bruce Blake.
Having trouble turning on sound soc device driver
I'm trying to add a driver to a Raspberry Pi3 kernel that I'm compiling in the Yocto system. The driver is for an SOC codec. I've read up on all of the Kconfig information that I can find and I'm still baffled with this problem. I've been able to add configuration for other driver modules and have gotten them to work correctly, the problem that I'm having has to do with the driver for a Maxim 9768 codec. The driver exists in the sound/soc/codecs directory. In looking at the Kconfig file the driver that I'm trying to enable is specified like this: config SND_SOC_MAX9768 tristate No menu entry is created for it, and if I select it through the Yocto build system, it ends up being dropped. The entry for the other SOC driver that I have been able to turn on it looks like this: config SND_SOC_WM8978 tristate "Wolfson Microelectronics WM8978 codec" depends on I2C Near the top of the Kconfig file is this: menu "CODEC drivers" config SND_SOC_ALL_CODECS tristate "Build all ASoC CODEC drivers" depends on COMPILE_TEST select SND_SOC_88PM860X if MFD_88PM860X . . . select SND_SOC_MAX9768 if I2C . . . The "if I2C" seems to be being associated with the MAX9768 config, but I2C is true in the configuration, so that shouldn't limit it. I've attached the full sound/soc/codecs/Kconfig file just in case. Can anyone shed any light on what is happening? Or point me somewhere that I can get more information? Regards, Greg Wilson-Lindberg Kconfig Description: Kconfig
i2s\pcm\spdif\slimbus
Hi All, Can someone share the links to i2s\pcm\spdif\slimbus bus specifications. -- Thanks, Sekhar
Re: Grant
-- I, Mikhail Fridman have selected you specifically as one of my beneficiaries for my Charitable Donation of $5 Million Dollars, Check the link below for confirmation: https://www.rt.com/business/343781-mikhail-fridman-will-charity/ I await your earliest response for further directives. Best Regards, Mikhail Fridman.
Re: ~100 seconds(!) load time of snd-usb-audio
On Mon, Aug 20, 2018 at 8:59 AM Ran Shalit wrote: > > Hello, > > We encounter the following strange behavior, and struggle with it for > couple of days now. I hope someone can suggest how to handle it. > > 1. We have a sound card, which takes ~100seconds(!) till it finishes > loading of snd-usb-audio module. > please see log here: > https://pastebin.com/raw/BbNgUvLw > As you can see the last line " usbcore: registered new interface > driver snd-usb-audio" is printed ~100 seconds after the card is > detected. > 2. Testing other sound cards in same system, shows normal behavior. A little update, we haven't tested this yet, so it's not correct. We just saw on similar hw/kernel that there is no issue, but haven't test it yet on the problematic system. So this section should be ignored. > 3. Surprisingly, testing same sound card with another distribution > (ubuntu) shows no such behavior, and things are immediate. > 4. We already tried several kernels and see the same behavior in all > the tested kernels 3.18.11, 4.0.8 , 4.4.98. > 5. I did find similar issues described here, but no resolve is given: > https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1537465 > > I would appreciate any suggestion, Is there a way to debug the reason for snd-usb-audio waiting time ? > ranran
~100 seconds(!) load time of snd-usb-audio
Hello, We encounter the following strange behavior, and struggle with it for couple of days now. I hope someone can suggest how to handle it. 1. We have a sound card, which takes ~100seconds(!) till it finishes loading of snd-usb-audio module. please see log here: https://pastebin.com/raw/BbNgUvLw As you can see the last line " usbcore: registered new interface driver snd-usb-audio" is printed ~100 seconds after the card is detected. 2. Testing other sound cards in same system, shows normal behavior. 3. Surprisingly, testing same sound card with another distribution (ubuntu) shows no such behavior, and things are immediate. 4. We already tried several kernels and see the same behavior in all the tested kernels 3.18.11, 4.0.8 , 4.4.98. 5. I did find similar issues described here, but no resolve is given: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1537465 I would appreciate any suggestion, ranran
UBSAN warning from ac97_codec.c - shift exponent 68 is too large for 32-bit type 'int'
After the NULL UBSAN warning with gcc-8 are gone, there are still 2 new UBSAN warnings left with gcc-8.2: [ 16.174194] UBSAN: Undefined behaviour in sound/pci/ac97/ac97_codec.c:836:7 [ 16.174282] shift exponent 68 is too large for 32-bit type 'int' Full dnesg: [0.00] Linux version 4.18.0-rc8-00049-gec0c96714e7d (mroos@kukeseen) (gcc version 8.2.0 (Debian 8.2.0-3)) #51 Sun Aug 12 19:38:09 EEST 2018 [0.00] x86/fpu: x87 FPU will use FXSAVE [0.00] BIOS-provided physical RAM map: [0.00] BIOS-e820: [mem 0x-0x0009fbff] usable [0.00] BIOS-e820: [mem 0x0009fc00-0x0009] reserved [0.00] BIOS-e820: [mem 0x000ec000-0x000f] reserved [0.00] BIOS-e820: [mem 0x0010-0x3fff] usable [0.00] BIOS-e820: [mem 0xfec0-0xfecf] reserved [0.00] BIOS-e820: [mem 0xfee0-0xfeef] reserved [0.00] BIOS-e820: [mem 0xffee-0xfff0fffe] reserved [0.00] BIOS-e820: [mem 0xfffc-0x] reserved [0.00] Notice: NX (Execute Disable) protection missing in CPU! [0.00] Legacy DMI 2.3 present. [0.00] DMI: MSI MS-6547 /MS-6547 , BIOS 07.00T [0.00] e820: update [mem 0x-0x0fff] usable ==> reserved [0.00] e820: remove [mem 0x000a-0x000f] usable [0.00] last_pfn = 0x4 max_arch_pfn = 0x10 [0.00] MTRR default type: uncachable [0.00] MTRR fixed ranges enabled: [0.00] 0-9 write-back [0.00] A-B uncachable [0.00] C-C7FFF write-protect [0.00] C8000-E uncachable [0.00] F-F write-protect [0.00] MTRR variable ranges enabled: [0.00] 0 base 0 mask FC000 write-back [0.00] 1 disabled [0.00] 2 disabled [0.00] 3 disabled [0.00] 4 disabled [0.00] 5 disabled [0.00] 6 base 0E000 mask FFC00 write-combining [0.00] 7 base 0E000 mask FFC00 write-combining [0.00] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WC UC- UC [0.00] initial memory mapped: [mem 0x-0x1fbf] [0.00] Base memory trampoline at [(ptrval)] 9b000 size 16384 [0.00] BRK [0x1f818000, 0x1f818fff] PGTABLE [0.00] ACPI: Early table checksum verification disabled [0.00] ACPI BIOS Error (bug): A valid RSDP was not found (20180531/tbxfroot-210) [0.00] 136MB HIGHMEM available. [0.00] 887MB LOWMEM available. [0.00] mapped low ram: 0 - 377fe000 [0.00] low ram: 0 - 377fe000 [0.00] tsc: Fast TSC calibration using PIT [0.00] BRK [0x1f819000, 0x1f819fff] PGTABLE [0.00] Zone ranges: [0.00] DMA [mem 0x1000-0x00ff] [0.00] Normal [mem 0x0100-0x377fdfff] [0.00] HighMem [mem 0x377fe000-0x3fff] [0.00] Movable zone start for each node [0.00] Early memory node ranges [0.00] node 0: [mem 0x1000-0x0009efff] [0.00] node 0: [mem 0x0010-0x3fff] [0.00] Reserved but unavailable: 98 pages [0.00] Initmem setup node 0 [mem 0x1000-0x3fff] [0.00] On node 0 totalpages: 262046 [0.00] DMA zone: 36 pages used for memmap [0.00] DMA zone: 0 pages reserved [0.00] DMA zone: 3998 pages, LIFO batch:0 [0.00] Normal zone: 1962 pages used for memmap [0.00] Normal zone: 223230 pages, LIFO batch:31 [0.00] HighMem zone: 34818 pages, LIFO batch:7 [0.00] Using APIC driver default [0.00] Local APIC disabled by BIOS -- reenabling. [0.00] Found and enabled local APIC! [0.00] PM: Registered nosave memory: [mem 0x-0x0fff] [0.00] PM: Registered nosave memory: [mem 0x0009f000-0x0009] [0.00] PM: Registered nosave memory: [mem 0x000a-0x000ebfff] [0.00] PM: Registered nosave memory: [mem 0x000ec000-0x000f] [0.00] [mem 0x4000-0xfebf] available for PCI devices [0.00] clocksource: refined-jiffies: mask: 0x max_cycles: 0x, max_idle_ns: 7645519600211568 ns [0.00] random: get_random_bytes called from start_kernel+0x6d/0x36b with crng_init=0 [0.00] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [0.00] pcpu-alloc: [0] 0 [0.00] Built 1 zonelists, mobility grouping on. Total pages: 260048 [0.00] Kernel command line: auto BOOT_IMAGE=test ro root=803 lapic [0.00] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [0.00] Inode-cache hash table
Re: [alsa-devel] first and last audio sample timestamp
On Mon, 25 Jun 2018 16:58:26 +0200, Subhashini Rao Beerisetty wrote: > > On Mon, Jun 25, 2018 at 8:23 PM, Takashi Iwai wrote: > > > On Mon, 25 Jun 2018 16:50:20 +0200, > > Subhashini Rao Beerisetty wrote: > > > > > > On Mon, Jun 25, 2018 at 8:04 PM, Takashi Iwai wrote: > > > > > > > On Fri, 22 Jun 2018 16:00:10 +0200, > > > > Subhashini Rao Beerisetty wrote: > > > > > > > > > > [ Please keep me in CC as I'm not subscribed to the list] > > > > > > > > > > Hi All, > > > > > > > > > > > > > > > > > > > > Hello all, > > > > > > > > > > > > > > > I’m using aplay and arecord utilities for playback and capture. I > > need to > > > > > capture the timestamps for the first and last audio samples that > > arrive > > > > at > > > > > the driver level. > > > > > > > > > > For this I’m capturing the CLOCK_MONOTONIC_RAW timestamp at the > > > > > .trigger(for playback & capture) callback in SNDRV_PCM_TRIGGER_START > > > > case > > > > > – is it the correct timestamp for the first audio sample arrived at > > the > > > > > driver level? > > > > > > > > > > Similarly does .trigger callbacks SNDRV_PCM_TRIGGER_STOP gives the > > last > > > > > audio sample timestamp? > > > > > > > > No, it's the timestamp upon calling the trigger callback. > > > > It has nothing to do directly with the first or the last sample. > > > > (But usually the start trigger is the time of the first sample for > > > > capture, though.) > > > > > > > > > > Okay then if start trigger is the time of the first sample for capture, > > > then is stop trigger is for last sample? > > > > No, it's not necessarily the last sample. It's the just time you stop > > the stream. The stop might happen some time after the last sample got > > received. The accuracy in that regard pretty much depends on the > > hardware and the driver implementation. > > > Thanks for the clarification. What about for playback scenario? A similar situation. The timestamp at stop trigger is the time you stopped the stream, and it's not about the "last" sample time. BTW, for the accurate timestamping, check Documentation/sound/design/timestamping.rst. Takashi > > > > > > > > Takashi > > > > > For example, i'm printing the > > > timestamp as given below. Similarly in which call back I can use the > > > getrawmonotonic() > > > for playback case. > > > > > > static int snd_mychip_capture_trigger(struct snd_pcm_substream > > *substream, > > > int cmd) > > > > > > { > > > > > > struct timespec ts; > > > > > > > > > > > > switch(cmd) { > > > > > > case SNDRV_PCM_TRIGGER_START: > > > > > > getrawmonotonic(); > > > > > > printk("1st audio sample received time: > > > [%.6lu:%.9lu]\n",ts.tv_sec, ts.tv_nsec); > > > > > > break; > > > > > > case SNDRV_PCM_TRIGGER_STOP: > > > > > > getrawmonotonic(); > > > > > > printk("Last audio sample received time: > > > [%.6lu:%.9lu]\n",ts.tv_sec, ts.tv_nsec); > > > > > > break; > > > > > > } > > > > > > > > > > > > } > > > > > > > > > > > > > > > > > > Takashi > > > > > > > [2 ] > -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [alsa-devel] first and last audio sample timestamp
On Fri, 22 Jun 2018 16:00:10 +0200, Subhashini Rao Beerisetty wrote: > > [ Please keep me in CC as I'm not subscribed to the list] > > Hi All, > > > > Hello all, > > > I’m using aplay and arecord utilities for playback and capture. I need to > capture the timestamps for the first and last audio samples that arrive at > the driver level. > > For this I’m capturing the CLOCK_MONOTONIC_RAW timestamp at the > .trigger(for playback & capture) callback in SNDRV_PCM_TRIGGER_START case > – is it the correct timestamp for the first audio sample arrived at the > driver level? > > Similarly does .trigger callbacks SNDRV_PCM_TRIGGER_STOP gives the last > audio sample timestamp? No, it's the timestamp upon calling the trigger callback. It has nothing to do directly with the first or the last sample. (But usually the start trigger is the time of the first sample for capture, though.) Takashi -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: audio samples data flow from user mode to kernel mode
Hi Subhashini, On Sat, Jun 23, 2018 at 4:22 PM, Subhashini Rao Beerisetty wrote: > Hello All, > > > > I’m trying to understand how audio samples transferred between user mode to > kernel mode during playback and capture. I’m using aplay & arecord alsa > utilities for playback and capture. > > > > Let us take a PCM wav file of sample rate 48000 and it has a total number of > samples 48 (Approx.Duration in seconds=10). Size of each sample is 8 > bytes(two channels). After invocation of aplay from user mode, how does > these audio samples gets copied to kernel mode? Can someone explain me on > this? > Usually this is done in corresponding sound/alsa device driver. The alsa driver should populate the following structure :- struct snd_pcm_substream { struct snd_pcm *pcm; struct snd_pcm_str *pstr; void *private_data; /* copied from pcm->private_data */ int number; char name[32]; /* substream name */ int stream; /* stream (direction) */ struct pm_qos_request latency_pm_qos_req; /* pm_qos request */ size_t buffer_bytes_max; /* limit ring buffer size */ struct snd_dma_buffer dma_buffer; size_t dma_max; /* -- hardware operations -- */ const struct snd_pcm_ops *ops; Here, you can find the dma_buffer where you have to populate the destination(kernel buffer) I would suggest please have a look at Alsa driver documentation for further details. There are lot of important parameters which defines how the copy will happen from user-space to kernel space - like period size, period count etc. Also look at important functions - snd_pcm_period_elapsed etc > > > Is it possible to capture the timestamps for the first and last audio > samples that arrive at the driver level? > > > > Can I consider the .trigger(for playback & capture) callback in > SNDRV_PCM_TRIGGER_START case is timestamp for the first audio sample? > > > > Similarly does .trigger callbacks SNDRV_PCM_TRIGGER_STOP gives the last > audio sample timestamp? > > > > Thanks, > > > ___ > Kernelnewbies mailing list > kernelnewb...@kernelnewbies.org > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: audio samples data flow from user mode to kernel mode
23.06.2018, 14:52, "Subhashini Rao Beerisetty" : > Hello All, Hello, > I’m trying to understand how audio samples transferred between user mode to > kernel mode during playback and capture. I’m using aplay & arecord alsa > utilities for playback and capture. > > Let us take a PCM wav file of sample rate 48000 and it has a total number of > samples 48 (Approx.Duration in seconds=10). Size of each sample is 8 > bytes(two channels). After invocation of aplay from user mode, how does these > audio samples gets copied to kernel mode? Can someone explain me on this? > > Is it possible to capture the timestamps for the first and last audio samples > that arrive at the driver level? > > Can I consider the .trigger(for playback & capture) callback in > SNDRV_PCM_TRIGGER_START case is timestamp for the first audio sample? > > Similarly does .trigger callbacks SNDRV_PCM_TRIGGER_STOP gives the last audio > sample timestamp? I think no, because the SNDRV_PCM_TRIGGER_START and SNDRV_PCM_TRIGGER_STOP functions only system call to the PCM transmitted. So, will want two different functions as playback / capture and the method depends on you use alsa or pulse. I think you want to: snd_mychip_playback_open snd_mychip_playback_close snd_mychip_capture_open snd_mychip_capture_close Trigger funcs times are not real playback or capture time-stamps. Regards Ozgur > Thanks, -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Grant
-- I Mikhail Fridman. has selected you specially as one of my beneficiaries for my Charitable Donation, Just as I have declared on May 23, 2016 to give my fortune as charity. Check the link below for confirmation: http://www.ibtimes.co.uk/russias-second-wealthiest-man-mikhail-fridman-plans-leaving-14-2bn-fortune-charity-1561604 Reply as soon as possible with further directives. Best Regards, Mikhail Fridman. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Grant
-- I Mikhail Fridman. has selected you specially as one of my beneficiaries for my Charitable Donation, Just as I have declared on May 23, 2016 to give my fortune as charity. Check the link below for confirmation: http://www.ibtimes.co.uk/russias-second-wealthiest-man-mikhail-fridman-plans-leaving-14-2bn-fortune-charity-1561604 Reply as soon as possible with further directives. Best Regards, Mikhail Fridman. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [alsa-devel] sound: ALSA PCM Timestamps
On 5/23/18 8:00 AM, Muni Sekhar wrote: [ Please keep me in CC as I'm not subscribed to the list] Hi All, There are several time stamping functions in ALSA: snd_pcm_status_get_trigger_tstamp snd_pcm_status_get_trigger_htstamp snd_pcm_status_get_tstamp snd_pcm_status_get_htstamp snd_pcm_status_get_audio_htstamp snd_pcm_status_get_driver_htstamp the *_tstamp functions work with a 'struct timeval' which provides microsecond resolution. The *_stamp functions work with a 'struct timespec' which provides nanosecond resolution. The trigger_*tstamp returns the time when the stream started (typically when the DMA starts). The get_tstamp returns the current timestamp measured with the regular timekeeping functions, which by subtracting the trigger timestamp provides the elapsed time since the start. You can specify if you want the REALTIME/MONOTONIC/MONOTONIC_RAW timestamp type, depending on your application. The audio timestamp returns the current timestamp but measured using audio-specific counters. If the audio clocks are not aligned with the system time (e.g. if they use different oscillators or the audio clock source is external), there will be a drift between audio timestamps and system timestamp. I would like to understand what points in time the resulting functions represent and what is the corresponding kernel mode callback for those API’s. I'd be really grateful if someone took the time to help me clearing my doubt. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: sound: latency and synchronization measurements
On Fri, May 18, 2018 at 6:42 PM, Greg KHwrote: > On Fri, May 18, 2018 at 06:07:29PM +0530, Muni Sekhar wrote: >> [ Please keep me in CC as I'm not subscribed to the list] >> >> Hi All, >> >> I am trying to characterize the audio synchronization between two >> systems. There is a mechanism to route audio between two systems, we >> run ‘aplay’ at one system and ‘arecord’ in other system. >> >> We need to measure the time difference when audio sample is out at one >> port and arriving at another port in different system. >> >> I plan to add printk’s in “struct snd_pcm_ops” call backs, but does >> these call backs tells when it received first and last audio >> frames\samples? >> >> Or else please suggest any other best method. > > First off you need a "shared timer/clock" between the two systems in > order to have a chance to determine what actually happens here. Good > luck with that! :) Yes, we do have the shared clock. > > Also, there's been tons of research in this area over the years, please > look into that, odds are these problems have been solved already. I > know of several commercial devices that already handle this just fine. > Can you point me some information on this. > best of luck! > > greg k-h -- Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: sound: latency and synchronization measurements
On Fri, May 18, 2018 at 6:53 PM, Aris Ariswrote: > Hi, > > You could try bitbanging any availiable peripheral(i.e gpio) from each > system at the callbacks and have a logic analyzer measuring and reporting > time delay. Thank you very much Aris for this information. I am fairly new to sound sub system, I’m glad if you can point me on the callbacks. Does the sound driver will be notified aplay\arecord open via “snd_xxx_open(struct snd_pcm_substeam *substream)” callback? Which callbacks of sound driver will tell when it received first and last audio frames\samples? > > Best regards, > > Aris > > On Fri, May 18, 2018 at 3:37 PM, Muni Sekhar > wrote: >> >> [ Please keep me in CC as I'm not subscribed to the list] >> >> Hi All, >> >> I am trying to characterize the audio synchronization between two >> systems. There is a mechanism to route audio between two systems, we >> run ‘aplay’ at one system and ‘arecord’ in other system. >> >> We need to measure the time difference when audio sample is out at one >> port and arriving at another port in different system. >> >> I plan to add printk’s in “struct snd_pcm_ops” call backs, but does >> these call backs tells when it received first and last audio >> frames\samples? >> >> Or else please suggest any other best method. >> >> >> -- >> Thanks, >> Sekhar >> >> ___ >> Kernelnewbies mailing list >> kernelnewb...@kernelnewbies.org >> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > -- Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
sound: latency and synchronization measurements
[ Please keep me in CC as I'm not subscribed to the list] Hi All, I am trying to characterize the audio synchronization between two systems. There is a mechanism to route audio between two systems, we run ‘aplay’ at one system and ‘arecord’ in other system. We need to measure the time difference when audio sample is out at one port and arriving at another port in different system. I plan to add printk’s in “struct snd_pcm_ops” call backs, but does these call backs tells when it received first and last audio frames\samples? Or else please suggest any other best method. -- Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
sound: aplay\arecord audio frame flow
[ Please keep me in CC as I'm not subscribed to the list] Hi All, Is there anyway in the kernel sound subsystem to know when the application calls ‘aplay’ and anything starts playing? Also for arecord\aplay, Is there any way from kernel's point of view to know when it receives for example the first and last audio frames? -- Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
linux-sound: timestamps for audio frames
[ Please keep me in CC as I'm not subscribed to the list] Hi All, >From sound driver, I am wondering if we could get the timestamps when It receives for example the first and last audio frames. Is there any way we can extract or expose that information to user mode? -- Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE:Charity Support
-- I Mikhail Fridman. has selected you specially as one of my beneficiaries for my Charitable Donation, Just as I have declared on May 23, 2016 to give my fortune as charity. Check the link below for confirmation: http://www.ibtimes.co.uk/russias-second-wealthiest-man-mikhail-fridman-plans-leaving-14-2bn-fortune-charity-1561604 Reply as soon as possible with further directives. Best Regards, Mikhail Fridman. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Donation
I Mikhail Fridman. has selected you specially as one of my beneficiaries for my Charitable Donation, Just as I have declared on May 23, 2016 to give my fortune as charity. Check the link below for confirmation: http://www.ibtimes.co.uk/russias-second-wealthiest-man-mikhail-fridman-plans-leaving-14-2bn-fortune-charity-1561604 Reply as soon as possible with further directives. Best Regards, Mikhail Fridman. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [alsa-devel] pulseaudio\aplay\arecord
On Tue, Mar 20, 2018 at 06:42:04PM +0530, Muni Sekhar wrote: > [ Please keep me in CC as I'm not subscribed to the list] > > Hi All, > > > > We are using the Ubuntu 16.04.3 LTS (4.4.0-28-generic) kernel. I’ve a > sound card hardware which supports analog loopback. During analog > loopback test, aplay fails with > “aplay: pcm_write:1940: write error: Input/output error”. > > In our system, I noticed that once the sound driver is loaded, > PulseAudio daemon autospawns and taking over control of the sound > device. Does the ‘pulseaudio’ causes ‘aplay’ failure? No, it doesn't in your scenario. Until pulseaudio opens the device and writes samples to it, you can use aplay. You may have to debug the data flow in your loopback device to fix your issue. > > Can we use aplay\arecord if already pulseaudio daemon is running? Yes, you can use until any sound application triggers pulseaudio to start using the device. Thanks, Sriram. > > > > -- > Thanks, > Sekhar > ___ > Alsa-devel mailing list > alsa-de...@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel -- -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Gruß
Gruß In einer kurzen Einleitung bin ich der Anwalt Vladimir Volf aus zamberk Tschechische Republik, aber jetzt lebe ich in London, ich habe dir eine E-Mail über meinen verstorbenen Klienten geschickt, aber ich habe keine Antwort von dir erhalten, der Verstorbene ist ein Bürger Von deinem Land mit dem gleichen Nachnamen mit dir, er ist ein Exporteur von Gold hier in London. Er starb vor ein paar Jahren mit der Familie und verließ seine Firma,und riesige Geldbeträge in UBS Investment Bank hier in London hinterlegt, Ich bin sein persönlicher Anwalt und ich brauche deine Mitarbeit, damit wir das Geld bekommen können. Das Geld wird in Höhe von £ 5,7 Millionen geschätzt, bevor die Regierung das Geld endgültig beschlagnahmt hat, aber ich sage dir weitere Details darüber, wenn ich von dir höre. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [alsa-devel] aplay\arecord compare utility
On Fri, 23 Feb 2018, Muni Sekhar wrote: > [ Please keep me in CC as I'm not subscribed to the list] > > I?m using an alsa utilities(aplay & arecord) for sound loopback > testing. From Linux host , sending & receiving the wav file. > > At end I want to compare the sent & received wav file. Does Linux has > any utility to support this one? If the wav headers are identical, you can just use cmp or diff. Otherwise, you can extract the raw audio using sox, which gives you files with just the audio samples in them, and then you can use cmp or diff to compare them. It won't work though if the files aren't actually identical, for instance if there is an offset of a couple of samples in one compared to the other. If I had to compare two wav files which were offset by a small number of samples, I'd open them in Audacity, manually align them, then sum the result, write to a new file and verify that the file just contained zeros. /Ricard -- Ricard Wolf Wanderlöf ricardw(at)axis.com Axis Communications AB, Lund, Swedenwww.axis.com Phone +46 46 272 2016 Fax +46 46 13 61 30 -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
aplay\arecord compare utility
[ Please keep me in CC as I'm not subscribed to the list] Hi All, I’m using an alsa utilities(aplay & arecord) for sound loopback testing. From Linux host , sending & receiving the wav file. At end I want to compare the sent & received wav file. Does Linux has any utility to support this one? -- Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
information required
Thanks for your last email response to me. The information required should include the following-: Your full names Your address Telephone number Your private email Occupation Age This is to enable my further discussion with you in confidence. Best regards and wishes to you. Mohammad Amir Khadov NB: Please reply to: uk...@postaxte.com uk...@postaxte.com -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
audio CODEC(CS42888) test
Hi All, I’m having a sound hardware which contains an analogue audio CODEC(CS42888) and configuring the CODEC is performed over SPI bus. I noticed that linux kernel already had a driver(snd-soc-cs42xx8.ko) for this, I planned to use this driver. Basically I’d like to perform loopback test and compare the sent and received files to verify data fidelity. Also the test to be repeated for various data rates and data formats. I’d like to know how to test this loopback scenario? I appreciate any help. -- Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
GREETINGS FROM MR.MUSTAPHA ALI.
My Dear Friend. I am Mr. Mustapha Ali a banker in Bank of Africa Burkina Faso West Africa, Please i want to transfer an abandoned sum of 13.5 millions USD to your account.50% will be for you and 50% for me. No risk involved. Respond back to me if you are interested along with your personal information needed below for more details. 1. Full name:. 2. Current Address:. 3. Phone. 4. Occupation:. 5. Age: 6. Country: 7. Sex 8. Your Passport or ID card or Driving License Thanks. Mr. Mustapha Ali -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Reply
Dear Sir, I am Andrew Wetkas.Personal Assistant to a former Governor in Nigeria. We need your assistance to invest a huge sum in your country. I will give you further details once I hear from you. Regards Andrew -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
GOOD DAY FROM MOHAMMED AHMED .
My Dear Friend. I am Mr. Mohammed Ahmed, I work with Bank Of Africa Burkina Faso West Africa as their Auditing Manager. My Dear I am sending you this business proposal in regards to release and transfer of $13.5 M USD into a foreign account. Everything about the transaction shall be done legal and official on your behalf without any problem for all I require from you is to provide foreign account to receive the fund, Please you shouldn’t be embarrassed how I came across your email ID for I got your contact address from internet Directory and I decided to get in touch with you with the proposal. If you are interested to execute the business with me and also provide foreign account to receive the fund then get back to me for more details about the business deal and as soon as I receive your positive response along with your personal information, I will not hesitate to feed you with more details on how we are to achieve our goal. You will be entitle to have 50% as your own share from the fund and 50% will for me, If you are willing to execute the business then send me immediately your personal information needed to enable us proceed ahead with the business. 1. Full name:. 2. Current Address:. 3. Phone. 4. Occupation:. 5. Age: 6. Country: 7. Sex 8. Your Passport or ID card or Driving License Waiting For Your Urgent Response Thanks Mr. Mohammed Ahmed. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Distress Call Please don't ignore
Good Day, Forgive my indignation if this message comes to you as a surprise and may offend your personality for contacting you without your prior consent and writing through this channel. I came across your name and contact on the course of my personal searching when i was searching for a foreign reliable partner. I was assured of your capability and reliability after going true your profile. I'm (Miss. Sandra) from Benghazi libya, My father of blessed memory by name late General Abdel Fattah Younes who was shot death by Islamist-linked militia within the anti-Gaddafi forces on 28th July, 2011 and after two days later my mother with my two brothers was killed one early morning by the rebels as result of civil war that is going on in my country Libya, then after the burial of my parents, my uncles conspired and sold my father's properties and left nothing for me. On a faithful morning, I opened my father's briefcase and discover a document which he has deposited ($6.250M USD) in a bank in a Turkish Bank which has a small branch in Canada with my name as the legitimate/next of kin. Meanwhile i have located the bank,and have also discussed the possiblity of transfering the fund. My father left a clause to the bank that i must introduce a trusted foreign partner who would be my trustee to help me invest this fund; hence the need for your assistance,i request that you be my t rustee and assist me in e You will also be responsible for the investment and management of the fund for me and also you will help me get a good school where i will further my education. I agreed to give you 40% of the $6.250M once the transfer is done. this is my true life story, I will be glad to receive your respond soonest for more details to enable us start and champion the transfer less than 14 banking days as i was informed by the bank manager. Thanks for giving me your attention, Yours sincerely, Miss. Sandra Younes -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Grant -> Reply To fmayrhoferfam...@gmail.com
-- Good Day, My wife and I have awarded you with a donation of $ 1,000,000.00 Dollars from part of our Jackpot Lottery of 50 Million Dollars, respond with your details for claims to our private email on: fmayrhoferfam...@gmail.com . We await your earliest response and God Bless you. Friedrich And Annand Mayrhofer. Private Email: fmayrhoferfam...@gmail.com -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Quick Loans
Loan Offer at 3%, Feel Free to REPLY back to us for more info. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
HOPE TO HEAR FROM YOU
Hello Dear, I'm Miss.Fatima 24yrs old female, from Benghazi – Libya seeking for your assistance regards to my situation since the death of my parents.My father of blessed memory by name late General Abdel Fattah Younes who was shot death by Islamist-linked militia within the anti-Gaddafi forces on 28th July, 2011 and after two days later my mother with my two brothers was killed one early morning by the rebels as result of civil war that going on in my country Libya. I am now writing to seek for your assistance from Cotonou where I managed to escape nearby country through the help of United Nation after the death of my parents, and now seeking asylum in Refugee Camp here in Cotonou. Meanwhile, the main reason why I am seeking for your assistance is because of some money my late father was deposited in one of the banks here in Cotonou in my name as his next of kin which amount is ($6.250M USD).However, I have being advised by the bank manager to look for a foreign partner who will stand as my trustee to claim the fund due to my refugee status. And i will forward you with the necessary documents on confirmation of your acceptance to assist me for the transfer and statement of the fund in your country. As you will help me in an investment, also it is my intention to compensate you with 40% of the total money for your services and the balance shall be my capital in your establishment. Please get back to me if you are interesting by assisting me claim the fund, so that I will give you all the details /contact of the bank where the fund was deposited. Honestly I want the fund to be transferred into your account before I come over your country to continue my education,honestly I am really suffering since I arrived in this country, it is too painful, but I hope with your help I will have the fund transferred into your account to enable me to come over to your country and have a better life to live in your country. Thanks Miss Fatima -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Headphone not working on ALC299
Hi, I have a problem with ALC299 sound card on Lenovo Yoga 910 (Kaby Lake). Looks like there is some regression bug with Beep Playback codec with causes: $ amixer controls (...) numid=18,iface=MIXER,name='Beep Playback Switch' amixer: Control default snd_hctl_elem_info error: Invalid argument disabling CONFIG_SND_HDA_INPUT_BEEP fixing it. More info on: https://bugzilla.kernel.org/show_bug.cgi?id=195775 Any idea, how to fix it? Cheers, Arek -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re:
With profound love in my heart, I Kindly Oblige your interest to very important proposal.. It is Truly Divine and require your utmost attention.. S hlubokou láskou v mém srdci, Laskave jsem prinutit svuj zájem k návrhu .. Je velmi duležité, skutecne Divine a vyžadují vaši nejvyšší pozornost. Kontaktujte me prímo pres: helenarobert...@gmail.com pro úplné podrobnosti.complete. HELINA .A ROBERTS --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[no subject]
Bitte tut mir leid, dass ich Sie stören kann, können Sie mich auf E-Mail-Adresse, so dass ich in der Lage, Ihnen meine Bilder -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/4] hid-lenovo: Add support for X1 Tablet cover LED control
Hi Jiri, Thanks for your comments. I added comments in-lined. Best regards, Dennis On 19.12.2016 10:54, Jiri Kosina wrote: > Hi Dennis, > > thanks a lot for the patch. > > On Fri, 9 Dec 2016, Dennis Wassenberg wrote: > >> +int hid_lenovo_led_set(enum hid_lenovo_led_type led, bool on) >> +{ >> +struct led_classdev *dev = NULL; >> +struct lenovo_led_list_entry *entry; >> + >> +if (led >= HID_LENOVO_LED_MAX) >> +return -EINVAL; >> + >> +hid_lenovo_initial_leds[led] = on ? LED_FULL : LED_OFF; >> + >> +list_for_each_entry(entry, _lenovo_leds, list) { >> +if (entry->type == led) { >> +dev = entry->dev; >> +break; >> +} >> +} > > How exactly is this synchronized against lenovo_remove_tpx1cover()? > In case of that the tpx1cover is disconnected it will be removed from hid_lenovo_leds list. That means not included at the hid_lenovo_leds list. In this case dev is still NULL and the function will return -ENODEV. The static array hid_lenovo_initial_leds is still set to store the current state of a LED type. This is used to set the LED appropriately if the tpx1cover is replugged. Maybe I should add a mutex to protect the hid_lenovo_leds list operations in hid-lenovo.c to fix the case if a unplug occurred concurrently to setting an led?! >> + >> +if (!dev) >> +return -ENODEV; >> + >> +if (!dev->brightness_set) >> +return -ENODEV; >> + >> +dev->brightness_set(dev, on ? LED_FULL : LED_OFF); >> + >> +return 0; >> +} >> +EXPORT_SYMBOL_GPL(hid_lenovo_led_set); > > Does this really need to be exported to the whole universe? (I guess this > will be further discussed in 4/4). No, it is sufficient if thinkpad-helper can access it. > -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 4/4] hda: thinkpad_helper: Add support for hid-lenovo LED control
Hi Jiri, "led_set_func_hid_lenovo" is set to "hid_lenovo_led_set" +#if IS_ENABLED(CONFIG_HID_LENOVO) +static int hda_fixup_thinkpad_hid_prepare(struct hda_codec *codec) +{ + struct hda_gen_spec *spec = codec->spec; + int ret = 0; + + if (!is_thinkpad(codec)) + return -ENODEV; + if (!led_set_func_hid_lenovo) + led_set_func_hid_lenovo = symbol_request(hid_lenovo_led_set); "hid_lenovo_led_set" is introduced in "[PATCH v2 2/2] hda: thinkpad_helper: Add support for hid-lenovo LED control". This means that "[PATCH 4/4] hda: thinkpad_helper: Add support for hid-lenovo LED control" can only work with applied "[PATCH 1/4] hid-lenovo: Add support for X1 Tablet cover special keys" and "[PATCH v2 2/2] hda: thinkpad_helper: Add support for hid-lenovo LED control". Best regards, Dennis On 19.12.2016 11:09, Jiri Kosina wrote: > On Fri, 9 Dec 2016, Dennis Wassenberg wrote: > >> +#if IS_ENABLED(CONFIG_THINKPAD_ACPI) >> +if (led_set_func_tpacpi) >> +led_set_func_tpacpi(TPACPI_LED_MUTE, !enabled); >> +#endif >> +#if IS_ENABLED(CONFIG_HID_LENOVO) >> +if (led_set_func_hid_lenovo) >> +led_set_func_hid_lenovo(HID_LENOVO_LED_MUTE, !enabled); > > Where does led_set_func_hid_lenovo() come from? I don't see it in Linus' > tree as of today. Is that something else than tpacpi_led_set()? > > Thanks, > -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 4/4] hda: thinkpad_helper: Add support for hid-lenovo LED control
On Fri, 9 Dec 2016, Dennis Wassenberg wrote: > +#if IS_ENABLED(CONFIG_THINKPAD_ACPI) > + if (led_set_func_tpacpi) > + led_set_func_tpacpi(TPACPI_LED_MUTE, !enabled); > +#endif > +#if IS_ENABLED(CONFIG_HID_LENOVO) > + if (led_set_func_hid_lenovo) > + led_set_func_hid_lenovo(HID_LENOVO_LED_MUTE, !enabled); Where does led_set_func_hid_lenovo() come from? I don't see it in Linus' tree as of today. Is that something else than tpacpi_led_set()? Thanks, -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
DO YOU NEED A LOAN??
Are you in need of a loan? Apply for more details. -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/4] hid-lenovo: Add support for X1 Tablet cover LED control
Add support for controlling MUTE, MICMUTE and FNLOCK LEDs. In ordner to enable MUTE and MICMUTE LED control over thinkpad_helper the external interface hid_lenovo_led_set is introduced. This enables setting Lenovo LEDs from external. This is needed because the X1 Tablet Cover is the first thinkpad_helper controlable device which is connected via USB. Additionally the led state is stored inside the hid-lenovo driver to make the driver able to set the led appropriate after device attach. --- drivers/hid/hid-lenovo.c | 262 + include/linux/hid-lenovo.h | 15 +++ 2 files changed, 277 insertions(+) create mode 100644 include/linux/hid-lenovo.h diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 4fc332c..2efd5b0 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -21,11 +21,27 @@ #include #include #include +#include #include #include #include "hid-ids.h" +struct lenovo_led_list_entry { + struct led_classdev *dev; + enum hid_lenovo_led_type type; + struct list_head list; +}; + +struct lenovo_led_type_entry { + struct led_classdev *dev; + enum hid_lenovo_led_type type; + struct list_head list; +}; + +static struct list_head hid_lenovo_leds = LIST_HEAD_INIT(hid_lenovo_leds); +static enum led_brightness hid_lenovo_initial_leds[HID_LENOVO_LED_MAX]; + struct lenovo_drvdata_tpkbd { int led_state; struct led_classdev led_mute; @@ -44,6 +60,44 @@ struct lenovo_drvdata_cptkbd { int sensitivity; }; +struct lenovo_drvdata_tpx1cover { + uint16_t led_state; + uint8_t fnlock_state; + uint8_t led_present; + struct led_classdev led_mute; + struct led_classdev led_micmute; + struct led_classdev led_fnlock; +}; + +int hid_lenovo_led_set(enum hid_lenovo_led_type led, bool on) +{ + struct led_classdev *dev = NULL; + struct lenovo_led_list_entry *entry; + + if (led >= HID_LENOVO_LED_MAX) + return -EINVAL; + + hid_lenovo_initial_leds[led] = on ? LED_FULL : LED_OFF; + + list_for_each_entry(entry, _lenovo_leds, list) { + if (entry->type == led) { + dev = entry->dev; + break; + } + } + + if (!dev) + return -ENODEV; + + if (!dev->brightness_set) + return -ENODEV; + + dev->brightness_set(dev, on ? LED_FULL : LED_OFF); + + return 0; +} +EXPORT_SYMBOL_GPL(hid_lenovo_led_set); + #define map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c)) static const __u8 lenovo_pro_dock_need_fixup_collection[] = { @@ -416,6 +470,62 @@ static int lenovo_event_cptkbd(struct hid_device *hdev, return 0; } +static enum led_brightness lenovo_led_brightness_get_tpx1cover( + struct led_classdev *led_cdev) +{ + struct device *dev = led_cdev->dev->parent; + struct hid_device *hdev = to_hid_device(dev); + struct lenovo_drvdata_tpx1cover *drv_data = hid_get_drvdata(hdev); + enum hid_lenovo_led_type led; + + if (led_cdev == _data->led_mute) + led = HID_LENOVO_LED_MUTE; + else if (led_cdev == _data->led_micmute) + led = HID_LENOVO_LED_MICMUTE; + else if (led_cdev == _data->led_fnlock) + led = HID_LENOVO_LED_FNLOCK; + else + return LED_OFF; + + return drv_data->led_state & (1 << led) + ? LED_FULL + : LED_OFF; +} + +static void lenovo_led_brightness_set_tpx1cover(struct led_classdev *led_cdev, + enum led_brightness value) +{ + struct device *dev = led_cdev->dev->parent; + struct hid_device *hdev = to_hid_device(dev); + struct lenovo_drvdata_tpx1cover *drv_data = hid_get_drvdata(hdev); + struct hid_report *report; + enum hid_lenovo_led_type led; + + if (led_cdev == _data->led_mute) { + led = HID_LENOVO_LED_MUTE; + } else if (led_cdev == _data->led_micmute) { + led = HID_LENOVO_LED_MICMUTE; + } else if (led_cdev == _data->led_fnlock) { + led = HID_LENOVO_LED_FNLOCK; + } else { + hid_warn(hdev, "Invalid LED to set.\n"); + return; + } + + if (value == LED_OFF) + drv_data->led_state &= ~(1 << led); + else + drv_data->led_state |= 1 << led; + + report = hdev->report_enum[HID_OUTPUT_REPORT].report_id_hash[9]; + if (report) { + report->field[0]->value[0] = ((led + 1) << 4) | 0x44; + report->field[0]->value[1] = (drv_data->led_state & (1 << led)) + ? 0x02 : 0x01; + hid_hw_request(hdev, report, HID_REQ_SET_REPORT); + } +} + static int lenovo_event(struct hid_device *hdev, struct hid_field *field, struct
[PATCH v2 2/2] hda: thinkpad_helper: Add support for hid-lenovo LED control
Make the thinkpad_helper able to support not only led control over acpi with thinkpad_acpi driver but also led control over hid-lenovo. The hid-lenovo driver adapted the led control api of thinkpad_acpi. Make the thinkpad_acpi and hid-lenovo able to work combined to support connected Lenovo USB keyboards at Lenovo Thinkpad devices. Signed-off-by: Dennis Wassenberg--- Changes v1 -> v2 (suggested by Takashi Iwai): * Adapt to not rename fixup_thinkpad_acpi to fixup_thinkpad * Made sure that it works even with one of kconfigs is disabled sound/pci/hda/thinkpad_helper.c | 182 +++- 1 file changed, 144 insertions(+), 38 deletions(-) diff --git a/sound/pci/hda/thinkpad_helper.c b/sound/pci/hda/thinkpad_helper.c index f0955fd..0d98624 100644 --- a/sound/pci/hda/thinkpad_helper.c +++ b/sound/pci/hda/thinkpad_helper.c @@ -1,83 +1,188 @@ /* Helper functions for Thinkpad LED control; * to be included from codec driver + * + * These helper functions include both LED control over thinkpad_acpi and + * hid-lenovo */ -#if IS_ENABLED(CONFIG_THINKPAD_ACPI) +#if IS_ENABLED(CONFIG_THINKPAD_ACPI) || IS_ENABLED(CONFIG_HID_LENOVO) #include +#include #include -static int (*led_set_func)(int, bool); +static int (*led_set_func_tpacpi)(int, bool); +static int (*led_set_func_hid_lenovo)(int, bool); static void (*old_vmaster_hook)(void *, int); static bool is_thinkpad(struct hda_codec *codec) { + return (codec->core.subsystem_id >> 16 == 0x17aa); +} + +static bool is_thinkpad_acpi(struct hda_codec *codec) +{ return (codec->core.subsystem_id >> 16 == 0x17aa) && (acpi_dev_found("LEN0068") || acpi_dev_found("IBM0068")); } -static void update_tpacpi_mute_led(void *private_data, int enabled) +static void update_thinkpad_mute_led(void *private_data, int enabled) { if (old_vmaster_hook) old_vmaster_hook(private_data, enabled); - if (led_set_func) - led_set_func(TPACPI_LED_MUTE, !enabled); +#if IS_ENABLED(CONFIG_THINKPAD_ACPI) + if (led_set_func_tpacpi) + led_set_func_tpacpi(TPACPI_LED_MUTE, !enabled); +#endif +#if IS_ENABLED(CONFIG_HID_LENOVO) + if (led_set_func_hid_lenovo) + led_set_func_hid_lenovo(HID_LENOVO_LED_MUTE, !enabled); +#endif } -static void update_tpacpi_micmute_led(struct hda_codec *codec, + + +static void update_thinkpad_micmute_led(struct hda_codec *codec, struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { - if (!ucontrol || !led_set_func) + if (!ucontrol) return; if (strcmp("Capture Switch", ucontrol->id.name) == 0 && ucontrol->id.index == 0) { /* TODO: How do I verify if it's a mono or stereo here? */ bool val = ucontrol->value.integer.value[0] || ucontrol->value.integer.value[1]; - led_set_func(TPACPI_LED_MICMUTE, !val); +#if IS_ENABLED(CONFIG_THINKPAD_ACPI) + if (led_set_func_tpacpi) + led_set_func_tpacpi(TPACPI_LED_MICMUTE, !val); +#endif +#if IS_ENABLED(CONFIG_HID_LENOVO) + if (led_set_func_hid_lenovo) + led_set_func_hid_lenovo(HID_LENOVO_LED_MICMUTE, !val); +#endif } } -static void hda_fixup_thinkpad_acpi(struct hda_codec *codec, - const struct hda_fixup *fix, int action) +#if IS_ENABLED(CONFIG_THINKPAD_ACPI) +static int hda_fixup_thinkpad_acpi_prepare(struct hda_codec *codec) { struct hda_gen_spec *spec = codec->spec; - bool removefunc = false; + int ret = -ENXIO; - if (action == HDA_FIXUP_ACT_PROBE) { - if (!is_thinkpad(codec)) - return; - if (!led_set_func) - led_set_func = symbol_request(tpacpi_led_set); - if (!led_set_func) { - codec_warn(codec, - "Failed to find thinkpad-acpi symbol tpacpi_led_set\n"); - return; - } + if (!is_thinkpad(codec)) + return -ENODEV; + if (!is_thinkpad_acpi(codec)) + return -ENODEV; + if (!led_set_func_tpacpi) + led_set_func_tpacpi = symbol_request(tpacpi_led_set); + if (!led_set_func_tpacpi) { + codec_warn(codec, + "Failed to find thinkpad-acpi symbol tpacpi_led_set\n"); + return -ENOENT; + } - removefunc = true; - if (led_set_func(TPACPI_LED_MUTE, false) >= 0) { - old_vmaster_hook = spec->vmaster_mute.hook; - spec->vmaster_mute.hook = update_tpacpi_mute_led; - removefunc = false; - } - if (led_set_func(TPACPI_LED_MICMUTE, false) >=
Re: [PATCH 4/4] hda: thinkpad_helper: Add support for hid-lenovo LED control
On Mon, 12 Sep 2016 12:47:03 +0200, Dennis Wassenberg wrote: > > Make the thinkpad_helper able to support not only led control over > acpi with thinkpad_acpi driver but also led control over hid-lenovo. > The hid-lenovo driver adapted the led control api of thinkpad_acpi. > > Signed-off-by: Dennis Wassenberg> --- > sound/pci/hda/thinkpad_helper.c | 149 > ++-- > 1 file changed, 111 insertions(+), 38 deletions(-) > > diff --git a/sound/pci/hda/thinkpad_helper.c b/sound/pci/hda/thinkpad_helper.c > index 62741a7..c24a4a9 100644 > --- a/sound/pci/hda/thinkpad_helper.c > +++ b/sound/pci/hda/thinkpad_helper.c > @@ -2,79 +2,152 @@ > * to be included from codec driver > */ > > -#if IS_ENABLED(CONFIG_THINKPAD_ACPI) > - > +#if IS_ENABLED(CONFIG_THINKPAD_ACPI) || IS_ENABLED(CONFIG_HID_LENOVO) > #include > +#include > #include > > -static int (*led_set_func)(int, bool); > +static int (*led_set_func_tpacpi)(int, bool); > +static int (*led_set_func_hid_lenovo)(int, bool); > static void (*old_vmaster_hook)(void *, int); > > static bool is_thinkpad(struct hda_codec *codec) > { > + return (codec->core.subsystem_id >> 16 == 0x17aa); > +} > + > +static bool is_thinkpad_acpi(struct hda_codec *codec) > +{ > return (codec->core.subsystem_id >> 16 == 0x17aa) && > (acpi_dev_found("LEN0068") || acpi_dev_found("IBM0068")); > } > > -static void update_tpacpi_mute_led(void *private_data, int enabled) > +static void update_thinkpad_mute_led(void *private_data, int enabled) > { > if (old_vmaster_hook) > old_vmaster_hook(private_data, enabled); > > - if (led_set_func) > - led_set_func(TPACPI_LED_MUTE, !enabled); > + if (led_set_func_tpacpi) > + led_set_func_tpacpi(TPACPI_LED_MUTE, !enabled); > + > + if (led_set_func_hid_lenovo) > + led_set_func_hid_lenovo(HID_LENOVO_LED_MUTE, !enabled); > } > > -static void update_tpacpi_micmute_led(struct hda_codec *codec, > + > + > +static void update_thinkpad_micmute_led(struct hda_codec *codec, > struct snd_kcontrol *kcontrol, > struct snd_ctl_elem_value *ucontrol) > { > - if (!ucontrol || !led_set_func) > + if (!ucontrol) > return; > if (strcmp("Capture Switch", ucontrol->id.name) == 0 && > ucontrol->id.index == 0) { > /* TODO: How do I verify if it's a mono or stereo here? */ > bool val = ucontrol->value.integer.value[0] || > ucontrol->value.integer.value[1]; > - led_set_func(TPACPI_LED_MICMUTE, !val); > + if (led_set_func_tpacpi) > + led_set_func_tpacpi(TPACPI_LED_MICMUTE, !val); > + if (led_set_func_hid_lenovo) > + led_set_func_hid_lenovo(HID_LENOVO_LED_MICMUTE, !val); > } > } > > -static void hda_fixup_thinkpad(struct hda_codec *codec, > - const struct hda_fixup *fix, int action) > +static int hda_fixup_thinkpad_acpi(struct hda_codec *codec) > { > struct hda_gen_spec *spec = codec->spec; > - bool removefunc = false; > + int ret = -ENXIO; > > - if (action == HDA_FIXUP_ACT_PROBE) { > - if (!is_thinkpad(codec)) > - return; > - if (!led_set_func) > - led_set_func = symbol_request(tpacpi_led_set); > - if (!led_set_func) { > - codec_warn(codec, > -"Failed to find thinkpad-acpi symbol > tpacpi_led_set\n"); > - return; > - } > + if (!is_thinkpad(codec)) > + return -ENODEV; > + if (!is_thinkpad_acpi(codec)) > + return -ENODEV; > + if (!led_set_func_tpacpi) > + led_set_func_tpacpi = symbol_request(tpacpi_led_set); This would be performed even if CONFIG_THINKPAD_ACPI=n when CONFIG_HID_LENOVO!=n. You'd need to have a proper ifdef surrounding the function. > + if (!led_set_func_tpacpi) { > + codec_warn(codec, > +"Failed to find thinkpad-acpi symbol > tpacpi_led_set\n"); > + return -ENOENT; > + } > > - removefunc = true; > - if (led_set_func(TPACPI_LED_MUTE, false) >= 0) { > - old_vmaster_hook = spec->vmaster_mute.hook; > - spec->vmaster_mute.hook = update_tpacpi_mute_led; > - removefunc = false; > - } > - if (led_set_func(TPACPI_LED_MICMUTE, false) >= 0) { > - if (spec->num_adc_nids > 1) > - codec_dbg(codec, > - "Skipping micmute LED control due to > several ADCs"); > - else { > - spec->cap_sync_hook = update_tpacpi_micmute_led; > -
Questions about thinkpad_helper
Hi all, I wrote a driver which handles the function / special keys for ThinKeyboard of Lenovo ThinkPad X1 Tablet 2016 including LED control. This Keyboard is connected via USB to the Tablet. I added the driver to hid-lenovo.c file because there are HID drivers included for different Lenovo devices. For example this driver is able to handle LED control for mute and mic mute keys. Now I want to make the other direction working. If someone sets mute or mic mute at amixer, I want to control the mute and mic mute LEDs. At other Thinkpad devices this is done by thinkpad_helper.c. The thinkpad_helper let the thinkpad_apci driver to control the LEDs. Now I think about how to make this working for Lenovo Thinkpad X1 Tablet 2016. There it is not possible to use the thinkpad_acpi driver. Instead we have to use the hid-lenovo driver to make this working. Should I add this to thinkpad_helper because this is a thinkpad device too or should I make a new helper? Can I use the same API than thinkpad_acpi (static int (*led_set_func)(int, bool)) or should I make a new one (e.g. in combination with LED triggers)? For the first shot I made something at https://github.com/dwassenberg/linux/tree/development/hid-rmi (dc05de0add955775434d18d4fe096ea78d1e63bd..5a88c66f2ae8db04147bb75ecf84a4f52e0da1df) this shot is based on using the thinkpad_helper and the same API. Please tell me your opinion. Maybe one additional remark. In case of using the USB connected ThinKeyboard there is one additional effort to make this working at the initial state if the Tablet is finished booting and after that the ThinKeyboard is connected. So either there is an additional trigger needed which tells the helper to publish the current mute and mic mute state when the keyboard is connected. Or an other approach is to update the hid-lenovo driver even when this keyboard is not connected such that the hid-lenovo driver always knows the current state and is able to set this if the keyboard is connected. Or is there there an other solution? Thank you & best regards, Dennis -- To unsubscribe from this list: send the line "unsubscribe linux-sound" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal (version 2)
On Tue, Aug 09, 2005 at 01:13:51PM -0400, Lee Revell wrote: On Fri, 2005-07-29 at 17:32 +0200, Adrian Bunk wrote: This patch schedules obsolete OSS drivers (with ALSA drivers that support the same hardware) for removal. Scheduling the via82cxxx driver for removal was ACK'ed by Jeff Garzik. Someone on linux-audio-user just pointed out that the OSS USB audio and midi modules were never deprecated, much less scheduled to be removed. Maybe the best way to deprecate them is to move them to Sound - OSS, that's where they belong anyway. I'd deprecate them without moving them. I'll send a patch unless someone tells that any functionality of these drivers is lacking in ALSA. Lee cu Adrian -- Is there not promise of rain? Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. Only a promise, Lao Er said. Pearl S. Buck - Dragon Seed - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [Alsa-devel] Re: [2.6 patch] schedule obsolete OSS drivers for removal
On 7/31/05, Adrian Bunk [EMAIL PROTECTED] wrote: Can you send me the bug numbers in the ALSA bug tracking system if you have to send bug reports, so that I can track when these issues will be resolved? Thorsten: Please remember to include the list(s) when emailing those links/numbers. I'd like to be able to watch it, too, and add any information that I can, rather than entering a duplicate bug. Thanks. -Andy - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [Alsa-devel] Re: [2.6 patch] schedule obsolete OSS drivers for removal
On Mon, 1 Aug 2005, Andrew Haninger wrote: Thorsten: Please remember to include the list(s) when emailing those links/numbers. I'd like to be able to watch it, too, and add any information that I can, rather than entering a duplicate bug. Hello. I have taken a closer look at the ALSA AD1816 sound driver during the last weekend. Here are my findings: On vanilla Linux 2.6.12.3 and 2.6.13-rc4 modprobe hangs in D-state when loading the snd-ad1816a module. No messages have been logged to the syslog and the system is otherwise stable. Of course the sound card is unusable. On Linux 2.6.8 (as shipped with current Debian Sarge), vanilla Linux 2.6.10 and Linux 2.6.11.12 the module loads fine. I have done some tests with xmms(Debian), kphone(VoIP-Phone/Debian) and iaxcomm(VoIP-Phone/self-made). Audio playback with xmms is always fine using either ALSA or OSS emulation. Using OSS emulation with one of the VoIP phones, playback and recording stop a few seconds after the call is started. Using the ALSA interface with kphone works, but there is a continuous clicking approximately 3 times per second. Also audio latency is poor compared to the OSS driver. iaxcomm does not support the ALSA audio interface, thus no problems here. :-) The native OSS driver is fine on all kernels with all tested applications. Also the ALSA driver does not have an equivalent for the ad1816_clockfreq option of the OSS driver. The AD1816 chip requires a 33MHz reference clock, however some cards use a different (mostly 32.125MHz) clock, thus the audio sample rate has to be corrected before it is written to the hardware registers for proper playback and recording speed. I have not filed any bug reports to the ALSA bug tracking system so far, but will do so tomorrow and add the corresponding bug numbers to this thread. Thorsten -- ___ || / E-Mail: [EMAIL PROTECTED] |horsten |/\nabeWWW: http://linux.thorsten-knabe.de - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
On Wed, Jul 27, 2005 at 01:38:37AM +0200, Zoran Dzelajlija wrote: Zach Brown [EMAIL PROTECTED] wrote: Adrian Bunk wrote: This patch schedules obsolete OSS drivers (with ALSA drivers that support the same hardware) for removal. I've Cc'ed the people listed in MAINTAINERS as being responsible for one or more of these drivers, and I've also Cc'ed the ALSA people. I haven't touched the maestro drivers in so long (for near-total lack of docs, etc.) that I can't be considered authoritative for approving it's removal. If people are relying on it I certainly don't know who they are. In better news, Takashi should now have the pile of maestro hardware that I used in the first pass to help him maintain the ALSA driver.. The OSS maestro driver works better on my old Armada E500 laptop. I tried ALSA after switching to 2.6, but the computer hung with 2.6.8.1 or 2.6.10 if I touched the volume buttons. With OSS they just work. The four separate dsp devices also look kind of more useful. I've left it on the list of OSS drivers scheduled for removal based on Takashi's comment that the volume button problem should be fixed now. If this problem is still present in 2.6.13-rc4, please open a bug at the ALSA bug tracking system [1] and tell me the bug number so that I can track it. Zoran cu Adrian [1] https://bugtrack.alsa-project.org/alsa-bug/ -- Is there not promise of rain? Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. Only a promise, Lao Er said. Pearl S. Buck - Dragon Seed - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [Alsa-devel] Re: [2.6 patch] schedule obsolete OSS drivers for removal
On Thu, 28 Jul 2005, Thorsten Knabe wrote: On Tue, 26 Jul 2005, Adrian Bunk wrote: This patch schedules obsolete OSS drivers (with ALSA drivers that support the same hardware) for removal. Hello Adrian. I'm the maintainer of the OSS AD1816 sound driver. I'm aware of two problems of the ALSA AD1816 driver, that do not show up with the OSS driver: - According to my own experience and user reports audio is choppy with some VoIP Softphones like gnophone at least when used with the ALSA OSS emulation layer, whereas the OSS driver is crystal clear. - Users reported, that on some HP Kayak systems the on-board AD1816A was not properly detected by the ALSA driver or was detected, but there was no audio output. I'm not sure if the problem is still present in the current ALSA driver, as I do not own such a system. Maybe the OSS driver should stay in the kernel, until those problems are fixed in the ALSA driver. The problem is that nobody reported us mentioned problems. We have no bug-report regarding the AD1816A driver. Perhaps, it would be a good idea to add a notice to the help file and/or driver that the ALSA driver should be tested and bugs reported to the ALSA bug-tracking-system. Thanks, Jaroslav - Jaroslav Kysela [EMAIL PROTECTED] Linux Kernel Sound Maintainer ALSA Project, SUSE Labs - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
At Wed, 27 Jul 2005 01:38:37 +0200, Zoran Dzelajlija wrote: Zach Brown [EMAIL PROTECTED] wrote: Adrian Bunk wrote: This patch schedules obsolete OSS drivers (with ALSA drivers that support the same hardware) for removal. I've Cc'ed the people listed in MAINTAINERS as being responsible for one or more of these drivers, and I've also Cc'ed the ALSA people. I haven't touched the maestro drivers in so long (for near-total lack of docs, etc.) that I can't be considered authoritative for approving it's removal. If people are relying on it I certainly don't know who they are. In better news, Takashi should now have the pile of maestro hardware that I used in the first pass to help him maintain the ALSA driver.. The OSS maestro driver works better on my old Armada E500 laptop. I tried ALSA after switching to 2.6, but the computer hung with 2.6.8.1 or 2.6.10 if I touched the volume buttons. With OSS they just work. The four separate dsp devices also look kind of more useful. The bug around h/w volume control should have been fixed in the recent version of ALSA drivers. Hopefully everything will get merged into 2.6.13... Takashi - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
On Mer, 2005-07-27 at 16:43 -0400, Jeff Garzik wrote: ISTR Alan saying there was some ALi hardware that either wasn't in ALSA, or most likely didn't work in ALSA. If Alan says I'm smoking crack, then you all can ignore me :) The only big thing I know that still needed OSS (and may still do so) is the support for AC97 wired touchscreens and the like. Has that been ported to ALSA ? - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
On Thu, 28 Jul 2005, Alan Cox wrote: On Mer, 2005-07-27 at 16:43 -0400, Jeff Garzik wrote: ISTR Alan saying there was some ALi hardware that either wasn't in ALSA, or most likely didn't work in ALSA. If Alan says I'm smoking crack, then you all can ignore me :) The only big thing I know that still needed OSS (and may still do so) is the support for AC97 wired touchscreens and the like. Has that been ported to ALSA ? We're working on this issue right now. Jaroslav - Jaroslav Kysela [EMAIL PROTECTED] Linux Kernel Sound Maintainer ALSA Project, SUSE Labs - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
Zach Brown [EMAIL PROTECTED] wrote: Adrian Bunk wrote: This patch schedules obsolete OSS drivers (with ALSA drivers that support the same hardware) for removal. I've Cc'ed the people listed in MAINTAINERS as being responsible for one or more of these drivers, and I've also Cc'ed the ALSA people. I haven't touched the maestro drivers in so long (for near-total lack of docs, etc.) that I can't be considered authoritative for approving it's removal. If people are relying on it I certainly don't know who they are. In better news, Takashi should now have the pile of maestro hardware that I used in the first pass to help him maintain the ALSA driver.. The OSS maestro driver works better on my old Armada E500 laptop. I tried ALSA after switching to 2.6, but the computer hung with 2.6.8.1 or 2.6.10 if I touched the volume buttons. With OSS they just work. The four separate dsp devices also look kind of more useful. Zoran - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
On Tue, Jul 26, 2005 at 11:57:04AM -0400, Jeff Garzik wrote: Lee Revell wrote: On Tue, 2005-07-26 at 17:08 +0200, Adrian Bunk wrote: This patch schedules obsolete OSS drivers (with ALSA drivers that support the same hardware) for removal. How many non-obsolete OSS drivers were there? someone needs to test the remaining PCI ID(s) that are in i810_audio but not ALSA. I've grep'ed a second time for every single PCI ID in the OSS i810_audio, and I still haven't found WTF you are talking about. Once again my question: I though I found every single PCI ID from this driver in ALSA. Which PCI IDs did I miss? cu Adrian -- Is there not promise of rain? Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. Only a promise, Lao Er said. Pearl S. Buck - Dragon Seed - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
On Wed, Jul 27, 2005 at 08:24:28PM +0200, Adrian Bunk wrote: I've grep'ed a second time for every single PCI ID in the OSS i810_audio, and I still haven't found WTF you are talking about. I looked as well, and I found nothing either. Jeff, can you enlighten us? John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
On Jul 27 2005, Lee Revell wrote: On Wed, 2005-07-27 at 01:38 +0200, Zoran Dzelajlija wrote: The OSS maestro driver works better on my old Armada E500 laptop. I tried ALSA after switching to 2.6, but the computer hung with 2.6.8.1 or 2.6.10 if I touched the volume buttons. Please test a newer ALSA version, like the one in 2.6.12. I have an Armada V300 laptop that uses the maestro2 chipset (and I wouldn't be surprised if your E500 used that very same chip) and it works fine with the ALSA provided in kernels since the 2.6.10-mm era (actually, I think it worked fine with even earlier kernels, but I am not sure). Just another datapoint, Rogério. -- Rogério Brito : [EMAIL PROTECTED] : http://www.ime.usp.br/~rbrito Homepage of the algorithms package : http://algorithms.berlios.de Homepage on freshmeat: http://freshmeat.net/projects/algorithms/ - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
On 7/26/05, Adrian Bunk [EMAIL PROTECTED] wrote: config SOUND_OPL3SA2 tristate Yamaha OPL3-SA2 and SA3 based PnP cards - depends on SOUND_OSS + depends on SOUND_OSS OBSOLETE_OSS_DRIVER help Say Y or M if you have a card based on one of these Yamaha sound chipsets or the SAx, which is actually a SA3. Read Forgive me if I'm misreading this (I'm hardly a coder and no kernel hacker) but, as it stands, the OPL3SA2 driver provided by ALSA and the main kernel tree work but are not correctly detected by ALSA's detection routines (in alsaconf) on the 2.6 kernel. The OSS drivers work, as well, but (AFAIK) there are no methods of automatic configuration with the OSS drivers. So, for people who don't feel like configuring ALSA with their OPL3SA2 card, the OSS modules may be easier to configure and thus should be left in until the ALSA/2.6 kernel problems are worked out with the OPL3SA2. -Andy - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
Adrian Bunk wrote: This patch schedules obsolete OSS drivers (with ALSA drivers that support the same hardware) for removal. I've Cc'ed the people listed in MAINTAINERS as being responsible for one or more of these drivers, and I've also Cc'ed the ALSA people. I haven't touched the maestro drivers in so long (for near-total lack of docs, etc.) that I can't be considered authoritative for approving it's removal. If people are relying on it I certainly don't know who they are. In better news, Takashi should now have the pile of maestro hardware that I used in the first pass to help him maintain the ALSA driver.. - z - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [2.6 patch] schedule obsolete OSS drivers for removal
Zach Brown [EMAIL PROTECTED] writes: I haven't touched the maestro drivers in so long (for near-total lack of docs, etc.) that I can't be considered authoritative for approving it's removal. Maestro3 ALSA does work fine for me. -- Krzysztof Halasa - To unsubscribe from this list: send the line unsubscribe linux-sound in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html