dvb: cx22702 frontend driver update
PATCH 2/2 dvb: cx22702 frontend driver update
update cx22702 fe driver, add support for using the dvb pll lib, enable cx22702 support in cx88-dvb.
Signed-off-by Gerd Knorr <[email protected]>
--- drivers/media/dvb/frontends/cx22702.c | 15 drivers/media/dvb/frontends/cx22702.h | 3 drivers/media/video/Kconfig | 1 drivers/media/video/cx88/cx88-dvb.c | 2 5 files changed, 662 insertions(+), 2 deletions(-)
drivers/media/dvb/frontends/cx22702.h +3 -0
@@ -36,6 +36,9 @@ struct cx22702_configu8 demod_address;/* PLL maintenance */ +u8 pll_address; +struct dvb_pll_desc *pll_desc; +int (*pll_init)(struct dvb_frontend * fe);int (*pll_set)(struct dvb_frontend * fe,struct dvb_frontend_parameters * params); };
drivers/media/video/Kconfig +1 -0
@@ -252,6 +252,7 @@ config VIDEO_SAA7134_DVB depends on VIDEO_SAA7134 && DVB_CORE select VIDEO_BUF_DVB select DVB_MT352 + select DVB_CX22702 ---help--- This adds support for DVB cards based on the Philips saa7134 chip.
drivers/media/video/cx88/cx88-dvb.c +1 -1
@@ -31,7 +31,7 @@#include <linux/suspend.h> /* those two frontends need merging via linuxtv cvs ... */ -#define HAVE_CX22702 0 +#define HAVE_CX22702 1#define HAVE_OR51132 1#include "cx88.h"
drivers/media/dvb/frontends/cx22702.c +14 -1
@@ -32,6 +32,7 @@#include <linux/slab.h> #include <linux/delay.h> #include "dvb_frontend.h" +#include "dvb-pll.h" #include "cx22702.h"
@@ -203,7 +204,19 @@ static int cx22702_set_tps (struct dvb_f/* set PLL */ cx22702_writereg (state,0x0D ,cx22702_readreg (state,0x0D ) &0xfe ); - state->config->pll_set (fe, p); +if (state->config->pll_set) { + state->config->pll_set (fe, p); + }else if (state->config->pll_desc) { +u8 pllbuf[4 ]; +struct i2c_msg msg = { .addr = state->config->pll_address, + .buf = pllbuf, .len =4 }; +dvb_pll_configure (state->config->pll_desc, pllbuf, + p->frequency, + p->u.ofdm.bandwidth); +i2c_transfer (state->i2c, &msg,1 ); + }else { +BUG (); + }cx22702_writereg (state,0x0D ,cx22702_readreg (state,0x0D ) |1 );/* set inversion */
Signature · 1 line
#define printk(args...) fprintf(stderr, ## args)