diff --git a/drivers/media/dvb/dvb-usb/sc100.c b/drivers/media/dvb/dvb-usb/sc100.c
index 2905f27..4d15869 100644
--- a/drivers/media/dvb/dvb-usb/sc100.c
+++ b/drivers/media/dvb/dvb-usb/sc100.c
@@ -70,7 +70,8 @@
 	<< (LNB_CONTROL_REGISTER_1_ ## field ## _ ## SHIFT); \
 }
 
-struct i2c_adapter *i2c_adap;
+struct i2c_adapter *sc100_i2c_adap;
+struct usb_device *sc100_udev;
 
 static int sc100_read_mac_address(struct dvb_usb_device *d, u8 mac[6])
 {
@@ -86,7 +87,7 @@
 
 	deb_info("%s: [W] R:0x%02x, V:0x%02x", __func__, reg, data);
 
-	ret = i2c_transfer(i2c_adap, &msg, 1);
+	ret = i2c_transfer(sc100_i2c_adap, &msg, 1);
 	if (ret != 1) {
 		err("%s: [W] R:0x%02x, V:0x02x, E:%d", __func__, reg, data, ret);
 		return -EREMOTEIO;
@@ -104,7 +105,7 @@
 		{ .addr = LNB_I2C_ADDRESS, .flags = 0, .buf = b0, .len = 1 },
 		{ .addr = LNB_I2C_ADDRESS, .flags = I2C_M_RD, .buf = b1, .len = 1 }
 	};
-	ret = i2c_transfer(i2c_adap, msg, 2);
+	ret = i2c_transfer(sc100_i2c_adap, msg, 2);
 
 	if (ret != 2) {
 		err("%s: [R] R:0x%x, E:%d", __func__, reg, ret);
@@ -161,12 +162,19 @@
 	return sc100_writereg(LNB_CONTROL_REGISTER_1, lnb_reg);
 }
 
+static int sc100_set_ts_params(struct dvb_frontend* fe, int is_punctured)
+{
+	return usb_control_msg(sc100_udev, usb_sndctrlpipe(sc100_udev,0),
+			0xa4, USB_TYPE_VENDOR, 0, 0, 0, 0, 5000);
+}
+
 static struct dvbsky_m88rs6000_config sc100_config = {
 	.demod_address = 0x69,
-	.ci_mode = 0,
+	.ci_mode = 2,
 	.pin_ctrl = 0x80,
 	.ts_mode = 0,
 	.tuner_readstops = 1,
+	.set_ts_params = sc100_set_ts_params,
 };
 
 static struct dvb_usb_device_properties sc100_properties;
@@ -174,9 +182,9 @@
 static int sc100_frontend_attach(struct dvb_usb_adapter *d)
 {
 	/* Initializes i2c adapter when the frontend is attached. */
-	i2c_adap = i2c_get_adapter(0);
+	sc100_i2c_adap = i2c_get_adapter(0);
 	d->fe_adap[0].fe = dvb_attach(dvbsky_m88rs6000_attach, &sc100_config,
-				i2c_adap);
+				sc100_i2c_adap);
 	if (d->fe_adap[0].fe != NULL) {
 		d->fe_adap[0].fe->ops.set_tone = sc100_set_tone;
 		d->fe_adap[0].fe->ops.set_voltage = sc100_set_voltage;
@@ -231,6 +239,7 @@
 static int sc100_probe(struct usb_interface *intf,
 		const struct usb_device_id *id)
 {
+	sc100_udev = interface_to_usbdev(intf);
 	if (0 == dvb_usb_device_init(intf, &sc100_properties,
 			THIS_MODULE, NULL, adapter_nr))
 		return 0;
diff --git a/drivers/media/dvb/frontends/dvbsky_m88rs6000.c b/drivers/media/dvb/frontends/dvbsky_m88rs6000.c
index 73f64fd..b23bca9 100644
--- a/drivers/media/dvb/frontends/dvbsky_m88rs6000.c
+++ b/drivers/media/dvb/frontends/dvbsky_m88rs6000.c
@@ -1279,6 +1279,8 @@
 	/* set ts clock */
 	if(state->config->ci_mode == 0)
 		ts_clk = 7000;
+	else if(state->config->ci_mode == 2)
+		ts_clk = 16000;
 	else
 		ts_clk = 8000;
 		
