Esben Stien wrote: > Salvatore Di Pietro <salvuz_78@xxxxxxxxxxx> writes: > > >>I am experiencing problems during the build (and consequently >>modprobe) process of Kor Nielsen hacked version of kfusd module for >>OSS2JACK, fusd-kor-1.10-9. > > > I used this patch: > > http://bugs.gentoo.org/show_bug.cgi?id=96449 > > Well, actually it didn't apply, so I patched it manually (just a few > lines). > > Also see this link: > > http://forums.gentoo.org/viewtopic-t-354750-postdays-0-postorder-asc-start-50.html?sid=ddb88bc061d05154928a941f096cea66 > Thank you! I had to patch it manually, too, and in attachment here's the patch I made: apply with patch -p1 </path/to/fusd-kor-1.10-9_kernel_2.6.13_patch > I run 2.6.13-rt4 with oss2jack. I have never used this solution before > and I experience different troubles like crackles in the sound and I'm > also not able to feed a jack stream into it. It connects but it's not > putting the stream into the oss app. It really depends on the application. Good results are with (according to info on website): * mplayer * artsd (and thus all the kde applications) * xmms * Macromedia Flash * xine * Totem * esd * SoundTracker * Frozen Bubble * GStreamer (osssink) * Quake 3 * Audacity * Skype I dind't manage to make it work with Audacity, though... With Skype I had no problem: http://alsa.opensrc.org/index.php?page=JACK > I'll do some more testing before I ask anything specific, but please > report back if you get it to work with inputs and no crackles in the > sound. -------------- next part -------------- --- fusd-kor-1.10-9/kfusd/kfusd.c 2005-06-18 08:53:52.000000000 +0200 +++ fusd-kor-1.10-9.bak/kfusd/kfusd.c 2005-09-16 00:38:51.000000000 +0200 @@ -125,12 +125,12 @@ STATIC dev_t control_id; STATIC dev_t status_id; -static struct class_simple *fusd_class; +static struct class *fusd_class; static struct class_device *fusd_control_class_device; static struct class_device *fusd_status_class_device; -extern struct class_simple *sound_class; +extern struct class *sound_class; /* version number incremented for each registered device */ STATIC int last_version = 1; @@ -1965,7 +1965,7 @@ } else { - fusd_dev->clazz = class_simple_create(THIS_MODULE, fusd_dev->class_name); + fusd_dev->clazz = class_create(THIS_MODULE, fusd_dev->class_name); if(IS_ERR(fusd_dev->clazz)) { error = PTR_ERR(fusd_dev->clazz); @@ -1974,11 +1974,11 @@ fusd_dev->owns_class = 1; } - fusd_dev->class_device = class_simple_device_add(fusd_dev->clazz, fusd_dev->dev_id, NULL, fusd_dev->dev_name); + fusd_dev->class_device = class_device_create(fusd_dev->clazz, fusd_dev->dev_id, NULL, fusd_dev->dev_name); if(fusd_dev->class_device == NULL) { error = PTR_ERR(fusd_dev->class_device); - printk("class_simple_device_add failed status: %d\n", error); + printk("class_device_create failed status: %d\n", error); goto register_failed5; } @@ -2001,7 +2001,7 @@ return 0; register_failed5: - class_simple_destroy(fusd_dev->clazz); + class_destroy(fusd_dev->clazz); register_failed4: cdev_del(fusd_dev->handle); register_failed3: @@ -2093,10 +2093,10 @@ if(fusd_dev->handle) { - class_simple_device_remove(fusd_dev->dev_id); + class_device_destroy(fusd_class,fusd_dev->dev_id); if(fusd_dev->owns_class) { - class_simple_destroy(fusd_dev->clazz); + class_destroy(fusd_dev->clazz); } cdev_del(fusd_dev->handle); #ifdef CONFIG_DEVFS_FS @@ -2799,11 +2799,11 @@ fusd_control_device = NULL; fusd_status_device = NULL; - fusd_class = class_simple_create(THIS_MODULE, "fusd"); + fusd_class = class_create(THIS_MODULE, "fusd"); if(IS_ERR(fusd_class)) { retval = PTR_ERR(fusd_class); - printk("class_simple_create failed status: %d\n", retval); + printk("class_create failed status: %d\n", retval); goto fail0; } @@ -2841,11 +2841,11 @@ goto fail4; } - fusd_control_class_device = class_simple_device_add(fusd_class, control_id, NULL, "control"); + fusd_control_class_device = class_device_create(fusd_class, control_id, NULL, "control"); if(fusd_control_class_device == NULL) { retval = PTR_ERR(fusd_control_class_device); - printk("class_simple_device_add failed status: %d\n", retval); + printk("class_device_create failed status: %d\n", retval); goto fail5; } @@ -2882,10 +2882,10 @@ goto fail9; } - fusd_status_class_device = class_simple_device_add(fusd_class, status_id, NULL, "status"); + fusd_status_class_device = class_device_create(fusd_class, status_id, NULL, "status"); if(fusd_status_class_device == NULL) { - printk("class_simple_device_add failed status: %d\n", retval); + printk("class_device_add failed status: %d\n", retval); retval = PTR_ERR(fusd_status_class_device); goto fail10; } @@ -2904,7 +2904,7 @@ fail7: unregister_chrdev_region(status_id, 1); fail6: - class_simple_device_remove(control_id); + class_device_destroy(fusd_class,control_id); fail5: cdev_del(fusd_control_device); fail4: @@ -2916,7 +2916,7 @@ fail2: unregister_chrdev_region(control_id, 1); fail1: - class_simple_destroy(fusd_class); + class_destroy(fusd_class); fail0: return retval; } @@ -2925,8 +2925,8 @@ { RDEBUG(1, "cleaning up"); - class_simple_device_remove(status_id); - class_simple_device_remove(control_id); + class_device_destroy(fusd_class,status_id); + class_device_destroy(fusd_class,control_id); cdev_del(fusd_control_device); cdev_del(fusd_status_device); @@ -2935,7 +2935,7 @@ devfs_remove(FUSD_STATUS_FILENAME); - class_simple_destroy(fusd_class); + class_destroy(fusd_class); #ifdef CONFIG_FUSD_MEMDEBUG fusd_mem_cleanup();