Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d893d5dc authored by Steven Toth's avatar Steven Toth Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (7742): cx88: Add support for the DViCO FusionHDTV_7_GOLD digital modes



The S5H1411 demodulator is now enabled.

Signed-off-by: default avatarSteven Toth <stoth@hauppauge.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 8b4f1d03
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ config VIDEO_CX88_DVB
	select DVB_CX24123 if !DVB_FE_CUSTOMISE
	select DVB_ISL6421 if !DVB_FE_CUSTOMISE
	select TUNER_SIMPLE if !DVB_FE_CUSTOMISE
	select DVB_S5H1411 if !DVB_FE_CUSTOMISE
	---help---
	  This adds support for DVB/ATSC cards based on the
	  Conexant 2388x chip.
+1 −0
Original line number Diff line number Diff line
@@ -1591,6 +1591,7 @@ static const struct cx88_board cx88_boards[] = {
			.vmux   = 2,
			.gpio0  = 0x16d9,
		}},
		.mpeg           = CX88_MPEG_DVB,
	},
	[CX88_BOARD_PROLINK_PV_8000GT] = {
		.name           = "Prolink Pixelview MPEG 8000GT",
+32 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@
#include "isl6421.h"
#include "tuner-simple.h"
#include "tda9887.h"
#include "s5h1411.h"

MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>");
@@ -463,6 +464,22 @@ static struct zl10353_config cx88_geniatech_x8000_mt = {
       .no_tuner = 1,
};

static struct s5h1411_config dvico_fusionhdtv7_config = {
	.output_mode   = S5H1411_SERIAL_OUTPUT,
	.gpio          = S5H1411_GPIO_ON,
	.mpeg_timing   = S5H1411_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK,
	.qam_if        = S5H1411_IF_44000,
	.vsb_if        = S5H1411_IF_44000,
	.inversion     = S5H1411_INVERSION_OFF,
	.status_mode   = S5H1411_DEMODLOCKING
};

static struct xc5000_config dvico_fusionhdtv7_tuner_config = {
	.i2c_address    = 0xc2 >> 1,
	.if_khz         = 5380,
	.tuner_callback = cx88_tuner_callback,
};

static int attach_xc3028(u8 addr, struct cx8802_dev *dev)
{
	struct dvb_frontend *fe;
@@ -844,6 +861,21 @@ static int dvb_register(struct cx8802_dev *dev)
		if (attach_xc3028(0x61, dev) < 0)
			return -EINVAL;
		break;
	case CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD:
		dev->dvb.frontend = dvb_attach(s5h1411_attach,
					       &dvico_fusionhdtv7_config,
					       &dev->core->i2c_adap);
		if (dev->dvb.frontend != NULL) {
			/* tuner_config.video_dev must point to
			 * i2c_adap.algo_data
			 */
			dvico_fusionhdtv7_tuner_config.priv =
						dev->core->i2c_adap.algo_data;
			dvb_attach(xc5000_attach, dev->dvb.frontend,
				   &dev->core->i2c_adap,
				   &dvico_fusionhdtv7_tuner_config);
		}
		break;
	default:
		printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n",
		       dev->core->name);