diff --git a/drivers/media/dvb/frontends/cx24116.c b/drivers/media/dvb/frontends/cx24116.c
index cfb265d..fdc741e 100644
--- a/drivers/media/dvb/frontends/cx24116.c
+++ b/drivers/media/dvb/frontends/cx24116.c
@@ -36,7 +36,6 @@
 #include <linux/moduleparam.h>
 #include <linux/init.h>
 #include <linux/firmware.h>
-#include <linux/sysctl.h>
 
 #include "dvb_frontend.h"
 #include "cx24116.h"
@@ -108,70 +107,6 @@
 /* DiSEqC tone burst */
 static int toneburst = 1;
 
-/* debug & toneburst sysctl */
-static struct ctl_table_header *kernel_table_header;
-static ctl_table toneburst_table[] = {
-{
-	.ctl_name       = 0,
-	.procname       = "toneburst",
-	.data           = &toneburst,
-	.maxlen         = sizeof(int),
-	.mode           = 0666,
-	.child          = NULL,
-	.parent         = NULL,
-	.proc_handler   = &proc_dointvec,
-	.strategy       = NULL,
-	.extra1         = NULL,
-	.extra2         = NULL,
-},
-{
-	.ctl_name       = 0,
-	.procname       = "debug",
-	.data           = &debug,
-	.maxlen         = sizeof(int),
-	.mode           = 0666,
-	.child          = NULL,
-	.parent         = NULL,
-	.proc_handler   = &proc_dointvec,
-	.strategy       = NULL,
-	.extra1         = NULL,
-	.extra2         = NULL,
-	},
-	{0},
-};
-static ctl_table cx24116_table[] = {
-{
-	.ctl_name       = 0,
-	.procname       = "cx24116",
-	.data           = NULL,
-	.maxlen         = 0,
-	.mode           = 0555,
-	.child          = toneburst_table,
-	.parent         = NULL,
-	.proc_handler   = NULL,
-	.strategy       = NULL,
-	.extra1         = NULL,
-	.extra2         = NULL,
-	},
-	{0},
-};
-static ctl_table kernel_table[] = {
-{
-	.ctl_name       = CTL_DEV,
-	.procname       = "dev",
-	.data           = NULL,
-	.maxlen         = 0,
-	.mode           = 0555,
-	.child          = cx24116_table,
-	.parent         = NULL,
-	.proc_handler   = NULL,
-	.strategy       = NULL,
-	.extra1         = NULL,
-	.extra2         = NULL,
-	},
-	{0},
-};
-
 enum cmds
 {
 	CMD_SET_VCO     = 0x10,
@@ -964,7 +899,7 @@
 		 * 2/C/A: E0 10 38 F8..FB
 		 * 3/D/B: E0 10 38 FC..FF
 		 *
-		 * datebyte[3]= 8421:8421
+		 * databyte[3]= 8421:8421
 		 *              ABCD:WXYZ
 		 *              CLR :SET
 		 *
@@ -1061,7 +996,6 @@
 	struct cx24116_state* state = fe->demodulator_priv;
 	dprintk("%s\n",__func__);
 	kfree(state);
-	unregister_sysctl_table(kernel_table_header);
 }
 
 static struct dvb_frontend_ops cx24116_ops;
@@ -1074,15 +1008,11 @@
 
 	dprintk("%s\n",__func__);
 
-	kernel_table_header = register_sysctl_table(kernel_table);
-	if(!kernel_table_header)
-		goto error1;
-
 	/* allocate memory for the internal state */
 	state = kmalloc(sizeof(struct cx24116_state), GFP_KERNEL);
 	if (state == NULL) {
 		printk("Unable to kmalloc\n");
-		goto error2;
+		goto error1;
 	}
 
 	/* setup the state */
@@ -1095,7 +1025,7 @@
 	ret = (cx24116_readreg(state, 0xFF) << 8) | cx24116_readreg(state, 0xFE);
 	if (ret != 0x0501) {
 		printk("Invalid probe, probably not a CX24116 device\n");
-		goto error3;
+		goto error2;
 	}
 
 	/* create dvb_frontend */
@@ -1103,8 +1033,7 @@
 	state->frontend.demodulator_priv = state;
 	return &state->frontend;
 
-error3: kfree(state);
-error2: unregister_sysctl_table(kernel_table_header);
+error2: kfree(state);
 error1: return NULL;
 }
 /*
@@ -1195,7 +1124,8 @@
 		case SYS_DVBS:
 			dprintk("%s: DVB-S delivery system selected\n",__func__);
 			state->dnxt.pilot = PILOT_OFF;
-			state->dnxt.rolloff = CX24116_ROLLOFF_035;
+			state->dnxt.rolloff_val = CX24116_ROLLOFF_035;
+			state->dnxt.rolloff = c->rolloff;
 			break;
 		case SYS_DVBS2:
 			dprintk("%s: DVB-S2 delivery system selected\n",__func__);
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index 891acb5..ce1752d 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -946,7 +946,7 @@
 		if (dev->dvb.frontend) {
 			dvb_attach(isl6421_attach, dev->dvb.frontend,
 				&dev->core->i2c_adap,
-				0x08, 0x00, 0x00);
+				0x08, ISL6421_DCL, 0x00);
 		}
 		break;
 	case CX88_BOARD_TEVII_S460:
