Gregoire Favre wrote: > On Thu, Jun 30, 2005 at 12:31:57PM -0700, C.Y.M wrote: > > >>OK, I should really check this before I hit reply. :) This should fix it. I >>hope. :) >> >>Make sure all 3 are applied in this order: >> >>dvb-kernel-2.6.13-050630.diff >>dvb-kernel-2.6.13-050630.2.diff >>dvb-kernel-2.6.13-050630.3.diff > > > Well... OK.. lets star over.. and thanks for testing. Please just delete all those other patches. This should contain all the necessary changes. 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 12:47:44.000000000 -0700 +++ dvb-kernel/linux/drivers/media/dvb/dvb-core/dvbdev.c 2005-06-30 13:06:29.000000000 -0700 @@ -56,7 +56,11 @@ #define nums2minor(num,type,id) ((num << 6) | (id << 4) | type) #define MAX_DVB_MINORS (DVB_MAX_ADAPTERS*64) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)) static struct class_simple *dvb_class; +#else +static struct class *dvb_class; +#endif static struct dvb_device* dvbdev_find_device (int minor) { @@ -235,7 +239,11 @@ S_IFCHR | S_IRUSR | S_IWUSR, "dvb/adapter%d/%s%d", adap->num, dnames[type], id); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)) class_simple_device_add(dvb_class, MKDEV(DVB_MAJOR, nums2minor(adap->num, type, id)), +#else + class_device_create(dvb_class, MKDEV(DVB_MAJOR, nums2minor(adap->num, type, id)), +#endif NULL, "dvb%d.%s%d", adap->num, dnames[type], id); dprintk("DVB: register adapter%d/%s%d @ minor: %i (0x%02x)\n", @@ -255,7 +263,11 @@ devfs_remove("dvb/adapter%d/%s%d", dvbdev->adapter->num, dnames[dvbdev->type], dvbdev->id); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)) class_simple_device_remove(MKDEV(DVB_MAJOR, nums2minor(dvbdev->adapter->num, +#else + class_device_destroy(dvb_class, MKDEV(DVB_MAJOR, nums2minor(dvbdev->adapter->num, +#endif dvbdev->type, dvbdev->id))); list_del (&dvbdev->list_head); @@ -411,7 +423,11 @@ devfs_mk_dir("dvb"); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)) dvb_class = class_simple_create(THIS_MODULE, "dvb"); +#else + dvb_class = class_create(THIS_MODULE, "dvb"); +#endif if (IS_ERR(dvb_class)) { retval = PTR_ERR(dvb_class); goto error; @@ -428,7 +444,11 @@ static void __exit exit_dvbdev(void) { devfs_remove("dvb"); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)) class_simple_destroy(dvb_class); +#else + class_destroy(dvb_class); +#endif 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 12:47:44.000000000 -0700 +++ dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_frontend.c 2005-06-30 13:08:41.000000000 -0700 @@ -394,8 +394,12 @@ break; } +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13)) if (current->flags & PF_FREEZE) refrigerator(PF_FREEZE); +#else + try_to_freeze(); +#endif if (down_interruptible(&fepriv->sem)) break;