Re: [alsa-devel] Backported sbxfi driver (UNTESTED!)
Hi,
I have just compiled driver from git and try to run it. My card is pci: 1102:0005 Multimedia audio controller: Creative Labs SB X-Fi
I got following:
root@mayonaka:~# modprobe snd-sbxfi root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) [ 262.522739] XFi DAC reset timeout
Period size ran[ 262.564029] XFi DAC reset timeout ge from 32 to 16[ 262.620275] XFi DAC reset timeout 384 Using max b[ 262.676529] XFi DAC reset timeout uffer size 16384[ 262.732784] XFi DAC reset timeout
Periods = 4 w[ 262.789038] XFi DAC reset timeout as set period_size = 4096 was set buffer_size = 16384 0 - Front Left [ 327.491997] BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] [ 327.492001] Kernel panic - not syncing: softlockup: hung tasks
and i did hear the sine on the left channel. Hope it helps...
At Sun, 12 Oct 2008 16:53:53 +0400, Alexey Bazhin wrote:
Hi,
I have just compiled driver from git and try to run it. My card is pci: 1102:0005 Multimedia audio controller: Creative Labs SB X-Fi
I got following:
root@mayonaka:~# modprobe snd-sbxfi root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) [ 262.522739] XFi DAC reset timeout
Period size ran[ 262.564029] XFi DAC reset timeout ge from 32 to 16[ 262.620275] XFi DAC reset timeout 384 Using max b[ 262.676529] XFi DAC reset timeout uffer size 16384[ 262.732784] XFi DAC reset timeout
Periods = 4 w[ 262.789038] XFi DAC reset timeout as set period_size = 4096 was set buffer_size = 16384 0 - Front Left [ 327.491997] BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] [ 327.492001] Kernel panic - not syncing: softlockup: hung tasks
and i did hear the sine on the left channel. Hope it helps...
Try the very latest sound-unstable tree. Some fixes are there...
thanks,
Takashi
On Mon, 13 Oct 2008 04:03:34 +0200 Takashi Iwai tiwai@suse.de wrote:
At Sun, 12 Oct 2008 16:53:53 +0400, Alexey Bazhin wrote:
Hi,
I have just compiled driver from git and try to run it. My card is pci: 1102:0005 Multimedia audio controller: Creative Labs SB X-Fi
I got following:
root@mayonaka:~# modprobe snd-sbxfi root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) [ 262.522739] XFi DAC reset timeout
Period size ran[ 262.564029] XFi DAC reset timeout ge from 32 to 16[ 262.620275] XFi DAC reset timeout 384 Using max b[ 262.676529] XFi DAC reset timeout uffer size 16384[ 262.732784] XFi DAC reset timeout
Periods = 4 w[ 262.789038] XFi DAC reset timeout as set period_size = 4096 was set buffer_size = 16384 0 - Front Left [ 327.491997] BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] [ 327.492001] Kernel panic - not syncing: softlockup: hung tasks
and i did hear the sine on the left channel. Hope it helps...
Try the very latest sound-unstable tree. Some fixes are there...
Without debug i got the same, with debug my box freezed without panic, i'l reset it when i get home and will try it again...
root@mayonaka:~# modprobe snd_sbxfi root@mayonaka:~# dmesg -n 8 root@mayonaka:~# echo 3 > /sys/module/snd_sbxfi/parameters/debug root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384
and on serial console:
root@mayonaka:~# [ 260.267198] SBXFI: read(0) 0x1c6010 = 0x400 [ 260.317211] SBXFI: IRQ = 0x400 [ 260.353691] SBXFI: write(0) 0x1c6010 = 0x400 [ 260.405119] SBXFI: read(0) 0x1c6010 = 0x400 [ 260.455132] SBXFI: IRQ = 0x400 [ 260.491612] SBXFI: write(0) 0x1c6010 = 0x400 [ 260.548382] SBXFI: read(0) 0x1c6010 = 0x400 [ 260.598458] SBXFI: IRQ = 0x400 [ 260.634936] SBXFI: write(0) 0x1c6010 = 0x400 [ 260.707256] SBXFI: Allocate SRC 0 [ 260.747893] SBXFI: allocated TLB at 0 for 16 pages [ 260.805192] SBXFI: filled TLB pages starting at 0xc10000 [ 260.869274] SBXFI: PLAYBACK PREPARE: rate=96000, period_size=4096, buffer_size=16384 [ 260.961916] SBXFI: read(0) 0x1c6010 = 0x400 [ 261.011901] SBXFI: IRQ = 0x400 [ 261.048383] SBXFI: write(0) 0x1c6010 = 0x400 [ 261.099457] SBXFI: INIT DAC [ 261.132903] SBXFI: read(0) 0x1c6020 = 0x9e00 [ 261.184021] SBXFI: write(0) 0x1c6020 = 0x9e00 [ 261.236091] SBXFI: RESET DAC [ 261.270491] SBXFI: write(10) 0xcc = 0x8c [ 261.317366] SBXFI: write(10) 0xcc = 0xe [ 261.363203] SBXFI: read(10) 0xcc = 0x83aa [ 261.411115] SBXFI: read(10) 0xcc = 0x83aa [ 261.459022] SBXFI: write(10) 0xec = 0x5 [ 261.504863] SBXFI: read(10) 0xec = 0x80800005 [ 261.656093] SBXFI: read(0) 0x1c6020 = 0x9e00 [ 261.707117] SBXFI: write(0) 0x1c6020 = 0x9e00 [ 261.759192] SBXFI: read(0) 0x1c6020 = 0x9e00 [ 261.811209] SBXFI: write(0) 0x1c6020 = 0x9e02 [ 261.962494] SBXFI: read(0) 0x1c6020 = 0x9e02 [ 262.013614] SBXFI: write(0) 0x1c6020 = 0x9e00 [ 262.065688] SBXFI: read(0) 0x1c6020 = 0x9e00 [ 262.117708] SBXFI: write(0) 0x1c6020 = 0x9e02 [ 262.169826] SBXFI: write(10) 0xe0 = 0x180080 [ 262.220860] SBXFI: write(10) 0xe4 = 0x8001 [ 262.269812] SBXFI: read(10) 0xec = 0x80000005 [ 262.321881] XFi DAC reset timeout [ 262.361479] SBXFI: write(10) 0xe0 = 0x180080 [ 262.412511] SBXFI: write(10) 0xe4 = 0x1002 [ 262.461466] SBXFI: read(10) 0xec = 0x80000005 [ 262.513533] XFi DAC reset timeout [ 262.553132] SBXFI: write(10) 0xe0 = 0x180080 [ 262.604164] SBXFI: write(10) 0xe4 = 0x2506 [ 262.653117] SBXFI: read(10) 0xec = 0x80000005 [ 262.705185] XFi DAC reset timeout [ 262.744783] SBXFI: write(10) 0xe0 = 0x180080 [ 262.795817] SBXFI: write(10) 0xe4 = 0x2509 [ 262.844772] SBXFI: read(10) 0xec = 0x80000005 [ 262.896838] XFi DAC reset timeout [ 262.936436] SBXFI: write(10) 0xe0 = 0x180080 [ 262.987469] SBXFI: write(10) 0xe4 = 0x250c [ 263.036422] SBXFI: read(10) 0xec = 0x80000005 [ 263.088489] XFi DAC reset timeout [ 263.128091] SBXFI: write(10) 0xe0 = 0x180080 [ 263.179122] SBXFI: write(10) 0xe4 = 0x250f [ 263.228076] SBXFI: read(10) 0xec = 0x80000005 [ 263.280144] XFi DAC reset timeout [ 263.319744] SBXFI: read(0) 0x1c6020 = 0x9e02 [ 263.370774] SBXFI: write(0) 0x1c6020 = 0x9e42 [ 263.422847] SBXFI: SETUP I2S [ 263.457246] SBXFI: read(0) 0x1c5420 = 0x0 [ 263.505154] SBXFI: write(0) 0x1c5420 = 0x4040406 [ 263.560353] SBXFI: Pitch [0:fa6] = 0x1000000 [ 263.611381] SBXFI: write(0) 0x19be98 = 0x1000000 [ 263.666569] SBXFI: Pitch [80:7a6] = 0x1000000 [ 263.718632] SBXFI: write(0) 0x199e98 = 0x1000000 [ 263.773831] SBXFI: Pitch [1:fb6] = 0x1000000 [ 263.824859] SBXFI: write(0) 0x19bed8 = 0x1000000 [ 263.880048] SBXFI: Pitch [81:7b6] = 0x1000000 [ 263.932118] SBXFI: write(0) 0x199ed8 = 0x1000000 [ 263.987308] SBXFI: Amp [0:1] = 0xeb1 [ 264.030021] SBXFI: write(0) 0x140008 = 0x3ac40011 [ 264.086250] SBXFI: write(0) 0x14000c = 0x0 [ 264.135203] SBXFI: write(0) 0x143d30 = 0x3ac47a61 [ 264.191432] SBXFI: write(0) 0x143d34 = 0x0 [ 264.240384] SBXFI: Amp [80:7a6] = 0xeb1 [ 264.286217] SBXFI: Amp [1:11] = 0xeb1 [ 264.329973] SBXFI: write(0) 0x140088 = 0x3ac40111 [ 264.386201] SBXFI: write(0) 0x14008c = 0x0 [ 264.435156] SBXFI: write(0) 0x143db0 = 0x3ac47b61 [ 264.491383] SBXFI: write(0) 0x143db4 = 0x0 [ 264.540334] SBXFI: Amp [81:7b6] = 0xeb1 [ 264.586169] SBXFI: write(0) 0x1c5000 = 0x0 [ 264.635122] SBXFI: write(0) 0x1c5004 = 0x0 [ 264.684074] SBXFI: write(0) 0x1c5008 = 0x0 [ 264.733026] SBXFI: write(0) 0x1c500c = 0x0 [ 264.781978] SBXFI: write(0) 0x1c5010 = 0x0 [ 264.830930] SBXFI: write(0) 0x1c5014 = 0x0 [ 264.879885] SBXFI: write(0) 0x1c5018 = 0x0 [ 264.928838] SBXFI: write(0) 0x1c501c = 0x0 [ 264.977790] SBXFI: write(0) 0x1c5020 = 0x0 [ 265.026743] SBXFI: write(0) 0x1c5024 = 0x0 [ 265.075695] SBXFI: write(0) 0x1c5028 = 0x0 [ 265.124646] SBXFI: write(0) 0x1c502c = 0x0 [ 265.173599] SBXFI: write(0) 0x1c5030 = 0x0 [ 265.222553] SBXFI: write(0) 0x1c5034 = 0x0 [ 265.271503] SBXFI: write(0) 0x1c5038 = 0x0 [ 265.320458] SBXFI: write(0) 0x1c503c = 0x0 [ 265.369409] SBXFI: write(0) 0x1c5040 = 0x0 [ 265.418369] SBXFI: write(0) 0x1c5044 = 0x0 [ 265.467314] SBXFI: write(0) 0x1c5048 = 0x0 [ 265.516267] SBXFI: write(0) 0x1c504c = 0x0 [ 265.565221] SBXFI: write(0) 0x1c5050 = 0x0 [ 265.614172] SBXFI: write(0) 0x1c5054 = 0x0 [ 265.663124] SBXFI: write(0) 0x1c5058 = 0x0 [ 265.712076] SBXFI: write(0) 0x1c505c = 0x0 [ 265.761032] SBXFI: write(0) 0x1c5060 = 0x0 [ 265.809982] SBXFI: write(0) 0x1c5064 = 0x0 [ 265.858936] SBXFI: write(0) 0x1c5068 = 0x0 [ 265.907889] SBXFI: write(0) 0x1c506c = 0x0 [ 265.956840] SBXFI: write(0) 0x1c5070 = 0x0 [ 266.005793] SBXFI: write(0) 0x1c5074 = 0x0 [ 266.054745] SBXFI: write(0) 0x1c5078 = 0x0 [ 266.103696] SBXFI: write(0) 0x1c507c = 0x0 [ 266.152649] SBXFI: write(0) 0x1c5080 = 0x0 [ 266.201601] SBXFI: write(0) 0x1c5084 = 0x0 [ 266.250554] SBXFI: write(0) 0x1c5088 = 0x0 [ 266.299509] SBXFI: write(0) 0x1c508c = 0x0 [ 266.348459] SBXFI: write(0) 0x1c5090 = 0x0 [ 266.397412] SBXFI: write(0) 0x1c5094 = 0x0 [ 266.446366] SBXFI: write(0) 0x1c5098 = 0x0 [ 266.495317] SBXFI: write(0) 0x1c509c = 0x0 [ 266.544270] SBXFI: write(0) 0x1c50a0 = 0x0 [ 266.593224] SBXFI: write(0) 0x1c50a4 = 0x0 [ 266.642175] SBXFI: write(0) 0x1c50a8 = 0x0 [ 266.691125] SBXFI: write(0) 0x1c50ac = 0x0 [ 266.740081] SBXFI: write(0) 0x1c50b0 = 0x0 [ 266.789032] SBXFI: write(0) 0x1c50b4 = 0x0 [ 266.837985] SBXFI: write(0) 0x1c50b8 = 0x0 [ 266.886938] SBXFI: write(0) 0x1c50bc = 0x0 [ 266.935891] SBXFI: write(0) 0x1c50c0 = 0x0 [ 266.984842] SBXFI: write(0) 0x1c50c4 = 0x0 [ 267.033795] SBXFI: write(0) 0x1c50c8 = 0x0 [ 267.082748] SBXFI: write(0) 0x1c50cc = 0x0 [ 267.131702] SBXFI: write(0) 0x1c50d0 = 0x0 [ 267.180650] SBXFI: write(0) 0x1c50d4 = 0x0 [ 267.229604] SBXFI: write(0) 0x1c50d8 = 0x0 [ 267.278557] SBXFI: write(0) 0x1c50dc = 0x0 [ 267.327508] SBXFI: write(0) 0x1c50e0 = 0x0 [ 267.376462] SBXFI: write(0) 0x1c50e4 = 0x0 [ 267.425415] SBXFI: write(0) 0x1c50e8 = 0x0 [ 267.474367] SBXFI: write(0) 0x1c50ec = 0x0 [ 267.523322] SBXFI: write(0) 0x1c50f0 = 0x0 [ 267.572273] SBXFI: write(0) 0x1c50f4 = 0x0 [ 267.621225] SBXFI: write(0) 0x1c50f8 = 0x0 [ 267.670179] SBXFI: write(0) 0x1c50fc = 0x0 [ 267.719130] SBXFI: write(0) 0x1c5100 = 0x0 [ 267.768082] SBXFI: write(0) 0x1c5104 = 0x0 [ 267.817034] SBXFI: write(0) 0x1c5108 = 0x0 [ 267.865989] SBXFI: write(0) 0x1c510c = 0x0 [ 267.914942] SBXFI: write(0) 0x1c5110 = 0x0 [ 267.963894] SBXFI: write(0) 0x1c5114 = 0x0 [ 268.012846] SBXFI: write(0) 0x1c5118 = 0x0 [ 268.061798] SBXFI: write(0) 0x1c511c = 0x0 [ 268.110749] SBXFI: write(0) 0x1c5120 = 0x0 [ 268.159704] SBXFI: write(0) 0x1c5124 = 0x0 [ 268.208656] SBXFI: write(0) 0x1c5128 = 0x0 [ 268.257607] SBXFI: write(0) 0x1c512c = 0x0 [ 268.306561] SBXFI: write(0) 0x1c5130 = 0x0 [ 268.355513] SBXFI: write(0) 0x1c5134 = 0x0 [ 268.404467] SBXFI: write(0) 0x1c5138 = 0x0 [ 268.453418] SBXFI: write(0) 0x1c513c = 0x0 [ 268.502370] SBXFI: write(0) 0x1c5000 = 0x0 [ 268.551323] SBXFI: write(0) 0x1c5004 = 0x20011 [ 268.604433] SBXFI: write(0) 0x1c5008 = 0x30801 [ 268.657544] SBXFI: write(0) 0x1c500c = 0x811 [ 268.708573] SBXFI: write(0) 0x1c5000 = 0x10001 [ 268.761993] SBXFI: read(0) 0x1c6010 = 0x400 [ 268.811984] SBXFI: IRQ = 0x400 [ 268.848461] SBXFI: write(0) 0x1c6010 = 0x400 [ 268.948453] SBXFI: PLAT TRIGGER START [ 268.952005] SBXFI: write(0) 0x1b0010 = 0x80 [ 268.952005] SBXFI: write(0) 0x1b0014 = 0x0 [ 268.952005] SBXFI: write(0) 0x1b0018 = 0x0 [ 268.952005] SBXFI: write(0) 0x1b001c = 0x10000 [ 268.952005] SBXFI: write(0) 0x1b0004 = 0x100 [ 268.952005] SBXFI: write(0) 0x1b0000 = 0x1045c [ 268.952005] SBXFI: write(0) 0x1b0110 = 0x80 [ 268.952005] SBXFI: write(0) 0x1b0114 = 0x0 [ 268.952005] SBXFI: write(0) 0x1b0118 = 0x0 [ 268.952005] SBXFI: write(0) 0x1b011c = 0x10000 [ 268.952005] SBXFI: write(0) 0x1b0104 = 0x100 [ 268.952005] SBXFI: write(0) 0x1b0100 = 0x5c [ 268.952005] SBXFI: read(0) 0x1b0010 = 0xc5b4 [ 268.952005] SBXFI: POINTER = 314d [ 268.952005] SBXFI: set timer ticks = 20813 [ 268.952005] SBXFI: write(0) 0x1c6004 = 0xdfff [ 268.952005] SBXFI: write(0) 0x1c6014 = 0x100
At Mon, 13 Oct 2008 16:58:05 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 04:03:34 +0200 Takashi Iwai tiwai@suse.de wrote:
At Sun, 12 Oct 2008 16:53:53 +0400, Alexey Bazhin wrote:
Hi,
I have just compiled driver from git and try to run it. My card is pci: 1102:0005 Multimedia audio controller: Creative Labs SB X-Fi
I got following:
root@mayonaka:~# modprobe snd-sbxfi root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) [ 262.522739] XFi DAC reset timeout
Period size ran[ 262.564029] XFi DAC reset timeout ge from 32 to 16[ 262.620275] XFi DAC reset timeout 384 Using max b[ 262.676529] XFi DAC reset timeout uffer size 16384[ 262.732784] XFi DAC reset timeout
Periods = 4 w[ 262.789038] XFi DAC reset timeout as set period_size = 4096 was set buffer_size = 16384 0 - Front Left [ 327.491997] BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] [ 327.492001] Kernel panic - not syncing: softlockup: hung tasks
and i did hear the sine on the left channel. Hope it helps...
Try the very latest sound-unstable tree. Some fixes are there...
Without debug i got the same, with debug my box freezed without panic, i'l reset it when i get home and will try it again...
Try the latest version. Another fix was there.
Takashi
Takashi Iwai пишет:
At Mon, 13 Oct 2008 16:58:05 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 04:03:34 +0200 Takashi Iwai tiwai@suse.de wrote:
At Sun, 12 Oct 2008 16:53:53 +0400, Alexey Bazhin wrote:
Hi,
I have just compiled driver from git and try to run it. My card is pci: 1102:0005 Multimedia audio controller: Creative Labs SB X-Fi
I got following:
root@mayonaka:~# modprobe snd-sbxfi root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) [ 262.522739] XFi DAC reset timeout
Period size ran[ 262.564029] XFi DAC reset timeout ge from 32 to 16[ 262.620275] XFi DAC reset timeout 384 Using max b[ 262.676529] XFi DAC reset timeout uffer size 16384[ 262.732784] XFi DAC reset timeout
Periods = 4 w[ 262.789038] XFi DAC reset timeout as set period_size = 4096 was set buffer_size = 16384 0 - Front Left [ 327.491997] BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] [ 327.492001] Kernel panic - not syncing: softlockup: hung tasks
and i did hear the sine on the left channel. Hope it helps...
Try the very latest sound-unstable tree. Some fixes are there...
Without debug i got the same, with debug my box freezed without panic, i'l reset it when i get home and will try it again...
Try the latest version. Another fix was there.
Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Tried today's snapshot for my card (X-Fi Fatality Champion Series). No change. alsamixer shows only master and mic-boots for playback. Any attempt to use sound with alsa (aplay, any app that uses sound) results in reboot.
At Mon, 13 Oct 2008 18:33:48 +0400, The Source wrote:
Takashi Iwai пишет:
At Mon, 13 Oct 2008 16:58:05 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 04:03:34 +0200 Takashi Iwai tiwai@suse.de wrote:
At Sun, 12 Oct 2008 16:53:53 +0400, Alexey Bazhin wrote:
Hi,
I have just compiled driver from git and try to run it. My card is pci: 1102:0005 Multimedia audio controller: Creative Labs SB X-Fi
I got following:
root@mayonaka:~# modprobe snd-sbxfi root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) [ 262.522739] XFi DAC reset timeout
Period size ran[ 262.564029] XFi DAC reset timeout ge from 32 to 16[ 262.620275] XFi DAC reset timeout 384 Using max b[ 262.676529] XFi DAC reset timeout uffer size 16384[ 262.732784] XFi DAC reset timeout
Periods = 4 w[ 262.789038] XFi DAC reset timeout as set period_size = 4096 was set buffer_size = 16384 0 - Front Left [ 327.491997] BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] [ 327.492001] Kernel panic - not syncing: softlockup: hung tasks
and i did hear the sine on the left channel. Hope it helps...
Try the very latest sound-unstable tree. Some fixes are there...
Without debug i got the same, with debug my box freezed without panic, i'l reset it when i get home and will try it again...
Try the latest version. Another fix was there.
Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Tried today's snapshot for my card (X-Fi Fatality Champion Series). No change.
Does the patch below already in your snapshot tarball? Otherwise it's an older version.
alsamixer shows only master and mic-boots for playback.
This is no bug. It is so. The OSS drivers doesn't provide more than that, and thus mine, too.
Any attempt to use sound with alsa (aplay, any app that uses sound) results in reboot.
This must be fixed, of course. And I hoped that was the patch below.
Takashi
=== commit 80e25366431dd8a4481880d34072cd8de3c17376 Author: Takashi Iwai tiwai@suse.de Date: Mon Oct 13 03:59:45 2008 +0200
sbxfi - fix spinlock again
The last fix was broken; one shouldn't work on Sunday, really.
Signed-off-by: Takashi Iwai tiwai@suse.de
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index f4e8da1..39dfd9e 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -356,10 +356,10 @@ static irqreturn_t sbxfi_interrupt(int irq, void *dev_id) spin_unlock(&chip->timer_lock); if (update) sbxfi_check_period_update(chip); - spin_unlock(&chip->timer_lock); + spin_lock(&chip->timer_lock); } while (chip->timer_reprogram); chip->irq_handling = 0; - spin_lock(&chip->timer_lock); + spin_unlock(&chip->timer_lock); }
/* ack */
At Mon, 13 Oct 2008 16:56:28 +0200, 私 wrote:
At Mon, 13 Oct 2008 18:33:48 +0400, The Source wrote:
Takashi Iwai пишет:
At Mon, 13 Oct 2008 16:58:05 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 04:03:34 +0200 Takashi Iwai tiwai@suse.de wrote:
At Sun, 12 Oct 2008 16:53:53 +0400, Alexey Bazhin wrote:
Hi,
I have just compiled driver from git and try to run it. My card is pci: 1102:0005 Multimedia audio controller: Creative Labs SB X-Fi
I got following:
root@mayonaka:~# modprobe snd-sbxfi root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) [ 262.522739] XFi DAC reset timeout
Period size ran[ 262.564029] XFi DAC reset timeout ge from 32 to 16[ 262.620275] XFi DAC reset timeout 384 Using max b[ 262.676529] XFi DAC reset timeout uffer size 16384[ 262.732784] XFi DAC reset timeout
Periods = 4 w[ 262.789038] XFi DAC reset timeout as set period_size = 4096 was set buffer_size = 16384 0 - Front Left [ 327.491997] BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] [ 327.492001] Kernel panic - not syncing: softlockup: hung tasks
and i did hear the sine on the left channel. Hope it helps...
Try the very latest sound-unstable tree. Some fixes are there...
Without debug i got the same, with debug my box freezed without panic, i'l reset it when i get home and will try it again...
Try the latest version. Another fix was there.
Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Tried today's snapshot for my card (X-Fi Fatality Champion Series). No change.
Does the patch below already in your snapshot tarball? Otherwise it's an older version.
The best way to check whether your snapshot tarball is the latest one is to see alsa-driver*/HEAD and alsa-driver*/alsa-kernel/HEAD files. The former corresponds to alsa-driver-build-unstable.git tree, and the latter to sound-unstable-2.6.git tree. On web, you can check via the following URLs: http://git.kernel.org/?p=linux/kernel/git/tiwai/alsa-driver-build-unstable.g... http://git.kernel.org/?p=linux/kernel/git/tiwai/sound-unstable-2.6.git;a=sum... Click the top commit entry and compare the commit id there and one in your HEAD file in the snapshot tarball.
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
Takashi
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
Takashi
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
thanks,
Takashi
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :) but speakers-test produces crackling sine and fails on test...
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
Master control on mixer seems to be working fine.
Alexey Bazhin пишет:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :) but speakers-test produces crackling sine and fails on test...
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
Master control on mixer seems to be working fine.
ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-unstable-snapshot.tar.bz2 Is that the right URL for latest X-Fi snapshots?
At Tue, 14 Oct 2008 09:17:08 +0400, The Source wrote:
Alexey Bazhin пишет:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :) but speakers-test produces crackling sine and fails on test...
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
Master control on mixer seems to be working fine.
ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-unstable-snapshot.tar.bz2 Is that the right URL for latest X-Fi snapshots?
Yes. And check HEAD files in the tarball.
Takashi
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */ - pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); + /* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */ + pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Ok, I downloaded todays (14th October) snapshot. At least ftp sais the file alsa-driver-unstable-snapshot.tar.bz2 is of 14.10.2008. I extracted it, ran configure, make , make install. No reboot on aplay now, but Oops occurs. Tried with sysytem timer (make clean, changed #undef XXX_SYSTEM_TIMER to #define XXX_SYSTEM_TIMER in sbxfi.c, configure, make, make install). Oops again. Here's the error message: Playing foo.wav: Signed 16bit Little Endian, Rate 22050Hz, Mono BUG: unable to handle NULL pointer dereference at 0000000000000008 IP: <4> Spurious LAPIC timer interrupt on CPU 1 [<ffffffff811410c7>] __list_add+0x1/0x5b PGD 14c14e067 PUD 14c14f067 PMD 14e576067 PTE 0 Oops: 0000 [1]
At Tue, 14 Oct 2008 11:23:42 +0400, The Source wrote:
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Ok, I downloaded todays (14th October) snapshot. At least ftp sais the file alsa-driver-unstable-snapshot.tar.bz2 is of 14.10.2008.
Check HEAD files to make sure it's the latest one as I posted.
I extracted it, ran configure, make , make install. No reboot on aplay now, but Oops occurs. Tried with sysytem timer (make clean, changed #undef XXX_SYSTEM_TIMER to #define XXX_SYSTEM_TIMER in sbxfi.c, configure, make, make install). Oops again. Here's the error message: Playing foo.wav: Signed 16bit Little Endian, Rate 22050Hz, Mono
As I wrote, try 96kHz samples at first.
BUG: unable to handle NULL pointer dereference at 0000000000000008 IP: <4> Spurious LAPIC timer interrupt on CPU 1 [<ffffffff811410c7>] __list_add+0x1/0x5b PGD 14c14e067 PUD 14c14f067 PMD 14e576067 PTE 0 Oops: 0000 [1]
More log below that point please. It contains the stack trace.
thanks,
Takashi
Takashi Iwai пишет:
At Tue, 14 Oct 2008 11:23:42 +0400, The Source wrote:
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
> For example, the latest snapshot I uploaded now has > alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge > branch 'topic/sbxfi' > > ... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Ok, I downloaded todays (14th October) snapshot. At least ftp sais the file alsa-driver-unstable-snapshot.tar.bz2 is of 14.10.2008.
Check HEAD files to make sure it's the latest one as I posted.
I extracted it, ran configure, make , make install. No reboot on aplay now, but Oops occurs. Tried with sysytem timer (make clean, changed #undef XXX_SYSTEM_TIMER to #define XXX_SYSTEM_TIMER in sbxfi.c, configure, make, make install). Oops again. Here's the error message: Playing foo.wav: Signed 16bit Little Endian, Rate 22050Hz, Mono
As I wrote, try 96kHz samples at first.
BUG: unable to handle NULL pointer dereference at 0000000000000008 IP: <4> Spurious LAPIC timer interrupt on CPU 1 [<ffffffff811410c7>] __list_add+0x1/0x5b PGD 14c14e067 PUD 14c14f067 PMD 14e576067 PTE 0 Oops: 0000 [1]
More log below that point please. It contains the stack trace.
thanks,
Takashi
Where can I get more log? I posted here console output, after that system hangs completely.
At Tue, 14 Oct 2008 11:58:00 +0400, The Source wrote:
Takashi Iwai пишет:
At Tue, 14 Oct 2008 11:23:42 +0400, The Source wrote:
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
> At Mon, 13 Oct 2008 17:43:03 +0200, > I wrote: > > >> For example, the latest snapshot I uploaded now has >> alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge >> branch 'topic/sbxfi' >> >> > ... and again updated to: > 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch > 'topic/sbxfi' > > So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Ok, I downloaded todays (14th October) snapshot. At least ftp sais the file alsa-driver-unstable-snapshot.tar.bz2 is of 14.10.2008.
Check HEAD files to make sure it's the latest one as I posted.
I extracted it, ran configure, make , make install. No reboot on aplay now, but Oops occurs. Tried with sysytem timer (make clean, changed #undef XXX_SYSTEM_TIMER to #define XXX_SYSTEM_TIMER in sbxfi.c, configure, make, make install). Oops again. Here's the error message: Playing foo.wav: Signed 16bit Little Endian, Rate 22050Hz, Mono
As I wrote, try 96kHz samples at first.
BUG: unable to handle NULL pointer dereference at 0000000000000008 IP: <4> Spurious LAPIC timer interrupt on CPU 1 [<ffffffff811410c7>] __list_add+0x1/0x5b PGD 14c14e067 PUD 14c14f067 PMD 14e576067 PTE 0 Oops: 0000 [1]
More log below that point please. It contains the stack trace.
thanks,
Takashi
Where can I get more log? I posted here console output, after that system hangs completely.
That's bad. Usually you have more logs when you run dmesg. Does this happen after the fresh reboot, too, right?
[BTW, please post to my address and add Cc to ML instead of posting only to ML. Most developer MLs (like LKML) prefer it.]
Takashi
On Tue, 14 Oct 2008 08:45:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
No, i didn't used XXX_SYSTEM_TIMER
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream?
Yes
Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
How about the patch below for 48kHz?
I'll test it later (my test box freezed again...)
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Tried 96KHz sample (24bit, Little Endian, 96000Hz, Stereo). No crash, hang, reboot. oops, panic etc. But no sound too.
At Tue, 14 Oct 2008 12:48:31 +0400, The Source wrote:
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Tried 96KHz sample (24bit, Little Endian, 96000Hz, Stereo). No crash, hang, reboot. oops, panic etc. But no sound too.
Strange. Oops shouldn't depend on the rate, at least...
Did you raise the master volume?
Takashi
Takashi Iwai пишет:
At Tue, 14 Oct 2008 12:48:31 +0400, The Source wrote:
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
> For example, the latest snapshot I uploaded now has > alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge > branch 'topic/sbxfi' > > ... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Tried 96KHz sample (24bit, Little Endian, 96000Hz, Stereo). No crash, hang, reboot. oops, panic etc. But no sound too.
Strange. Oops shouldn't depend on the rate, at least...
Did you raise the master volume?
Takashi
Yes, to 100%
At Tue, 14 Oct 2008 12:55:01 +0400, The Source wrote:
Takashi Iwai пишет:
At Tue, 14 Oct 2008 12:48:31 +0400, The Source wrote:
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
> At Mon, 13 Oct 2008 17:43:03 +0200, > I wrote: > > >> For example, the latest snapshot I uploaded now has >> alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge >> branch 'topic/sbxfi' >> >> > ... and again updated to: > 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch > 'topic/sbxfi' > > So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Tried 96KHz sample (24bit, Little Endian, 96000Hz, Stereo). No crash, hang, reboot. oops, panic etc. But no sound too.
Strange. Oops shouldn't depend on the rate, at least...
Did you raise the master volume?
Takashi
Yes, to 100%
OK, could you then show the kernel messages? Now the driver must show something useful.
Also, if you load the driver with debug=3 module option, it will log the whole register accesses. Note that the whole can be really long, so do it just only when you want.
Takashi
Takashi Iwai пишет:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
On Mon, 13 Oct 2008 18:05:49 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 18:02:08 +0200, I wrote:
At Mon, 13 Oct 2008 17:43:03 +0200, I wrote:
For example, the latest snapshot I uploaded now has alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge branch 'topic/sbxfi'
... and again updated to: 5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch 'topic/sbxfi'
So, guys, please check the latest one.
If the hang up still occurs with this version, then try to define XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default. With this build option, the driver will use the system timer instead of emu20k1 timer irqs.
If this still doesn't help, try to remove all spinlocks. That is, just comment out all spin_lock*() and spin_unlock*() calls to avoid spin deadlocks. Of course, it can be racy, but better than a spin deadlock.
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Also i tried mplayer, 96khz works almost fine (very rare cracklings), 48khz plays slow (like playing 96khz sample on 48khz rate without resampling), 44.1khz doesn't work at all (mplayer doesn't even show that it plays).
How about the patch below for 48kHz?
Not sure whether 44.1kHz works at all with the current driver code. I just guessed that the pitch parameter would handle that. But, maybe it's not enough...
Master control on mixer seems to be working fine.
OK.
[BTW, it'd be appreciated if you add my address to Cc (or, To: my address and Cc: to ML like other people do), so that I can check your post quickly.]
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 3fde6a9..47ba941 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip, unsigned int pitch, pitch_ch;
/* convert to fixed-point 8.24 format */
- pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);
/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */
pitch = div_u64(runtime->rate * (1ULL << 24), 96000);
for (i = 0; i < 2; i++) { /* write the pitch to param ring of the corresponsing SRC
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Ok, got the dmesg output with debug=3. Hope that helps.
At Tue, 14 Oct 2008 13:17:32 +0400, The Source wrote:
Ok, got the dmesg output with debug=3. Hope that helps.
Thanks. Is it the output with the system timer (XXX_SYSTEM_TIMER)?
I updated the GIT and snapshot tarball again. It's just some more additions of debug log points and typo corrections. Anyway, try to update.
Regarding your silent output: it seems your device is detected as SB055x, and it goes to a special DAC initialization unlike others. Maybe that's the cause.
Does the patch below have any change?
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 6ae83aa..100b265 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -671,6 +671,7 @@ static void sbxfi_init_dac(struct sbxfi *chip) int i;
LOG(1, "INIT DAC\n"); +#if 0 if (chip->type == SBXFI_HW_055x) { /* XXX what this? */ gpio = sbxfi_read(chip, GPIO); @@ -679,6 +680,7 @@ static void sbxfi_init_dac(struct sbxfi *chip) sbxfi_write(chip, GPIO, gpio); return; } +#endif
/* Mute outputs: GPIO6 low */ gpio = sbxfi_read(chip, GPIO);
At Tue, 14 Oct 2008 12:52:59 +0200, I wrote:
At Tue, 14 Oct 2008 13:17:32 +0400, The Source wrote:
Ok, got the dmesg output with debug=3. Hope that helps.
Thanks. Is it the output with the system timer (XXX_SYSTEM_TIMER)?
I updated the GIT and snapshot tarball again. It's just some more additions of debug log points and typo corrections. Anyway, try to update.
Regarding your silent output: it seems your device is detected as SB055x, and it goes to a special DAC initialization unlike others. Maybe that's the cause.
Does the patch below have any change?
Argh, apparently this patch won't change anything. Forget it. I misread the log. Seems your hardware is the type ORIG.
Takashi
Takashi Iwai пишет:
At Tue, 14 Oct 2008 12:52:59 +0200, I wrote:
At Tue, 14 Oct 2008 13:17:32 +0400, The Source wrote:
Ok, got the dmesg output with debug=3. Hope that helps.
Thanks. Is it the output with the system timer (XXX_SYSTEM_TIMER)?
I updated the GIT and snapshot tarball again. It's just some more additions of debug log points and typo corrections. Anyway, try to update.
Regarding your silent output: it seems your device is detected as SB055x, and it goes to a special DAC initialization unlike others. Maybe that's the cause.
Does the patch below have any change?
Argh, apparently this patch won't change anything. Forget it. I misread the log. Seems your hardware is the type ORIG.
Takashi
A small question: can my card (Platinum Fatality Champion Series) work in intel hda mode?
At Tue, 14 Oct 2008 18:11:33 +0400, The Source wrote:
Takashi Iwai пишет:
At Tue, 14 Oct 2008 12:52:59 +0200, I wrote:
At Tue, 14 Oct 2008 13:17:32 +0400, The Source wrote:
Ok, got the dmesg output with debug=3. Hope that helps.
Thanks. Is it the output with the system timer (XXX_SYSTEM_TIMER)?
I updated the GIT and snapshot tarball again. It's just some more additions of debug log points and typo corrections. Anyway, try to update.
Regarding your silent output: it seems your device is detected as SB055x, and it goes to a special DAC initialization unlike others. Maybe that's the cause.
Does the patch below have any change?
Argh, apparently this patch won't change anything. Forget it. I misread the log. Seems your hardware is the type ORIG.
Takashi
A small question: can my card (Platinum Fatality Champion Series) work in intel hda mode?
I guess no.
Takashi
Let's clear this up right here: are only cards which can work in UAA (snd-hda-intel) mode ones that have _two_ chipsets on board, where second one is CA0112 or CA0110? Is that needed just for 20k1? Do 20k2 models have that feature builtin?
2008/10/14 Takashi Iwai tiwai@suse.de:
At Tue, 14 Oct 2008 18:11:33 +0400, The Source wrote:
Takashi Iwai пишет:
At Tue, 14 Oct 2008 12:52:59 +0200, I wrote:
At Tue, 14 Oct 2008 13:17:32 +0400, The Source wrote:
Ok, got the dmesg output with debug=3. Hope that helps.
Thanks. Is it the output with the system timer (XXX_SYSTEM_TIMER)?
I updated the GIT and snapshot tarball again. It's just some more additions of debug log points and typo corrections. Anyway, try to update.
Regarding your silent output: it seems your device is detected as SB055x, and it goes to a special DAC initialization unlike others. Maybe that's the cause.
Does the patch below have any change?
Argh, apparently this patch won't change anything. Forget it. I misread the log. Seems your hardware is the type ORIG.
Takashi
A small question: can my card (Platinum Fatality Champion Series) work in intel hda mode?
I guess no.
Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
At Tue, 14 Oct 2008 18:22:42 +0200, =?UTF-8?Q?Vedran_Mileti=C4=87?= wrote:
Let's clear this up right here: are only cards which can work in UAA (snd-hda-intel) mode ones that have _two_ chipsets on board, where second one is CA0112 or CA0110? Is that needed just for 20k1? Do 20k2 models have that feature builtin?
You can check the PCI IDs. If it appears as 1102:0009 or 1102:000b, it's HD-audio. Or check whether any device with class 0403, not 0401.
Takashi
2008/10/14 Takashi Iwai tiwai@suse.de:
At Tue, 14 Oct 2008 18:11:33 +0400, The Source wrote:
Takashi Iwai пишет:
At Tue, 14 Oct 2008 12:52:59 +0200, I wrote:
At Tue, 14 Oct 2008 13:17:32 +0400, The Source wrote:
Ok, got the dmesg output with debug=3. Hope that helps.
Thanks. Is it the output with the system timer (XXX_SYSTEM_TIMER)?
I updated the GIT and snapshot tarball again. It's just some more additions of debug log points and typo corrections. Anyway, try to update.
Regarding your silent output: it seems your device is detected as SB055x, and it goes to a special DAC initialization unlike others. Maybe that's the cause.
Does the patch below have any change?
Argh, apparently this patch won't change anything. Forget it. I misread the log. Seems your hardware is the type ORIG.
Takashi
A small question: can my card (Platinum Fatality Champion Series) work in intel hda mode?
I guess no.
Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
-- Vedran Miletić
Takashi Iwai пишет:
At Tue, 14 Oct 2008 13:17:32 +0400, The Source wrote:
Ok, got the dmesg output with debug=3. Hope that helps.
Thanks. Is it the output with the system timer (XXX_SYSTEM_TIMER)?
I updated the GIT and snapshot tarball again. It's just some more additions of debug log points and typo corrections. Anyway, try to update.
Regarding your silent output: it seems your device is detected as SB055x, and it goes to a special DAC initialization unlike others. Maybe that's the cause.
Does the patch below have any change?
thanks,
Takashi
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index 6ae83aa..100b265 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -671,6 +671,7 @@ static void sbxfi_init_dac(struct sbxfi *chip) int i;
LOG(1, "INIT DAC\n"); +#if 0 if (chip->type == SBXFI_HW_055x) { /* XXX what this? */ gpio = sbxfi_read(chip, GPIO); @@ -679,6 +680,7 @@ static void sbxfi_init_dac(struct sbxfi *chip) sbxfi_write(chip, GPIO, gpio); return; } +#endif
/* Mute outputs: GPIO6 low */ gpio = sbxfi_read(chip, GPIO);
Here's dmesg output with the new tarball (system timer is not used this time but that doesn't seem to change anything).
By the way, note, that not rate may cause oops but number of channles for example (wav that causes oops has mono mode and the one that just plays silently - stereo. Also the oops sample is 16bit, silent one is 24bit).
At Tue, 14 Oct 2008 15:24:22 +0400, The Source wrote:
By the way, note, that not rate may cause oops but number of channles for example (wav that causes oops has mono mode and the one that just plays silently - stereo. Also the oops sample is 16bit, silent one is 24bit).
This is an important information. The driver basically supports only 16bit stereo samples natively. The others are covered by alsa-lib, and this involves with the mmap mode.
But I still wonder why 16bit mode.
OK, the below is *THE* test I'd like ask you guys to try first.
- Build the driver with --with-debug=detect option - Load the driver with debug=2 module option - Prepare a WAV file with 96kHz 16bit stereo, e.g. converted via sox - Raise the Master volume to the max - Run "aplay this.wav"
At *each* run, check your kernel message. If you get Oops, copy the whole log immediately.
- If you get a DMA error or so in the kernel message, try to define XXX_SYSTEM_TIMER in sbxfi.c, rebuild and reinstall the driver. Run the same test.
- If still any serious problem, load the module with debug=3 option, and get the whole kernel message with full register accesses.
thanks,
Takashi
Takashi Iwai пишет:
At Tue, 14 Oct 2008 15:24:22 +0400, The Source wrote:
By the way, note, that not rate may cause oops but number of channles for example (wav that causes oops has mono mode and the one that just plays silently - stereo. Also the oops sample is 16bit, silent one is 24bit).
This is an important information. The driver basically supports only 16bit stereo samples natively. The others are covered by alsa-lib, and this involves with the mmap mode.
But I still wonder why 16bit mode.
OK, the below is *THE* test I'd like ask you guys to try first.
- Build the driver with --with-debug=detect option
- Load the driver with debug=2 module option
- Prepare a WAV file with 96kHz 16bit stereo, e.g. converted via sox
- Raise the Master volume to the max
- Run "aplay this.wav"
At *each* run, check your kernel message. If you get Oops, copy the whole log immediately.
If you get a DMA error or so in the kernel message, try to define XXX_SYSTEM_TIMER in sbxfi.c, rebuild and reinstall the driver. Run the same test.
If still any serious problem, load the module with debug=3 option, and get the whole kernel message with full register accesses.
thanks,
Takashi
I've done what you have asked. I've got no oopses or other things like that. But again not sound. I've tried with debug=2 and debug=3. Attaching the whole dmesg output.
At Wed, 15 Oct 2008 11:16:32 +0400, The Source wrote:
Takashi Iwai пишет:
At Tue, 14 Oct 2008 15:24:22 +0400, The Source wrote:
By the way, note, that not rate may cause oops but number of channles for example (wav that causes oops has mono mode and the one that just plays silently - stereo. Also the oops sample is 16bit, silent one is 24bit).
This is an important information. The driver basically supports only 16bit stereo samples natively. The others are covered by alsa-lib, and this involves with the mmap mode.
But I still wonder why 16bit mode.
OK, the below is *THE* test I'd like ask you guys to try first.
- Build the driver with --with-debug=detect option
- Load the driver with debug=2 module option
- Prepare a WAV file with 96kHz 16bit stereo, e.g. converted via sox
- Raise the Master volume to the max
- Run "aplay this.wav"
At *each* run, check your kernel message. If you get Oops, copy the whole log immediately.
If you get a DMA error or so in the kernel message, try to define XXX_SYSTEM_TIMER in sbxfi.c, rebuild and reinstall the driver. Run the same test.
If still any serious problem, load the module with debug=3 option, and get the whole kernel message with full register accesses.
thanks,
Takashi
I've done what you have asked. I've got no oopses or other things like that. But again not sound. I've tried with debug=2 and debug=3. Attaching the whole dmesg output.
Thanks. Judging from your logs, it seems that the timer IRQ isn't generated as expected, or the pointer (SRCCA register read) doesn't work, or all broken.
Could you try with XXX_SYSTEM_TIMER? This eliminates, at least, the timer issue.
Takashi
On Tue, 14 Oct 2008 08:45:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~/linux-2.6# dmesg -c >/dev/null root@mayonaka:~/linux-2.6# insmod sound/pci/sbxfi/snd-sbxfi.ko root@mayonaka:~/linux-2.6# dmesg [ 2957.493602] SBXFI: INIT HW [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000 root@mayonaka:~/linux-2.6# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left
Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted root@mayonaka:~/linux-2.6# root@mayonaka:~/linux-2.6# dmesg [ 2957.493602] SBXFI: INIT HW [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000 [ 2974.854578] SBXFI: Allocate SRC 0 [ 2974.855368] SBXFI: allocated TLB at 0 for 16 pages [ 2974.855372] SBXFI: filled TLB pages starting at 0xc10000 [ 2974.855393] SBXFI: PLAYBACK PREPARE: rate=96000, period_size=4096, buffer_size=16384 [ 2974.855396] SBXFI: INIT DAC [ 2974.855400] SBXFI: RESET DAC [ 2975.059435] SBXFI: SETUP I2S [ 2975.059445] SBXFI: Pitch [0:fa6] = 0x1000000 [ 2975.059449] SBXFI: Pitch [80:7a6] = 0x1000000 [ 2975.059453] SBXFI: Pitch [1:fb6] = 0x1000000 [ 2975.059456] SBXFI: Pitch [81:7b6] = 0x1000000 [ 2975.059460] SBXFI: Amp [00:0001] = 0x101c [ 2975.059465] SBXFI: Amp [80:07a6] = 0x101c [ 2975.059470] SBXFI: Amp [01:0011] = 0x101c [ 2975.059474] SBXFI: Amp [81:07b6] = 0x101c [ 2975.062594] SBXFI: PLAY TRIGGER START [ 2975.062600] SBXFI: SETUP SRC: ch=0x0, start=0x0, loop=0x10000, cache=0x100, ctrl=0x1045c [ 2975.062612] SBXFI: SETUP SRC: ch=0x1, start=0x0, loop=0x10000, cache=0x100, ctrl=0x5c [ 2975.062625] SBXFI: PLAY UPDATE TIMER [ 2995.148059] SBXFI: PLAY TRIGGER STOP [ 2995.148072] SBXFI: PLAY UPDATE TIMER [ 2995.148079] SBXFI: release TLB at 0 for 16 pages [ 2995.148218] SBXFI: Release SRC 0
Two more things: -speakers-test on 48khz doesn't produce above errors, but frequency is still not right -24-bit samples is silent for me too
How about the patch below for 48kHz?
Didn't changed anything...
At Wed, 15 Oct 2008 00:35:31 +0400, Alexey Bazhin wrote:
On Tue, 14 Oct 2008 08:45:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~/linux-2.6# dmesg -c >/dev/null root@mayonaka:~/linux-2.6# insmod sound/pci/sbxfi/snd-sbxfi.ko root@mayonaka:~/linux-2.6# dmesg [ 2957.493602] SBXFI: INIT HW [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000 root@mayonaka:~/linux-2.6# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left
Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted root@mayonaka:~/linux-2.6# root@mayonaka:~/linux-2.6# dmesg [ 2957.493602] SBXFI: INIT HW [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000 [ 2974.854578] SBXFI: Allocate SRC 0 [ 2974.855368] SBXFI: allocated TLB at 0 for 16 pages [ 2974.855372] SBXFI: filled TLB pages starting at 0xc10000 [ 2974.855393] SBXFI: PLAYBACK PREPARE: rate=96000, period_size=4096, buffer_size=16384 [ 2974.855396] SBXFI: INIT DAC [ 2974.855400] SBXFI: RESET DAC [ 2975.059435] SBXFI: SETUP I2S [ 2975.059445] SBXFI: Pitch [0:fa6] = 0x1000000 [ 2975.059449] SBXFI: Pitch [80:7a6] = 0x1000000 [ 2975.059453] SBXFI: Pitch [1:fb6] = 0x1000000 [ 2975.059456] SBXFI: Pitch [81:7b6] = 0x1000000 [ 2975.059460] SBXFI: Amp [00:0001] = 0x101c [ 2975.059465] SBXFI: Amp [80:07a6] = 0x101c [ 2975.059470] SBXFI: Amp [01:0011] = 0x101c [ 2975.059474] SBXFI: Amp [81:07b6] = 0x101c [ 2975.062594] SBXFI: PLAY TRIGGER START [ 2975.062600] SBXFI: SETUP SRC: ch=0x0, start=0x0, loop=0x10000, cache=0x100, ctrl=0x1045c [ 2975.062612] SBXFI: SETUP SRC: ch=0x1, start=0x0, loop=0x10000, cache=0x100, ctrl=0x5c [ 2975.062625] SBXFI: PLAY UPDATE TIMER [ 2995.148059] SBXFI: PLAY TRIGGER STOP [ 2995.148072] SBXFI: PLAY UPDATE TIMER [ 2995.148079] SBXFI: release TLB at 0 for 16 pages [ 2995.148218] SBXFI: Release SRC 0
Hmm, then there is no serious error here. Did you build the driver with --with-debug=full or --with-debug=detect option? Also, run with debug=2. Then it prints the timer/IRQ handling, too.
Does this happen with aplay, too?
Also, please track via strace to check which syscall it gets an error.
Two more things: -speakers-test on 48khz doesn't produce above errors, but frequency is still not right
OK, let's postpone this issue.
-24-bit samples is silent for me too
Too? What are other cases that cause silent output?
Also, can you check whether "aplay -M foo.wav" (with 96khz sound file) gives any output?
How about the patch below for 48kHz?
Didn't changed anything...
OK. Just to make clear: you get any (more or less) reasonable sound, not silent, with 96kHz stereo, right? If yes, then there seems a difference between machines or environments. Could you clarify your system again?
Takashi
On Wed, 15 Oct 2008 08:30:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Wed, 15 Oct 2008 00:35:31 +0400, Alexey Bazhin wrote:
On Tue, 14 Oct 2008 08:45:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~/linux-2.6# dmesg -c >/dev/null root@mayonaka:~/linux-2.6# insmod sound/pci/sbxfi/snd-sbxfi.ko root@mayonaka:~/linux-2.6# dmesg [ 2957.493602] SBXFI: INIT HW [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000 root@mayonaka:~/linux-2.6# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left
Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted root@mayonaka:~/linux-2.6# root@mayonaka:~/linux-2.6# dmesg [ 2957.493602] SBXFI: INIT HW [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000 [ 2974.854578] SBXFI: Allocate SRC 0 [ 2974.855368] SBXFI: allocated TLB at 0 for 16 pages [ 2974.855372] SBXFI: filled TLB pages starting at 0xc10000 [ 2974.855393] SBXFI: PLAYBACK PREPARE: rate=96000, period_size=4096, buffer_size=16384 [ 2974.855396] SBXFI: INIT DAC [ 2974.855400] SBXFI: RESET DAC [ 2975.059435] SBXFI: SETUP I2S [ 2975.059445] SBXFI: Pitch [0:fa6] = 0x1000000 [ 2975.059449] SBXFI: Pitch [80:7a6] = 0x1000000 [ 2975.059453] SBXFI: Pitch [1:fb6] = 0x1000000 [ 2975.059456] SBXFI: Pitch [81:7b6] = 0x1000000 [ 2975.059460] SBXFI: Amp [00:0001] = 0x101c [ 2975.059465] SBXFI: Amp [80:07a6] = 0x101c [ 2975.059470] SBXFI: Amp [01:0011] = 0x101c [ 2975.059474] SBXFI: Amp [81:07b6] = 0x101c [ 2975.062594] SBXFI: PLAY TRIGGER START [ 2975.062600] SBXFI: SETUP SRC: ch=0x0, start=0x0, loop=0x10000, cache=0x100, ctrl=0x1045c [ 2975.062612] SBXFI: SETUP SRC: ch=0x1, start=0x0, loop=0x10000, cache=0x100, ctrl=0x5c [ 2975.062625] SBXFI: PLAY UPDATE TIMER [ 2995.148059] SBXFI: PLAY TRIGGER STOP [ 2995.148072] SBXFI: PLAY UPDATE TIMER [ 2995.148079] SBXFI: release TLB at 0 for 16 pages [ 2995.148218] SBXFI: Release SRC 0
Hmm, then there is no serious error here. Did you build the driver with --with-debug=full or --with-debug=detect option?
No, i'm just building kernel from git with your tree.
Also, run with debug=2. Then it prints the timer/IRQ handling, too.
Does this happen with aplay, too?
Also, please track via strace to check which syscall it gets an error.
I'll try it later, sorry...
Two more things: -speakers-test on 48khz doesn't produce above errors, but frequency is still not right
OK, let's postpone this issue.
-24-bit samples is silent for me too
Too? What are other cases that cause silent output?
I saw that "The Source thesourcehim@gmail.com" was trying to play only 24-bit 96khz samples and they were silent.
Also, can you check whether "aplay -M foo.wav" (with 96khz sound file) gives any output?
How about the patch below for 48kHz?
Didn't changed anything...
OK. Just to make clear: you get any (more or less) reasonable sound, not silent, with 96kHz stereo, right?
Yes, on 96khz 16bit stereo only
If yes, then there seems a difference between machines or environments. Could you clarify your system again?
Takashi
At Wed, 15 Oct 2008 12:26:49 +0400, Alexey Bazhin wrote:
On Wed, 15 Oct 2008 08:30:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Wed, 15 Oct 2008 00:35:31 +0400, Alexey Bazhin wrote:
On Tue, 14 Oct 2008 08:45:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Mon, 13 Oct 2008 23:21:47 +0400, Alexey Bazhin wrote:
Now it doesn't hangs :)
Glad to hear. Did you have to use XXX_SYSTEM_TIMER or any workaround needed? Or, did it work as is?
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~/linux-2.6# dmesg -c >/dev/null root@mayonaka:~/linux-2.6# insmod sound/pci/sbxfi/snd-sbxfi.ko root@mayonaka:~/linux-2.6# dmesg [ 2957.493602] SBXFI: INIT HW [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000 root@mayonaka:~/linux-2.6# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left
Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted root@mayonaka:~/linux-2.6# root@mayonaka:~/linux-2.6# dmesg [ 2957.493602] SBXFI: INIT HW [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000 [ 2974.854578] SBXFI: Allocate SRC 0 [ 2974.855368] SBXFI: allocated TLB at 0 for 16 pages [ 2974.855372] SBXFI: filled TLB pages starting at 0xc10000 [ 2974.855393] SBXFI: PLAYBACK PREPARE: rate=96000, period_size=4096, buffer_size=16384 [ 2974.855396] SBXFI: INIT DAC [ 2974.855400] SBXFI: RESET DAC [ 2975.059435] SBXFI: SETUP I2S [ 2975.059445] SBXFI: Pitch [0:fa6] = 0x1000000 [ 2975.059449] SBXFI: Pitch [80:7a6] = 0x1000000 [ 2975.059453] SBXFI: Pitch [1:fb6] = 0x1000000 [ 2975.059456] SBXFI: Pitch [81:7b6] = 0x1000000 [ 2975.059460] SBXFI: Amp [00:0001] = 0x101c [ 2975.059465] SBXFI: Amp [80:07a6] = 0x101c [ 2975.059470] SBXFI: Amp [01:0011] = 0x101c [ 2975.059474] SBXFI: Amp [81:07b6] = 0x101c [ 2975.062594] SBXFI: PLAY TRIGGER START [ 2975.062600] SBXFI: SETUP SRC: ch=0x0, start=0x0, loop=0x10000, cache=0x100, ctrl=0x1045c [ 2975.062612] SBXFI: SETUP SRC: ch=0x1, start=0x0, loop=0x10000, cache=0x100, ctrl=0x5c [ 2975.062625] SBXFI: PLAY UPDATE TIMER [ 2995.148059] SBXFI: PLAY TRIGGER STOP [ 2995.148072] SBXFI: PLAY UPDATE TIMER [ 2995.148079] SBXFI: release TLB at 0 for 16 pages [ 2995.148218] SBXFI: Release SRC 0
Hmm, then there is no serious error here. Did you build the driver with --with-debug=full or --with-debug=detect option?
No, i'm just building kernel from git with your tree.
In that case, make sure you having CONFIG_SND_DEBUG=y at least. CONFIG_SND_DEBUG_VERBOSE=y would give you more, but not mandatory as sbxfi.c doesn't use snd_printdd() much.
Also, run with debug=2. Then it prints the timer/IRQ handling, too.
Does this happen with aplay, too?
Also, please track via strace to check which syscall it gets an error.
I'll try it later, sorry...
I guess it's a timer issue. Try to define XXX_SYSTEM_TIMER and rebuild (and pull the latest GIT before that, since it had a bug).
Two more things: -speakers-test on 48khz doesn't produce above errors, but frequency is still not right
OK, let's postpone this issue.
-24-bit samples is silent for me too
Too? What are other cases that cause silent output?
I saw that "The Source thesourcehim@gmail.com" was trying to play only 24-bit 96khz samples and they were silent.
Ah OK. Yes, this seems explaining the symptom (but not the cause :)
thanks,
Takashi
On Wed, 15 Oct 2008 11:02:46 +0200 Takashi Iwai tiwai@suse.de wrote:
At Wed, 15 Oct 2008 12:26:49 +0400, Alexey Bazhin wrote:
On Wed, 15 Oct 2008 08:30:20 +0200 Takashi Iwai tiwai@suse.de wrote:
At Wed, 15 Oct 2008 00:35:31 +0400, Alexey Bazhin wrote:
On Tue, 14 Oct 2008 08:45:20 +0200 Takashi Iwai tiwai@suse.de wrote:
but speakers-test produces crackling sine and fails on test...
Do you mean it aborts some time later after starting the stream? Could you show the kernel messages? The default debug level should suffice, I guess. If any, try debug=2.
root@mayonaka:~/linux-2.6# speaker-test -c 2 -r 96000 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 96000Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 96000Hz (requested 96000Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left
Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
Hmm, then there is no serious error here. Did you build the driver with --with-debug=full or --with-debug=detect option?
No, i'm just building kernel from git with your tree.
In that case, make sure you having CONFIG_SND_DEBUG=y at least. CONFIG_SND_DEBUG_VERBOSE=y would give you more, but not mandatory as sbxfi.c doesn't use snd_printdd() much.
Also, run with debug=2. Then it prints the timer/IRQ handling, too.
[ 374.731135] SBXFI: IRQ = 0x500 [ 374.731287] SBXFI: IRQ = 0x500 [ 376.192674] SBXFI: IRQ = 0x500 [ 376.192800] SBXFI: IRQ = 0x500 [ 376.192815] SBXFI: IRQ = 0x500 [ 376.198822] SBXFI: Allocate SRC 0 [ 376.199099] SBXFI: IRQ = 0x500 [ 376.199888] SBXFI: allocated TLB at 0 for 16 pages [ 376.199891] SBXFI: filled TLB pages starting at 0xc10000 [ 376.199913] SBXFI: PLAYBACK PREPARE: rate=96000, period_size=4096, buffer_size=16384 [ 376.199916] SBXFI: INIT DAC [ 376.199920] SBXFI: RESET DAC [ 376.400474] SBXFI: IRQ = 0x500 [ 376.403443] SBXFI: SETUP I2S [ 376.403451] SBXFI: Pitch [0:fa6] = 0x1000000 [ 376.403455] SBXFI: Pitch [80:7a6] = 0x1000000 [ 376.403458] SBXFI: Pitch [1:fb6] = 0x1000000 [ 376.403462] SBXFI: Pitch [81:7b6] = 0x1000000 [ 376.403466] SBXFI: Amp [00:0001] = 0x101c [ 376.403471] SBXFI: Amp [80:07a6] = 0x101c [ 376.403476] SBXFI: Amp [01:0011] = 0x101c [ 376.403480] SBXFI: Amp [81:07b6] = 0x101c [ 376.403485] SBXFI: DAOIMAP CLEAR [ 376.405447] SBXFI: PLAY TRIGGER START [ 376.405450] SBXFI: SETUP SRC: ch=0x0, start=0x0, loop=0x10000, cache=0x100, ctrl=0x1045c [ 376.405462] SBXFI: SETUP SRC: ch=0x1, start=0x0, loop=0x10000, cache=0x100, ctrl=0x5c [ 376.405475] SBXFI: PLAY UPDATE TIMER [ 376.405478] SBXFI: POINTER = 0x0 [ 376.405480] SBXFI: SET TIMER TICKS = 4096 [ 376.405924] SBXFI: POINTER = 0x2a [ 376.405927] SBXFI: POINTER = 0x2b [ 376.405931] SBXFI: POINTER = 0x2b [ 376.406007] SBXFI: IRQ = 0x400 [ 376.490861] SBXFI: IRQ = 0x500 [ 376.490866] SBXFI: POINTER = 0x2004 [ 376.490868] SBXFI: SET TIMER TICKS = 16388 [ 376.490873] SBXFI: POINTER = 0x2005 [ 376.491692] SBXFI: POINTER = 0x2054 [ 376.492144] SBXFI: POINTER = 0x207f [ 376.492148] SBXFI: POINTER = 0x207f [ 376.661562] SBXFI: IRQ = 0x500 [ 376.661567] SBXFI: POINTER = 0x2006 [ 376.661569] SBXFI: SET TIMER TICKS = 20486 [ 376.661573] SBXFI: POINTER = 0x2007 [ 376.832263] SBXFI: IRQ = 0x500 [ 376.832268] SBXFI: POINTER = 0x2008 [ 376.832269] SBXFI: SET TIMER TICKS = 24584 [ 376.832274] SBXFI: POINTER = 0x2009 [ 377.002957] SBXFI: IRQ = 0x500 [ 377.002962] SBXFI: POINTER = 0x200a [ 377.002963] SBXFI: SET TIMER TICKS = 28682 [ 377.002968] SBXFI: POINTER = 0x200b [ 377.173658] SBXFI: IRQ = 0x500 [ 377.173663] SBXFI: POINTER = 0x200c [ 377.173664] SBXFI: SET TIMER TICKS = 32780 [ 377.173669] SBXFI: POINTER = 0x200d [ 377.344359] SBXFI: IRQ = 0x500 [ 377.344364] SBXFI: POINTER = 0x200e [ 377.344366] SBXFI: SET TIMER TICKS = 36878 [ 377.344371] SBXFI: POINTER = 0x200f [ 377.515053] SBXFI: IRQ = 0x500 [ 377.515058] SBXFI: POINTER = 0x2010 [ 377.515060] SBXFI: SET TIMER TICKS = 40976 [ 377.515065] SBXFI: POINTER = 0x2011 [ 377.685754] SBXFI: IRQ = 0x500 [ 377.685759] SBXFI: POINTER = 0x2012 [ 377.685761] SBXFI: SET TIMER TICKS = 45074 [ 377.685765] SBXFI: POINTER = 0x2013 [ 377.856455] SBXFI: IRQ = 0x500 [ 377.856461] SBXFI: POINTER = 0x2015 [ 377.856463] SBXFI: SET TIMER TICKS = 49173 [ 377.856468] SBXFI: POINTER = 0x2015 [ 378.027150] SBXFI: IRQ = 0x500 [ 378.027155] SBXFI: POINTER = 0x2016 [ 378.027156] SBXFI: SET TIMER TICKS = 53270 [ 378.027161] SBXFI: POINTER = 0x2017 [ 378.197850] SBXFI: IRQ = 0x500 [ 378.197855] SBXFI: POINTER = 0x2018 [ 378.197857] SBXFI: SET TIMER TICKS = 57368 [ 378.197862] SBXFI: POINTER = 0x2019 [ 378.368551] SBXFI: IRQ = 0x500 [ 378.368556] SBXFI: POINTER = 0x201a [ 378.368558] SBXFI: SET TIMER TICKS = 61466 [ 378.368563] SBXFI: POINTER = 0x201b [ 378.539246] SBXFI: IRQ = 0x500 [ 378.539251] SBXFI: POINTER = 0x201c [ 378.539252] SBXFI: SET TIMER TICKS = 65564 [ 378.539257] SBXFI: POINTER = 0x201d [ 378.709946] SBXFI: IRQ = 0x500 [ 378.709951] SBXFI: POINTER = 0x201e [ 378.709953] SBXFI: SET TIMER TICKS = 69662 [ 378.709958] SBXFI: POINTER = 0x201f [ 378.880647] SBXFI: IRQ = 0x500 [ 378.880652] SBXFI: POINTER = 0x2020 [ 378.880654] SBXFI: SET TIMER TICKS = 73760 [ 378.880659] SBXFI: POINTER = 0x2021 [ 379.051342] SBXFI: IRQ = 0x500 [ 379.051347] SBXFI: POINTER = 0x2022 [ 379.051349] SBXFI: SET TIMER TICKS = 77858 [ 379.051354] SBXFI: POINTER = 0x2023 [ 379.222042] SBXFI: IRQ = 0x500 [ 379.222047] SBXFI: POINTER = 0x2024 [ 379.222049] SBXFI: SET TIMER TICKS = 81956 [ 379.222054] SBXFI: POINTER = 0x2025 [ 379.392744] SBXFI: IRQ = 0x500 [ 379.392749] SBXFI: POINTER = 0x2026 [ 379.392750] SBXFI: SET TIMER TICKS = 86054 [ 379.392755] SBXFI: POINTER = 0x2027 [ 379.563438] SBXFI: IRQ = 0x500 [ 379.563443] SBXFI: POINTER = 0x2028 [ 379.563445] SBXFI: SET TIMER TICKS = 90152 [ 379.563450] SBXFI: POINTER = 0x2029 [ 379.734139] SBXFI: IRQ = 0x500 [ 379.734143] SBXFI: POINTER = 0x202a [ 379.734145] SBXFI: SET TIMER TICKS = 94250 [ 379.734150] SBXFI: POINTER = 0x202b [ 379.904840] SBXFI: IRQ = 0x500 [ 379.904845] SBXFI: POINTER = 0x202c [ 379.904846] SBXFI: SET TIMER TICKS = 98348 [ 379.904851] SBXFI: POINTER = 0x202d [ 380.075534] SBXFI: IRQ = 0x500 [ 380.075539] SBXFI: POINTER = 0x202e [ 380.075541] SBXFI: SET TIMER TICKS = 102446 [ 380.075546] SBXFI: POINTER = 0x202f [ 380.246235] SBXFI: IRQ = 0x500 [ 380.246240] SBXFI: POINTER = 0x2030 [ 380.246242] SBXFI: SET TIMER TICKS = 106544 [ 380.246247] SBXFI: POINTER = 0x2031 [ 380.416936] SBXFI: IRQ = 0x500 [ 380.416941] SBXFI: POINTER = 0x2032 [ 380.416943] SBXFI: SET TIMER TICKS = 110642 [ 380.416947] SBXFI: POINTER = 0x2033 [ 380.587630] SBXFI: IRQ = 0x500 [ 380.587635] SBXFI: POINTER = 0x2034 [ 380.587637] SBXFI: SET TIMER TICKS = 114740 [ 380.587642] SBXFI: POINTER = 0x2035 [ 380.758332] SBXFI: IRQ = 0x500 [ 380.758336] SBXFI: POINTER = 0x2036 [ 380.758338] SBXFI: SET TIMER TICKS = 118838 [ 380.758343] SBXFI: POINTER = 0x2037 [ 380.929032] SBXFI: IRQ = 0x500 [ 380.929037] SBXFI: POINTER = 0x2038 [ 380.929039] SBXFI: SET TIMER TICKS = 122936 [ 380.929044] SBXFI: POINTER = 0x2039 [ 381.099727] SBXFI: IRQ = 0x500 [ 381.099732] SBXFI: POINTER = 0x203a [ 381.099733] SBXFI: SET TIMER TICKS = 127034 [ 381.099738] SBXFI: POINTER = 0x203b [ 381.270428] SBXFI: IRQ = 0x500 [ 381.270433] SBXFI: POINTER = 0x203c [ 381.270434] SBXFI: SET TIMER TICKS = 131132 [ 381.270439] SBXFI: POINTER = 0x203d [ 381.441128] SBXFI: IRQ = 0x500 [ 381.441133] SBXFI: POINTER = 0x203e [ 381.441135] SBXFI: SET TIMER TICKS = 135230 [ 381.441140] SBXFI: POINTER = 0x203f [ 381.611823] SBXFI: IRQ = 0x500 [ 381.611828] SBXFI: POINTER = 0x2040 [ 381.611829] SBXFI: SET TIMER TICKS = 139328 [ 381.611834] SBXFI: POINTER = 0x2041 [ 381.782524] SBXFI: IRQ = 0x500 [ 381.782529] SBXFI: POINTER = 0x2042 [ 381.782531] SBXFI: SET TIMER TICKS = 143426 [ 381.782535] SBXFI: POINTER = 0x2043 [ 381.840424] SBXFI: IRQ = 0x400 [ 381.953224] SBXFI: IRQ = 0x500 [ 381.953229] SBXFI: POINTER = 0x2044 [ 381.953231] SBXFI: SET TIMER TICKS = 147524 [ 381.953236] SBXFI: POINTER = 0x2045 [ 382.123919] SBXFI: IRQ = 0x500 [ 382.123924] SBXFI: POINTER = 0x2046 [ 382.123926] SBXFI: SET TIMER TICKS = 151622 [ 382.123931] SBXFI: POINTER = 0x2047 [ 382.294620] SBXFI: IRQ = 0x500 [ 382.294625] SBXFI: POINTER = 0x2048 [ 382.294627] SBXFI: SET TIMER TICKS = 155720 [ 382.294632] SBXFI: POINTER = 0x2049 [ 382.465320] SBXFI: IRQ = 0x500 [ 382.465325] SBXFI: POINTER = 0x204a [ 382.465327] SBXFI: SET TIMER TICKS = 159818 [ 382.465332] SBXFI: POINTER = 0x204b [ 382.636022] SBXFI: IRQ = 0x500 [ 382.636027] SBXFI: POINTER = 0x204c [ 382.636029] SBXFI: SET TIMER TICKS = 163916 [ 382.636033] SBXFI: POINTER = 0x204d [ 382.806716] SBXFI: IRQ = 0x500 [ 382.806721] SBXFI: POINTER = 0x204e [ 382.806723] SBXFI: SET TIMER TICKS = 168014 [ 382.806728] SBXFI: POINTER = 0x204f [ 382.977417] SBXFI: IRQ = 0x500 [ 382.977422] SBXFI: POINTER = 0x2050 [ 382.977424] SBXFI: SET TIMER TICKS = 172112 [ 382.977428] SBXFI: POINTER = 0x2051 [ 383.148118] SBXFI: IRQ = 0x500 [ 383.148123] SBXFI: POINTER = 0x2052 [ 383.148125] SBXFI: SET TIMER TICKS = 176210 [ 383.148130] SBXFI: POINTER = 0x2053 [ 383.318812] SBXFI: IRQ = 0x500 [ 383.318817] SBXFI: POINTER = 0x2054 [ 383.318819] SBXFI: SET TIMER TICKS = 180308 [ 383.318824] SBXFI: POINTER = 0x2055 [ 383.489513] SBXFI: IRQ = 0x500 [ 383.489518] SBXFI: POINTER = 0x2056 [ 383.489519] SBXFI: SET TIMER TICKS = 184406 [ 383.489524] SBXFI: POINTER = 0x2057 [ 383.660214] SBXFI: IRQ = 0x500 [ 383.660219] SBXFI: POINTER = 0x2058 [ 383.660221] SBXFI: SET TIMER TICKS = 188504 [ 383.660226] SBXFI: POINTER = 0x2059 [ 383.830908] SBXFI: IRQ = 0x500 [ 383.830913] SBXFI: POINTER = 0x205a [ 383.830915] SBXFI: SET TIMER TICKS = 192602 [ 383.830920] SBXFI: POINTER = 0x205b [ 384.001610] SBXFI: IRQ = 0x500 [ 384.001615] SBXFI: POINTER = 0x205c [ 384.001617] SBXFI: SET TIMER TICKS = 196700 [ 384.001621] SBXFI: POINTER = 0x205d [ 384.172310] SBXFI: IRQ = 0x500 [ 384.172315] SBXFI: POINTER = 0x205e [ 384.172317] SBXFI: SET TIMER TICKS = 200798 [ 384.172322] SBXFI: POINTER = 0x205f [ 384.343005] SBXFI: IRQ = 0x500 [ 384.343010] SBXFI: POINTER = 0x2060 [ 384.343012] SBXFI: SET TIMER TICKS = 204896 [ 384.343016] SBXFI: POINTER = 0x2061 [ 384.513706] SBXFI: IRQ = 0x500 [ 384.513711] SBXFI: POINTER = 0x2062 [ 384.513713] SBXFI: SET TIMER TICKS = 208994 [ 384.513718] SBXFI: POINTER = 0x2063 [ 384.684406] SBXFI: IRQ = 0x500 [ 384.684412] SBXFI: POINTER = 0x2064 [ 384.684414] SBXFI: SET TIMER TICKS = 213092 [ 384.684419] SBXFI: POINTER = 0x2065 [ 384.855101] SBXFI: IRQ = 0x500 [ 384.855106] SBXFI: POINTER = 0x2066 [ 384.855108] SBXFI: SET TIMER TICKS = 217190 [ 384.855113] SBXFI: POINTER = 0x2067 [ 385.025802] SBXFI: IRQ = 0x500 [ 385.025807] SBXFI: POINTER = 0x2068 [ 385.025809] SBXFI: SET TIMER TICKS = 221288 [ 385.025814] SBXFI: POINTER = 0x2069 [ 385.196502] SBXFI: IRQ = 0x500 [ 385.196508] SBXFI: POINTER = 0x206a [ 385.196509] SBXFI: SET TIMER TICKS = 225386 [ 385.196514] SBXFI: POINTER = 0x206b [ 385.367197] SBXFI: IRQ = 0x500 [ 385.367202] SBXFI: POINTER = 0x206c [ 385.367204] SBXFI: SET TIMER TICKS = 229484 [ 385.367209] SBXFI: POINTER = 0x206d [ 385.537898] SBXFI: IRQ = 0x500 [ 385.537903] SBXFI: POINTER = 0x206e [ 385.537905] SBXFI: SET TIMER TICKS = 233582 [ 385.537910] SBXFI: POINTER = 0x206f [ 385.708599] SBXFI: IRQ = 0x500 [ 385.708604] SBXFI: POINTER = 0x2070 [ 385.708605] SBXFI: SET TIMER TICKS = 237680 [ 385.708610] SBXFI: POINTER = 0x2071 [ 385.879293] SBXFI: IRQ = 0x500 [ 385.879298] SBXFI: POINTER = 0x2072 [ 385.879300] SBXFI: SET TIMER TICKS = 241778 [ 385.879305] SBXFI: POINTER = 0x2073 [ 386.049994] SBXFI: IRQ = 0x500 [ 386.049999] SBXFI: POINTER = 0x2074 [ 386.050001] SBXFI: SET TIMER TICKS = 245876 [ 386.050006] SBXFI: POINTER = 0x2075 [ 386.220695] SBXFI: IRQ = 0x500 [ 386.220700] SBXFI: POINTER = 0x2076 [ 386.220702] SBXFI: SET TIMER TICKS = 249974 [ 386.220706] SBXFI: POINTER = 0x2077 [ 386.391389] SBXFI: IRQ = 0x500 [ 386.391394] SBXFI: POINTER = 0x2078 [ 386.391396] SBXFI: SET TIMER TICKS = 254072 [ 386.391401] SBXFI: POINTER = 0x2079 [ 386.492007] ALSA sound/core/pcm_lib.c:1548: playback write error (DMA or IRQ trouble?) [ 386.492021] SBXFI: POINTER = 0x633 [ 386.562090] SBXFI: IRQ = 0x500 [ 386.562095] SBXFI: POINTER = 0x207a [ 386.562097] SBXFI: SET TIMER TICKS = 258170 [ 386.562102] SBXFI: POINTER = 0x207b [ 386.732792] SBXFI: IRQ = 0x500 [ 386.732797] SBXFI: POINTER = 0x207c [ 386.732798] SBXFI: SET TIMER TICKS = 262268 [ 386.732803] SBXFI: POINTER = 0x207d [ 386.903485] SBXFI: IRQ = 0x500 [ 386.903491] SBXFI: POINTER = 0x207e [ 386.903492] SBXFI: SET TIMER TICKS = 266366 [ 386.903497] SBXFI: POINTER = 0x207f [ 387.074187] SBXFI: IRQ = 0x500 [ 387.074192] SBXFI: POINTER = 0x2080 [ 387.074194] SBXFI: SET TIMER TICKS = 270464 [ 387.074199] SBXFI: POINTER = 0x2081 [ 387.244888] SBXFI: IRQ = 0x500 [ 387.244893] SBXFI: POINTER = 0x2082 [ 387.244895] SBXFI: SET TIMER TICKS = 274562 [ 387.244899] SBXFI: POINTER = 0x2083 [ 387.415582] SBXFI: IRQ = 0x500 [ 387.415587] SBXFI: POINTER = 0x2084 [ 387.415589] SBXFI: SET TIMER TICKS = 278660 [ 387.415593] SBXFI: POINTER = 0x2085 [ 387.586283] SBXFI: IRQ = 0x500 [ 387.586288] SBXFI: POINTER = 0x2086 [ 387.586290] SBXFI: SET TIMER TICKS = 282758 [ 387.586294] SBXFI: POINTER = 0x2087 [ 387.756984] SBXFI: IRQ = 0x500 [ 387.756989] SBXFI: POINTER = 0x2088 [ 387.756991] SBXFI: SET TIMER TICKS = 286856 [ 387.756996] SBXFI: POINTER = 0x2089 [ 387.927678] SBXFI: IRQ = 0x500 [ 387.927683] SBXFI: POINTER = 0x208a [ 387.927685] SBXFI: SET TIMER TICKS = 290954 [ 387.927689] SBXFI: POINTER = 0x208b [ 388.098379] SBXFI: IRQ = 0x500 [ 388.098384] SBXFI: POINTER = 0x208c [ 388.098386] SBXFI: SET TIMER TICKS = 295052 [ 388.098390] SBXFI: POINTER = 0x208d [ 388.269080] SBXFI: IRQ = 0x500 [ 388.269085] SBXFI: POINTER = 0x208e [ 388.269087] SBXFI: SET TIMER TICKS = 299150 [ 388.269092] SBXFI: POINTER = 0x208f [ 388.439774] SBXFI: IRQ = 0x500 [ 388.439779] SBXFI: POINTER = 0x2090 [ 388.439781] SBXFI: SET TIMER TICKS = 303248 [ 388.439786] SBXFI: POINTER = 0x2091 [ 388.610475] SBXFI: IRQ = 0x500 [ 388.610480] SBXFI: POINTER = 0x2092 [ 388.610482] SBXFI: SET TIMER TICKS = 307346 [ 388.610487] SBXFI: POINTER = 0x2093 [ 388.781176] SBXFI: IRQ = 0x500 [ 388.781181] SBXFI: POINTER = 0x2094 [ 388.781183] SBXFI: SET TIMER TICKS = 311444 [ 388.781188] SBXFI: POINTER = 0x2095 [ 388.951870] SBXFI: IRQ = 0x500 [ 388.951875] SBXFI: POINTER = 0x2096 [ 388.951877] SBXFI: SET TIMER TICKS = 315542 [ 388.951882] SBXFI: POINTER = 0x2097 [ 389.122571] SBXFI: IRQ = 0x500 [ 389.122576] SBXFI: POINTER = 0x2098 [ 389.122578] SBXFI: SET TIMER TICKS = 319640 [ 389.122583] SBXFI: POINTER = 0x2099 [ 389.293272] SBXFI: IRQ = 0x500 [ 389.293277] SBXFI: POINTER = 0x209a [ 389.293279] SBXFI: SET TIMER TICKS = 323738 [ 389.293284] SBXFI: POINTER = 0x209b [ 389.463966] SBXFI: IRQ = 0x500 [ 389.463971] SBXFI: POINTER = 0x209c [ 389.463973] SBXFI: SET TIMER TICKS = 327836 [ 389.463978] SBXFI: POINTER = 0x209d [ 389.634667] SBXFI: IRQ = 0x500 [ 389.634673] SBXFI: POINTER = 0x209e [ 389.634674] SBXFI: SET TIMER TICKS = 331934 [ 389.634679] SBXFI: POINTER = 0x209f [ 389.805369] SBXFI: IRQ = 0x500 [ 389.805374] SBXFI: POINTER = 0x20a0 [ 389.805376] SBXFI: SET TIMER TICKS = 336032 [ 389.805381] SBXFI: POINTER = 0x20a1 [ 389.976070] SBXFI: IRQ = 0x500 [ 389.976075] SBXFI: POINTER = 0x20a2 [ 389.976077] SBXFI: SET TIMER TICKS = 340130 [ 389.976081] SBXFI: POINTER = 0x20a3 [ 390.146764] SBXFI: IRQ = 0x500 [ 390.146769] SBXFI: POINTER = 0x20a4 [ 390.146770] SBXFI: SET TIMER TICKS = 344228 [ 390.146775] SBXFI: POINTER = 0x20a5 [ 390.317465] SBXFI: IRQ = 0x500 [ 390.317470] SBXFI: POINTER = 0x20a6 [ 390.317472] SBXFI: SET TIMER TICKS = 348326 [ 390.317477] SBXFI: POINTER = 0x20a7 [ 390.488166] SBXFI: IRQ = 0x500 [ 390.488171] SBXFI: POINTER = 0x20a8 [ 390.488173] SBXFI: SET TIMER TICKS = 352424 [ 390.488177] SBXFI: POINTER = 0x20a9 [ 390.658860] SBXFI: IRQ = 0x500 [ 390.658865] SBXFI: POINTER = 0x20aa [ 390.658866] SBXFI: SET TIMER TICKS = 356522 [ 390.658871] SBXFI: POINTER = 0x20ab [ 390.829561] SBXFI: IRQ = 0x500 [ 390.829566] SBXFI: POINTER = 0x20ac [ 390.829568] SBXFI: SET TIMER TICKS = 360620 [ 390.829573] SBXFI: POINTER = 0x20ad [ 391.000262] SBXFI: IRQ = 0x500 [ 391.000267] SBXFI: POINTER = 0x20ae [ 391.000269] SBXFI: SET TIMER TICKS = 364718 [ 391.000274] SBXFI: POINTER = 0x20af [ 391.170956] SBXFI: IRQ = 0x500 [ 391.170961] SBXFI: POINTER = 0x20b0 [ 391.170963] SBXFI: SET TIMER TICKS = 368816 [ 391.170967] SBXFI: POINTER = 0x20b1 [ 391.341657] SBXFI: IRQ = 0x500 [ 391.341662] SBXFI: POINTER = 0x20b2 [ 391.341664] SBXFI: SET TIMER TICKS = 372914 [ 391.341669] SBXFI: POINTER = 0x20b3 [ 391.512358] SBXFI: IRQ = 0x500 [ 391.512363] SBXFI: POINTER = 0x20b4 [ 391.512365] SBXFI: SET TIMER TICKS = 377012 [ 391.512370] SBXFI: POINTER = 0x20b5 [ 391.683052] SBXFI: IRQ = 0x500 [ 391.683057] SBXFI: POINTER = 0x20b6 [ 391.683059] SBXFI: SET TIMER TICKS = 381110 [ 391.683064] SBXFI: POINTER = 0x20b7 [ 391.853753] SBXFI: IRQ = 0x500 [ 391.853758] SBXFI: POINTER = 0x20b8 [ 391.853760] SBXFI: SET TIMER TICKS = 385208 [ 391.853765] SBXFI: POINTER = 0x20b9 [ 392.024454] SBXFI: IRQ = 0x500 [ 392.024460] SBXFI: POINTER = 0x20ba [ 392.024461] SBXFI: SET TIMER TICKS = 389306 [ 392.024466] SBXFI: POINTER = 0x20bb [ 392.195148] SBXFI: IRQ = 0x500 [ 392.195153] SBXFI: POINTER = 0x20bc [ 392.195155] SBXFI: SET TIMER TICKS = 393404 [ 392.195160] SBXFI: POINTER = 0x20bd [ 392.365849] SBXFI: IRQ = 0x500 [ 392.365854] SBXFI: POINTER = 0x20be [ 392.365856] SBXFI: SET TIMER TICKS = 397502 [ 392.365861] SBXFI: POINTER = 0x20bf [ 392.536550] SBXFI: IRQ = 0x500 [ 392.536555] SBXFI: POINTER = 0x20c0 [ 392.536557] SBXFI: SET TIMER TICKS = 401600 [ 392.536562] SBXFI: POINTER = 0x20c1 [ 392.707245] SBXFI: IRQ = 0x500 [ 392.707250] SBXFI: POINTER = 0x20c2 [ 392.707252] SBXFI: SET TIMER TICKS = 405698 [ 392.707256] SBXFI: POINTER = 0x20c3 [ 392.877945] SBXFI: IRQ = 0x500 [ 392.877950] SBXFI: POINTER = 0x20c4 [ 392.877952] SBXFI: SET TIMER TICKS = 409796 [ 392.877957] SBXFI: POINTER = 0x20c5 [ 393.048647] SBXFI: IRQ = 0x500 [ 393.048652] SBXFI: POINTER = 0x20c6 [ 393.048654] SBXFI: SET TIMER TICKS = 413894 [ 393.048659] SBXFI: POINTER = 0x20c7 [ 393.219341] SBXFI: IRQ = 0x500 [ 393.219346] SBXFI: POINTER = 0x20c8 [ 393.219348] SBXFI: SET TIMER TICKS = 417992 [ 393.219353] SBXFI: POINTER = 0x20c9 [ 393.390042] SBXFI: IRQ = 0x500 [ 393.390047] SBXFI: POINTER = 0x20ca [ 393.390049] SBXFI: SET TIMER TICKS = 422090 [ 393.390053] SBXFI: POINTER = 0x20cb [ 393.560743] SBXFI: IRQ = 0x500 [ 393.560748] SBXFI: POINTER = 0x20cc [ 393.560750] SBXFI: SET TIMER TICKS = 426188 [ 393.560755] SBXFI: POINTER = 0x20cd [ 393.731437] SBXFI: IRQ = 0x500 [ 393.731443] SBXFI: POINTER = 0x20ce [ 393.731445] SBXFI: SET TIMER TICKS = 430286 [ 393.731450] SBXFI: POINTER = 0x20cf [ 393.902138] SBXFI: IRQ = 0x500 [ 393.902143] SBXFI: POINTER = 0x20d0 [ 393.902145] SBXFI: SET TIMER TICKS = 434384 [ 393.902149] SBXFI: POINTER = 0x20d1 [ 394.072839] SBXFI: IRQ = 0x500 [ 394.072844] SBXFI: POINTER = 0x20d2 [ 394.072846] SBXFI: SET TIMER TICKS = 438482 [ 394.072851] SBXFI: POINTER = 0x20d3 [ 394.243533] SBXFI: IRQ = 0x500 [ 394.243539] SBXFI: POINTER = 0x20d4 [ 394.243541] SBXFI: SET TIMER TICKS = 442580 [ 394.243545] SBXFI: POINTER = 0x20d5 [ 394.414234] SBXFI: IRQ = 0x500 [ 394.414239] SBXFI: POINTER = 0x20d6 [ 394.414241] SBXFI: SET TIMER TICKS = 446678 [ 394.414246] SBXFI: POINTER = 0x20d7 [ 394.584935] SBXFI: IRQ = 0x500 [ 394.584940] SBXFI: POINTER = 0x20d8 [ 394.584942] SBXFI: SET TIMER TICKS = 450776 [ 394.584947] SBXFI: POINTER = 0x20d9 [ 394.755630] SBXFI: IRQ = 0x500 [ 394.755635] SBXFI: POINTER = 0x20da [ 394.755636] SBXFI: SET TIMER TICKS = 454874 [ 394.755641] SBXFI: POINTER = 0x20db [ 394.926330] SBXFI: IRQ = 0x500 [ 394.926335] SBXFI: POINTER = 0x20dc [ 394.926337] SBXFI: SET TIMER TICKS = 458972 [ 394.926342] SBXFI: POINTER = 0x20dd [ 395.097031] SBXFI: IRQ = 0x500 [ 395.097036] SBXFI: POINTER = 0x20de [ 395.097038] SBXFI: SET TIMER TICKS = 463070 [ 395.097043] SBXFI: POINTER = 0x20df [ 395.267726] SBXFI: IRQ = 0x500 [ 395.267731] SBXFI: POINTER = 0x20e0 [ 395.267733] SBXFI: SET TIMER TICKS = 467168 [ 395.267738] SBXFI: POINTER = 0x20e1 [ 395.438426] SBXFI: IRQ = 0x500 [ 395.438431] SBXFI: POINTER = 0x20e2 [ 395.438433] SBXFI: SET TIMER TICKS = 471266 [ 395.438438] SBXFI: POINTER = 0x20e3 [ 395.609127] SBXFI: IRQ = 0x500 [ 395.609132] SBXFI: POINTER = 0x20e4 [ 395.609134] SBXFI: SET TIMER TICKS = 475364 [ 395.609139] SBXFI: POINTER = 0x20e5 [ 395.779822] SBXFI: IRQ = 0x500 [ 395.779827] SBXFI: POINTER = 0x20e6 [ 395.779829] SBXFI: SET TIMER TICKS = 479462 [ 395.779833] SBXFI: POINTER = 0x20e7 [ 395.950523] SBXFI: IRQ = 0x500 [ 395.950528] SBXFI: POINTER = 0x20e8 [ 395.950530] SBXFI: SET TIMER TICKS = 483560 [ 395.950535] SBXFI: POINTER = 0x20e9 [ 396.121224] SBXFI: IRQ = 0x500 [ 396.121229] SBXFI: POINTER = 0x20ea [ 396.121230] SBXFI: SET TIMER TICKS = 487658 [ 396.121235] SBXFI: POINTER = 0x20eb [ 396.291918] SBXFI: IRQ = 0x500 [ 396.291923] SBXFI: POINTER = 0x20ec [ 396.291925] SBXFI: SET TIMER TICKS = 491756 [ 396.291930] SBXFI: POINTER = 0x20ed [ 396.462619] SBXFI: IRQ = 0x500 [ 396.462624] SBXFI: POINTER = 0x20ee [ 396.462626] SBXFI: SET TIMER TICKS = 495854 [ 396.462631] SBXFI: POINTER = 0x20ef [ 396.492007] ALSA sound/core/pcm_lib.c:1548: playback write error (DMA or IRQ trouble?) [ 396.492071] SBXFI: PLAY TRIGGER STOP [ 396.492079] SBXFI: PLAY UPDATE TIMER [ 396.492081] SBXFI: STOP EMU TIMER [ 396.492088] SBXFI: release TLB at 0 for 16 pages [ 396.492106] SBXFI: DAOIMAP CLEAR [ 396.492226] SBXFI: Release SRC 0 [ 396.492636] SBXFI: IRQ = 0x400 [ 396.492737] SBXFI: IRQ = 0x400 [ 399.158240] SBXFI: IRQ = 0x500 [ 399.158412] SBXFI: IRQ = 0x500
Does this happen with aplay, too?
Hm... with aplay I'm getting the same thing as "The Source thesourcehim@gmail.com" - volume is extremely low and sound is very glitchy. And no error as in speakers-test case. Dmesg included in attachment.
So I'm getting almost normal sound only with mplayer -ao alsa -af resample=96000 Dmesg in this case also included in attachment.
Also, please track via strace to check which syscall it gets an error.
write(1, " 0 - Front Left\n", 16 0 - Front Left ) = 16 ioctl(4, 0x400c4150, 0xbfd687e0) = 0 ioctl(4, 0x400c4150, 0xbfd687e0) = 0 ioctl(4, 0x400c4150, 0xbfd687e0) = 0 ioctl(4, 0x400c4150, 0xbfd687e0) = 0 ioctl(4, 0x400c4150, 0xbfd687e0) = 0 ioctl(4, 0x400c4150, 0xbfd687e0) = 0 ioctl(4, 0x400c4150, 0xbfd687e0) = 0 ioctl(4, 0x400c4150, 0xbfd687e0) = -1 EIO (Input/output error) write(1, "Write error: -5,Input/output err"..., 35Write error: -5,Input/output error ) = 35
I guess it's a timer issue. Try to define XXX_SYSTEM_TIMER and rebuild (and pull the latest GIT before that, since it had a bug).
Yep, no error, but sine is still glitchy. Dmesg also included.
At Wed, 15 Oct 2008 22:54:18 +0400, Alexey Bazhin wrote:
[ 376.405480] SBXFI: SET TIMER TICKS = 4096
...
[ 376.490861] SBXFI: IRQ = 0x500
So this is twice as the expected period (4096/96000 = 42ms). How about the patch below?
diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c index d6b5b34..dbd23ae 100644 --- a/sound/pci/sbxfi/sbxfi.c +++ b/sound/pci/sbxfi/sbxfi.c @@ -100,7 +100,7 @@ enum { #define SBXFI_PAGE_SIZE 4096 #define SBXFI_MAX_BUFFER (SBXFI_TLB_PAGES * SBXFI_PAGE_SIZE) #define SBXFI_MAX_SRCS 128 /* 256 / 2 */ -#define SBXFI_TIMER_FREQ 96000 +#define SBXFI_TIMER_FREQ 48000 /* FIXME: which mask? */ /* #define SBXFI_DMA_MASK DMA_32BIT_MASK */ #define SBXFI_DMA_MASK DMA_28BIT_MASK
Takashi
At Wed, 15 Oct 2008 22:54:18 +0400, Alexey Bazhin wrote:
Does this happen with aplay, too?
Hm... with aplay I'm getting the same thing as "The Source thesourcehim@gmail.com" - volume is extremely low and sound is very glitchy. And no error as in speakers-test case. Dmesg included in attachment.
Which parameters does the WAV file have? Is it 16bit, 96kHz, 2 channel?
I guess it's a timer issue. Try to define XXX_SYSTEM_TIMER and rebuild (and pull the latest GIT before that, since it had a bug).
Yep, no error, but sine is still glitchy. Dmesg also included.
Well, I found a fatally silly mistake in the timer update calculation. Fixed on git tree and snapshot tarball now.
Give it a try.
thanks,
Takashi
On Thu, 16 Oct 2008 12:46:42 +0200 Takashi Iwai tiwai@suse.de wrote:
At Wed, 15 Oct 2008 22:54:18 +0400, Alexey Bazhin wrote:
Does this happen with aplay, too?
Hm... with aplay I'm getting the same thing as "The Source thesourcehim@gmail.com" - volume is extremely low and sound is very glitchy. And no error as in speakers-test case. Dmesg included in attachment.
Which parameters does the WAV file have? Is it 16bit, 96kHz, 2 channel?
Yes.
At Thu, 16 Oct 2008 15:09:39 +0400, Alexey Bazhin wrote:
On Thu, 16 Oct 2008 12:46:42 +0200 Takashi Iwai tiwai@suse.de wrote:
At Wed, 15 Oct 2008 22:54:18 +0400, Alexey Bazhin wrote:
Does this happen with aplay, too?
Hm... with aplay I'm getting the same thing as "The Source thesourcehim@gmail.com" - volume is extremely low and sound is very glitchy. And no error as in speakers-test case. Dmesg included in attachment.
Which parameters does the WAV file have? Is it 16bit, 96kHz, 2 channel?
Yes.
Then this should be handled natively by the driver. In the case of other formats or other channels, it involves with the conversion in alsa-lib, and this requires the MMAP mode.
Anyway, further tests with the latest tree are helpful.
thanks,
Takashi
participants (4)
-
Alexey Bazhin
-
Takashi Iwai
-
The Source
-
Vedran Miletić