Since kernel macros were removed pcm.c can not not be compiled.
Error is:
make default
make -C /lib/modules/2.6.22-12-generic/build SUBDIRS=/home/user1/workspace/line6usb-0.7.2 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.22-12-generic'
CC [M] /home/user1/workspace/line6usb-0.7.2/pcm.o
/home/user1/workspace/line6usb-0.7.2/pcm.c: In function ‘snd_pod_trigger’:
/home/user1/workspace/line6usb-0.7.2/pcm.c:40: warning: implicit declaration of function ‘snd_pcm_group_for_each’
/home/user1/workspace/line6usb-0.7.2/pcm.c:40: error: expected ‘;’ before ‘{’ token
/home/user1/workspace/line6usb-0.7.2/pcm.c:33: warning: unused variable ‘err’
/home/user1/workspace/line6usb-0.7.2/pcm.c:32: warning: unused variable ‘s’
make[2]: *** [/home/user1/workspace/line6usb-0.7.2/pcm.o] Error 1
make[1]: Leaving directory `/usr/src/linux-headers-2.6.22-12-generic'
make[1]: *** [_module_/home/user1/workspace/line6usb-0.7.2] Error 2
make: *** [default] Error 2
The correction is easy but probably can save some of your time. Commented out are obsoleted macro calls and right after the replacing ones.
/* trigger callback */
int snd_pod_trigger(struct snd_pcm_substream *substream, int cmd)
{
struct snd_pod_pcm *chip = snd_pcm_substream_chip(substream);
struct list_head *pos;
struct snd_pcm_substream *s;
int err;
unsigned long flags;
printk(KERN_INFO "*** Entering snd_pod_trigger\n");
spin_lock_irqsave(&chip->lock_trigger, flags);
clear_bit(BIT_PREPARED, &chip->flags);
//snd_pcm_group_for_each(pos, substream) {
list_for_each(pos,&substream->group->substreams) {
//s = snd_pcm_group_substream_entry(pos);
s = list_entry(pos,struct snd_pcm_substream,link_list);
switch(s->stream) {
case SNDRV_PCM_STREAM_PLAYBACK:
P.S. : Anyway thanks for the driver.
Logged In: NO
Hello,
the fix doesn't work for me here on 2.6.22 or above;
applications are crashing like this with the plughw:x.x option:
usbcore: registered new interface driver line6usb
usb 2-1: new full speed USB device using ohci_hcd and address 2
usb 2-1: configuration #1 chosen from 1 choice
line6usb 2-1:1.0: Line6 PODxt Pro found
line6usb 2-1:1.0: Line6 PODxt Pro now attached
Line6 device 0: PODxt Pro:0
Line6 device 1: (not used)
Line6 device 2: (not used)
Line6 device 3: (not used)
Line6 device 4: (not used)
Line6 device 5: (not used)
Line6 device 6: (not used)
Line6 device 7: (not used)
*** Entering snd_pod_trigger
BUG: scheduling while atomic: amarokapp/0x00000002/8812
Call Trace:
[<ffffffff80736e06>] schedule+0x7f/0x2b7
[<ffffffff8073862c>] __down_write_nested+0xc6/0xdd
[<ffffffff8028c55b>] do_coredump+0x6c/0x6d1
[<ffffffff805ceeae>] snd_pcm_delay+0x138/0x14f
[<ffffffff805d2bba>] snd_pcm_common_ioctl1+0x751/0xde1
[<ffffffff80237252>] __dequeue_signal+0xfe/0x158
[<ffffffff802366e5>] recalc_sigpending+0xe/0x24
[<ffffffff80239162>] get_signal_to_deliver+0x449/0x48b
[<ffffffff8020aacc>] do_notify_resume+0xa7/0x719
[<ffffffff8021d392>] do_page_fault+0x722/0x734
[<ffffffff805d3eca>] snd_pcm_playback_ioctl+0x2e/0x38
[<ffffffff802930d9>] do_ioctl+0x21/0x6b
[<ffffffff8020bbbc>] retint_signal+0x3d/0x81
BUG: scheduling while atomic: amarokapp/0x00000002/8812
Call Trace:
[<ffffffff80736e06>] schedule+0x7f/0x2b7
[<ffffffff80229e14>] enqueue_task_fair+0x21/0x33
[<ffffffff807375eb>] schedule_timeout+0x1e/0xbc
[<ffffffff807373fd>] wait_for_common+0xf8/0x193
[<ffffffff80229d2a>] default_wake_function+0x0/0xe
[<ffffffff8028c7a0>] do_coredump+0x2b1/0x6d1
[<ffffffff805ceeae>] snd_pcm_delay+0x138/0x14f
[<ffffffff805d2bba>] snd_pcm_common_ioctl1+0x751/0xde1
[<ffffffff80237252>] __dequeue_signal+0xfe/0x158
[<ffffffff802366e5>] recalc_sigpending+0xe/0x24
[<ffffffff80239162>] get_signal_to_deliver+0x449/0x48b
[<ffffffff8020aacc>] do_notify_resume+0xa7/0x719
[<ffffffff8021d392>] do_page_fault+0x722/0x734
[<ffffffff805d3eca>] snd_pcm_playback_ioctl+0x2e/0x38
[<ffffffff802930d9>] do_ioctl+0x21/0x6b
[<ffffffff8020bbbc>] retint_signal+0x3d/0x81
note: amarokapp[8812] exited with preempt_count 1
*** Entering snd_pod_trigger
BUG: scheduling while atomic: amarokapp/0x00000002/8847
Call Trace:
[<ffffffff80736e06>] schedule+0x7f/0x2b7
[<ffffffff80737666>] schedule_timeout+0x99/0xbc
[<ffffffff80235cb6>] process_timeout+0x0/0x5
[<ffffffff88771ed2>] :line6usb:unlink_wait_clear_audio_out_urbs+0x50/0x80
[<ffffffff88771f17>] :line6usb:snd_pod_playback_hw_free+0x15/0x3c
[<ffffffff805d0509>] snd_pcm_release_substream+0x39/0x74
[<ffffffff805d058c>] snd_pcm_release+0x48/0x98
[<ffffffff80287d45>] __fput+0xa1/0x195
[<ffffffff802855ea>] filp_close+0x5d/0x65
[<ffffffff8022f44a>] put_files_struct+0x65/0xc3
[<ffffffff802308b2>] do_exit+0x2ad/0x8a0
[<ffffffff80230f38>] sys_exit_group+0x0/0xe
[<ffffffff80239169>] get_signal_to_deliver+0x450/0x48b
[<ffffffff8020aacc>] do_notify_resume+0xa7/0x719
[<ffffffff80737191>] preempt_schedule+0x4f/0x7f
[<ffffffff8021d050>] do_page_fault+0x3e0/0x734
[<ffffffff8020bbbc>] retint_signal+0x3d/0x81
On 2.6.21 everything is stable; thanks for the driver, too!
Logged In: YES
user_id=1897125
Originator: YES
Hello,
One important thing could be that I do not have the printk in my source anymore. See the patch below. So please try that patch and let me know whatever the result is.
I have been using this version without any problem since the error reported. So can you please first check the description http://tamastarjanyi.blogspot.com/2007/09/line6-podxt-linux-driver-072-is.html and download and apply the patch - bottom of page - on a clean source?
Then
# make clean ; make ; make install
Please make sure you have the right version of the kernel headers coresponding to your kernel. I think you have.
If possible log all of these.
If still does not work:
And please let me know which kernel version is this? Subversion too. (uname -a)
Which distribution?
What is aplay -l output?
Does
$ aplay -D plughw:x something.wav
works?
One important thing could be that I do not have the printk in my source anymore. See the patch. So please try that patch and let me know whatever the result is.
Regards: Tamás
Logged In: YES
user_id=1897125
Originator: YES
Tested with printk and it also works. So printk is not an issue.
But please try the patch as I wrote and inform me.
Also let me know how you start amarok and what in your asoundrc is.
Logged In: NO
Hello Tamás,
the line6usb-0.7.2_patch.diff made the driver work again for me on amd64, kernel 2.6.23.1 with gcc-4.2.0
and x86, kernel 2.6.22; same compiler version and linux-headers-2.6.23/2.6.22-r2 installed.
Thank you very much!
LG
Logged In: NO
Hello,
that's the diff output of the manually applied fix and the patched version if it is of any help:
diff line6_fixed/line6usb-0.7.2/pcm.c line6_patched/line6usb-0.7.2/pcm.c
37,40d36
< clear_bit(BIT_PREPARED, &chip->flags);
<
< printk(KERN_INFO "*** Entering snd_pod_trigger\n");
< spin_lock_irqsave(&chip->lock_trigger, flags);
42,46d37
<
< //snd_pcm_group_for_each(pos, substream) {
< list_for_each(pos,&substream->group->substreams) {
< //s = snd_pcm_group_substream_entry(pos);
< s = list_entry(pos,struct snd_pcm_substream,link_list);
47a39,43
> //snd_pcm_group_for_each(pos, substream) {
> list_for_each(pos,&substream->group->substreams) {
> //s = snd_pcm_group_substream_entry(pos);
> s = list_entry(pos,struct snd_pcm_substream,link_list);
>
Thanks again!
Logged In: YES
user_id=1897125
Originator: YES
Hello LG,
Are you the same nobody who had the initial problem before?
Just to know if this is working after all or not?
If so I am happy to help you. And enjoy your PodXT like I do.
Regards: Tamás
Logged In: NO
Hello Tamás,
yes I am the same nobody;
except a much happier nobody now.
LG
Logged In: YES
user_id=1838782
Originator: NO
This bug is fixed in the trunk svn already. I just have had the same issue a few minutes ago with the current ubuntu gutsy repository (generic i386 kernel 2.6.22-14). I tried the svn trunk I downloaded a couple of month ago and the baby compiled without any problem.
Markus, please put the current trunk in a tarball and update your website or at least give a hint there.