Gregoire Favre wrote: > On Thu, Jun 30, 2005 at 01:33:49PM -0700, C.Y.M wrote: > > >>Its either.. >> >>LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) >> >>or >> >>LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,12) > > > ? OK, it serves me right for trying to support #ifdef's. They would just be rejected anyways.. :) I'm not going to try and support backwards compatibility.. so this will only work for 2.6.13-rc1+. It should apply to current CVS. Regards, C. -------------- next part -------------- diff -ru dvb-kernel-orig/linux/drivers/media/dvb/dvb-core/dvbdev.c dvb-kernel/linux/drivers/media/dvb/dvb-core/dvbdev.c --- dvb-kernel-orig/linux/drivers/media/dvb/dvb-core/dvbdev.c 2005-06-30 14:46:50.000000000 -0700 +++ dvb-kernel/linux/drivers/media/dvb/dvb-core/dvbdev.c 2005-06-30 15:14:58.000000000 -0700 @@ -56,7 +56,7 @@ #define nums2minor(num,type,id) ((num << 6) | (id << 4) | type) #define MAX_DVB_MINORS (DVB_MAX_ADAPTERS*64) -static struct class_simple *dvb_class; +static struct class *dvb_class; static struct dvb_device* dvbdev_find_device (int minor) { @@ -235,7 +235,7 @@ S_IFCHR | S_IRUSR | S_IWUSR, "dvb/adapter%d/%s%d", adap->num, dnames[type], id); - class_simple_device_add(dvb_class, MKDEV(DVB_MAJOR, nums2minor(adap->num, type, id)), + class_device_create(dvb_class, MKDEV(DVB_MAJOR, nums2minor(adap->num, type, id)), NULL, "dvb%d.%s%d", adap->num, dnames[type], id); dprintk("DVB: register adapter%d/%s%d @ minor: %i (0x%02x)\n", @@ -255,7 +255,7 @@ devfs_remove("dvb/adapter%d/%s%d", dvbdev->adapter->num, dnames[dvbdev->type], dvbdev->id); - class_simple_device_remove(MKDEV(DVB_MAJOR, nums2minor(dvbdev->adapter->num, + class_device_destroy(dvb_class, MKDEV(DVB_MAJOR, nums2minor(dvbdev->adapter->num, dvbdev->type, dvbdev->id))); list_del (&dvbdev->list_head); @@ -411,7 +411,7 @@ devfs_mk_dir("dvb"); - dvb_class = class_simple_create(THIS_MODULE, "dvb"); + dvb_class = class_create(THIS_MODULE, "dvb"); if (IS_ERR(dvb_class)) { retval = PTR_ERR(dvb_class); goto error; @@ -428,7 +428,7 @@ static void __exit exit_dvbdev(void) { devfs_remove("dvb"); - class_simple_destroy(dvb_class); + class_destroy(dvb_class); cdev_del(&dvb_device_cdev); unregister_chrdev_region(MKDEV(DVB_MAJOR, 0), MAX_DVB_MINORS); } diff -ru dvb-kernel-orig/linux/drivers/media/dvb/dvb-core/dvb_frontend.c dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_frontend.c --- dvb-kernel-orig/linux/drivers/media/dvb/dvb-core/dvb_frontend.c 2005-06-30 14:46:50.000000000 -0700 +++ dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_frontend.c 2005-06-30 15:15:20.000000000 -0700 @@ -394,8 +394,7 @@ break; } - if (current->flags & PF_FREEZE) - refrigerator(PF_FREEZE); + try_to_freeze(); if (down_interruptible(&fepriv->sem)) break;