V4L/DVB (8994): Adjust MPEG initialization in cx24116

Adjust MPEG initialization in cx24116 in order to accomodate different
MPEG CLK position and polarity in different cards.

Signed-off-by: Igor M. Liplianin <liplianin@me.by>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c
index 0f3f962..ad3d6fc 100644
--- a/drivers/media/dvb/dvb-usb/dw2102.c
+++ b/drivers/media/dvb/dvb-usb/dw2102.c
@@ -284,7 +284,7 @@
 
 static struct cx24116_config dw2104_config = {
 	.demod_address = 0x55,
-	/*.mpg_clk_pos_pol = 0x01,*/
+	.mpg_clk_pos_pol = 0x01,
 };
 
 static int dw2104_frontend_attach(struct dvb_usb_adapter *d)
diff --git a/drivers/media/dvb/frontends/cx24116.c b/drivers/media/dvb/frontends/cx24116.c
index 2ff9e20..666a0d8 100644
--- a/drivers/media/dvb/frontends/cx24116.c
+++ b/drivers/media/dvb/frontends/cx24116.c
@@ -478,7 +478,10 @@
 	cmd.args[0x01] = 0x01;
 	cmd.args[0x02] = 0x75;
 	cmd.args[0x03] = 0x00;
-	cmd.args[0x04] = 0x02;
+	if (state->config->mpg_clk_pos_pol)
+		cmd.args[0x04] = state->config->mpg_clk_pos_pol;
+	else
+		cmd.args[0x04] = 0x02;
 	cmd.args[0x05] = 0x00;
 	cmd.len= 0x06;
 	ret = cx24116_cmd_execute(fe, &cmd);
diff --git a/drivers/media/dvb/frontends/cx24116.h b/drivers/media/dvb/frontends/cx24116.h
index 2789672..8dbcec2 100644
--- a/drivers/media/dvb/frontends/cx24116.h
+++ b/drivers/media/dvb/frontends/cx24116.h
@@ -33,6 +33,9 @@
 
 	/* Need to reset device during firmware loading */
 	int (*reset_device)(struct dvb_frontend* fe);
+
+	/* Need to set MPEG parameters */
+	u8 mpg_clk_pos_pol:0x02;
 };
 
 #if defined(CONFIG_DVB_CX24116) || defined(CONFIG_DVB_CX24116_MODULE)