Hi !
Well done ! It plays without max loud volume, and no errors on output. I tried with the following test :
`aplay -fcd -d3 /dev/zero ;aplay -r96000 -c2 -d3 /dev/zero ;speaker-test -c2 -twav`
And it's OK. Then I tried with mplayer and some flac files (44.1 / 48 and 96 KHz sample) : no problem.
I think you found the solution. If there are some future problem this patch generates, I'll only see when using "it" each day. Then, for now, you can commit it ;)
Thanks a lot, Takashi.
Le 03/12/2015 12:05, Takashi Iwai a écrit :
On Wed, 02 Dec 2015 21:43:48 +0100, Maeda wrote:
/So the patch prevents the wrong max value reset but it's still incomplete for the left channel volume?/
-> Yes, worst : it plays nothing on left channel -no loud at all ;)
OK. Just tried with the line 'usleep(range)' uncommented. It's better, no loud bug (just a big POP sound on speakers on first time, nothing after), but I have errors in output. I manage to get them with `dmesg`. See attachment.
Use mdelay(3) instead of usleep_range() call. I forgot that it's in a spinlock. It's not ideal, but good just for a test.
Takashi
No error nor bug when playing two times the same sample frequency, as expected... Playing alternatively r48000 and r96000 will output errors each time, despite of no bug, no loud sound, just expected play. Better then. That seems not very 'clean'. What do you think about it ?
Le 02/12/2015 12:36, Takashi Iwai a écrit :
On Wed, 02 Dec 2015 11:11:27 +0100, Maeda wrote:
Hi Takashi !
Sorry for the late answer. I do compile the 'test' kernel after editing the file with the three lines as you said on your previous mail.
The result is that the bug isn't occurring anymore, tested with 96KHz sample :
`aplay -fcd -d3 /dev/zero ; aplay -fS32_LE -r96000 -c2 -d3 /dev/zero ; speaker-test -c2 -twav`
_BUT_, I only have the right speaker that works, I need to change the volume to restore sound on the left channel.
So the patch prevents the wrong max value reset but it's still incomplete for the left channel volume?
Did you try to enable the usleep_range() that was commented out in the patch?
Takashi
Maeda.
Le 21/11/2015 20:45, Takashi Iwai a écrit :
On Sat, 21 Nov 2015 18:42:06 +0100, Maeda wrote:
Hi !
Thanks for answering me. Yes, turning the output volume up or down as soon as it's playing at full output : it plays at the % it should play.
I'm OK to try the patch, but I don't find the /rme96.c/ file. Where is it located ? I think a recompilation's needed then ? Never done that.
Well, you need to learn how to compile the kernel. It's possible to compile only a module from the current running tree, too.
Which distro are you using? You can ask distro guys for assistance.
Takashi
Thanks for help.
Kind regards.
Le 20/11/2015 17:34, Takashi Iwai a écrit : > On Tue, 10 Nov 2015 13:41:44 +0100, > Maeda wrote: >> Hi ! >> >> Someone's here ? >> >> Thanks. >> >> Le 23/10/2015 18:30, Maeda a écrit : >>> Hi all ! >>> >>> I don't know if the bug is known from your team, but some people >>> advice me to send an email to the Alsa devel list if nobody answer in >>> the kernel's bugtracking. >>> >>> Here is the bug I have : >>> https://bugzilla.kernel.org/show_bug.cgi?id=105771 >>> >>> What do you think about it ? > Does the volume go down when you adjust DAC volume by mixer > application when this happens? > > Through a quick glance at the driver code, the only smelling part is > that it's calling snd_rme96_reset_dac() from > snd_rme96_playback_setrate(). If the DAC volume adjustment really > works, the patch below might work. Please give it a try. > > The patch has a code to give some delay that is commented out for > now. The delay is found in the resume path, but I'm not sure whether > it's mandatory. So let's try at first without the delay. If it's > unstable, you can uncomment the line and retry. > > > thanks, > > Takashi > > --- > diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c > index 714df906249e..a9d8a66fc3da 100644 > --- a/sound/pci/rme96.c > +++ b/sound/pci/rme96.c > @@ -741,6 +741,9 @@ snd_rme96_playback_setrate(struct rme96 *rme96, > { > /* change to/from double-speed: reset the DAC (if available) */ > snd_rme96_reset_dac(rme96); > + /* usleep_range(3000, 10000); */ > + if (RME96_HAS_ANALOG_OUT(rme96)) > + snd_rme96_apply_dac_volume(rme96); > } else { > writel(rme96->wcreg, rme96->iobase + RME96_IO_CONTROL_REGISTER); > } > > > >
[2 <text/html; utf-8 (8bit)>]
[ 713.579803] BUG: scheduling while atomic: aplay/2752/0x00000002 [ 713.579869] Modules linked in: joydev mousedev hidp ppdev parport_pc parport fuse vmw_vsock_vmci_transport vsock vmw_vmci cfg80211 ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack iptable_filter nct6775 hwmon_vid bnep snd_hda_codec_hdmi intel_rapl iosf_mbi x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_codec_realtek snd_hda_codec_generic kvm_intel kvm eeepc_wmi snd_hda_intel asus_wmi iTCO_wdt crct10dif_pclmul btusb iTCO_vendor_support crc32_pclmul sparse_keymap snd_hda_codec crc32c_intel btrtl btbcm snd_hda_core btintel snd_rme96 snd_hwdep bluetooth snd_pcm aesni_intel input_leds aes_x86_64 r8169 snd_timer lrw led_class 8139too gf128mul snd mei_me glue_helper evdev ablk_helper 8139cp rfkill mac_hid cryptd mii mei [ 713.583684] psmouse soundcore lpc_ich i2c_i801 shpchp serio_raw pcspkr wmi thermal fan battery video processor button sch_fq_codel nfsd auth_rpcgss nfs oid_registry nfs_acl lockd grace sunrpc fscache ip_tables x_tables ext4 crc16 mbcache jbd2 hid_generic usbhid hid sd_mod sr_mod cdrom atkbd libps2 ahci libahci libata xhci_pci ehci_pci scsi_mod xhci_hcd ehci_hcd usbcore usb_common i8042 serio [ 713.586275] CPU: 6 PID: 2752 Comm: aplay Tainted: G W 4.2.6-ARCH-TESTRME96 #1 [ 713.586353] Hardware name: ASUS All Series/H87-PRO, BIOS 2102 07/29/2014 [ 713.586418] 0000000000000000 000000007e73a456 ffff880819b97b98 ffffffff81570f3a [ 713.586694] 0000000000000000 ffff88083ed95200 ffff880819b97ba8 ffffffff81099e9b [ 713.586968] ffff880819b97bf8 ffffffff815728cb 000000000000f800 ffff8807fcdfc4c0 [ 713.587239] Call Trace: [ 713.587307] [<ffffffff81570f3a>] dump_stack+0x4c/0x6e [ 713.587374] [<ffffffff81099e9b>] __schedule_bug+0x4b/0x60 [ 713.587441] [<ffffffff815728cb>] __schedule+0x89b/0xa00 [ 713.587508] [<ffffffff81572a6e>] schedule+0x3e/0x90 [ 713.587572] [<ffffffff81575737>] schedule_hrtimeout_range_clock.part.7+0x97/0x100 [ 713.587651] [<ffffffff810ddde0>] ? hrtimer_init+0x110/0x110 [ 713.587717] [<ffffffff8157572b>] ? schedule_hrtimeout_range_clock.part.7+0x8b/0x100 [ 713.587794] [<ffffffff815757b9>] schedule_hrtimeout_range_clock+0x19/0x40 [ 713.587861] [<ffffffff815757f3>] schedule_hrtimeout_range+0x13/0x20 [ 713.587927] [<ffffffff8157525f>] usleep_range+0x4f/0x70 [ 713.587994] [<ffffffffa056f0d9>] snd_rme96_playback_hw_params+0x1a9/0x330 [snd_rme96] [ 713.588072] [<ffffffffa055bb0b>] snd_pcm_hw_params+0xbb/0x380 [snd_pcm] [ 713.588139] [<ffffffff81175f46>] ? memdup_user+0x46/0x80 [ 713.588207] [<ffffffffa055d1df>] snd_pcm_common_ioctl1+0x34f/0xb50 [snd_pcm] [ 713.588275] [<ffffffffa055daf3>] snd_pcm_playback_ioctl1+0x113/0x270 [snd_pcm] [ 713.588352] [<ffffffffa055dc78>] snd_pcm_playback_ioctl+0x28/0x40 [snd_pcm] [ 713.588419] [<ffffffff811e2c35>] do_vfs_ioctl+0x295/0x480 [ 713.588485] [<ffffffff811e2e99>] SyS_ioctl+0x79/0x90 [ 713.588551] [<ffffffff815764ae>] entry_SYSCALL_64_fastpath+0x12/0x71 _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel