From b2c9a68537a3827a65f878692ea1b8116335cdb2 Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Sun, 16 Apr 2006 13:19:24 -0300 Subject: [PATCH] --- yaml --- r: 29865 b: refs/heads/master c: 8d6cdd235d19c3bb1f86f40bf0305049c1a61955 h: refs/heads/master i: 29863: e7a4b18a81539a8f1cd5824fd4193807113284ed v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/dvb-usb/cxusb.c | 36 +++++++++++++++++++++---- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 8252bea2849c..fa97fde817f9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3febc04d42d4a0bda64af0c929fdb871370e2a7a +refs/heads/master: 8d6cdd235d19c3bb1f86f40bf0305049c1a61955 diff --git a/trunk/drivers/media/dvb/dvb-usb/cxusb.c b/trunk/drivers/media/dvb/dvb-usb/cxusb.c index 1f0d3e995c8d..5151fb4172df 100644 --- a/trunk/drivers/media/dvb/dvb-usb/cxusb.c +++ b/trunk/drivers/media/dvb/dvb-usb/cxusb.c @@ -322,6 +322,36 @@ static int cxusb_mt352_demod_init(struct dvb_frontend* fe) return 0; } +static int cxusb_lgh064f_pll_set_i2c(struct dvb_frontend *fe, + struct dvb_frontend_parameters *fep) +{ + struct dvb_usb_device *d = fe->dvb->priv; + int ret = 0; + u8 b[5]; + struct i2c_msg msg = { .addr = d->pll_addr, .flags = 0, + .buf = &b[1], .len = 4 }; + + dvb_usb_pll_set(fe,fep,b); + + if (i2c_transfer (&d->i2c_adap, &msg, 1) != 1) { + err("tuner i2c write failed for pll_set."); + ret = -EREMOTEIO; + } + msleep(1); + + /* Set the Auxiliary Byte. */ + b[3] &= ~0x20; + b[3] |= 0x18; + b[4] = 0x50; + if (i2c_transfer(&d->i2c_adap, &msg, 1) != 1) { + err("tuner i2c write failed writing auxiliary byte."); + ret = -EREMOTEIO; + } + msleep(1); + + return ret; +} + static struct cx22702_config cxusb_cx22702_config = { .demod_address = 0x63, @@ -334,7 +364,7 @@ static struct cx22702_config cxusb_cx22702_config = { static struct lgdt330x_config cxusb_lgdt3303_config = { .demod_address = 0x0e, .demod_chip = LGDT3303, - .pll_set = dvb_usb_pll_set_i2c, + .pll_set = cxusb_lgh064f_pll_set_i2c, }; static struct mt352_config cxusb_dee1601_config = { @@ -362,11 +392,7 @@ static int cxusb_fmd1216me_tuner_attach(struct dvb_usb_device *d) static int cxusb_lgh064f_tuner_attach(struct dvb_usb_device *d) { - u8 bpll[4] = { 0x00, 0x00, 0x18, 0x50 }; - /* bpll[2] : unset bit 3, set bits 4&5 - bpll[3] : 0x50 - digital, 0x20 - analog */ d->pll_addr = 0x61; - memcpy(d->pll_init, bpll, 4); d->pll_desc = &dvb_pll_tdvs_tua6034; return 0; }