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

Commit ec7c15b5 authored by Ondrej Zary's avatar Ondrej Zary Committed by Mauro Carvalho Chehab
Browse files

[media] bttv: Add noname Bt848 capture card with 14MHz xtal

Add support for noname Bt848 capture-only card (3x composite, 1x S-VHS)
with 14MHz crystal:
http://www.rainbow-software.org/images/hardware/bt848_.jpg


14MHz PLL was not supported by bttv driver until now.

[mchehab@redhat.com: CodingStyle fixes]
Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent cc1088dc
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@ MODULE_PARM_DESC(vsfx,"set VSFX pci config bit "
		 "[yet another chipset flaw workaround]");
MODULE_PARM_DESC(latency,"pci latency timer");
MODULE_PARM_DESC(card,"specify TV/grabber card model, see CARDLIST file for a list");
MODULE_PARM_DESC(pll,"specify installed crystal (0=none, 28=28 MHz, 35=35 MHz)");
MODULE_PARM_DESC(pll, "specify installed crystal (0=none, 28=28 MHz, 35=35 MHz, 14=14 MHz)");
MODULE_PARM_DESC(tuner,"specify installed tuner type");
MODULE_PARM_DESC(autoload, "obsolete option, please do not use anymore");
MODULE_PARM_DESC(audiodev, "specify audio device:\n"
@@ -2837,6 +2837,14 @@ struct tvcard bttv_tvcards[] = {
		.tuner_addr	= ADDR_UNSET,
		.pll            = PLL_28,
	},
	[BTTV_BOARD_BT848_CAP_14] = {
		.name		= "Bt848 Capture 14MHz",
		.video_inputs	= 4,
		.svhs		= 2,
		.muxsel		= MUXSEL(2, 3, 1, 0),
		.pll		= PLL_14,
		.tuner_type	= TUNER_ABSENT,
	},

};

@@ -3402,6 +3410,10 @@ void bttv_init_card2(struct bttv *btv)
			btv->pll.pll_ifreq=35468950;
			btv->pll.pll_crystal=BT848_IFORM_XT1;
		}
		if (PLL_14 == bttv_tvcards[btv->c.type].pll) {
			btv->pll.pll_ifreq = 14318181;
			btv->pll.pll_crystal = BT848_IFORM_XT0;
		}
		/* insmod options can override */
		switch (pll[btv->c.nr]) {
		case 0: /* none */
@@ -3421,6 +3433,12 @@ void bttv_init_card2(struct bttv *btv)
			btv->pll.pll_ofreq   = 0;
			btv->pll.pll_crystal = BT848_IFORM_XT1;
			break;
		case 3: /* 14 MHz */
		case 14:
			btv->pll.pll_ifreq   = 14318181;
			btv->pll.pll_ofreq   = 0;
			btv->pll.pll_crystal = BT848_IFORM_XT0;
			break;
		}
	}
	btv->pll.pll_current = -1;
+2 −0
Original line number Diff line number Diff line
@@ -186,6 +186,7 @@
#define BTTV_BOARD_TVT_TD3116		   0xa0
#define BTTV_BOARD_APOSONIC_WDVR           0xa1
#define BTTV_BOARD_ADLINK_MPG24            0xa2
#define BTTV_BOARD_BT848_CAP_14            0xa3

/* more card-specific defines */
#define PT2254_L_CHANNEL 0x10
@@ -233,6 +234,7 @@ struct tvcard {
#define PLL_NONE 0
#define PLL_28   1
#define PLL_35   2
#define PLL_14   3

	/* i2c audio flags */
	unsigned int no_msp34xx:1;