Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Patch to fix tuner problems with stv0299
- To: "linux-dvb" <linux-dvb@linuxtv.org>
- Subject: [linux-dvb] Patch to fix tuner problems with stv0299
- From: Andrew de Quincey <adq_dvb@lidskialf.net>
- Date: Sat, 15 Mar 2003 12:52:41 +0000
- Content-disposition: inline
- Content-transfer-encoding: 7bit
- Content-type: text/plain; charset="us-ascii"
- Sender: linux-dvb-bounce@linuxtv.org
- User-agent: KMail/1.5
Hi, heres a patch to fix problems with tuner/PLL synth detection with the stv0299 code.
I decided just to make it use single i2c transfers whenever talking to the PLL, since its obviously not
reliable to use double transfers.
--- CUT HERE ---
Index: linux/drivers/media/dvb/frontends/stv0299.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/frontends/stv0299.c,v
retrieving revision 1.5
diff -r1.5 stv0299.c
252,258c252,253
< if (ftype == LG_TDQF_S001F || ftype == ALPS_BSRU6) {
< ret = i2c->xfer (i2c, &msg[0], 1);
< ret += i2c->xfer (i2c, &msg[1], 1);
< }
< else {
< ret = i2c->xfer (i2c, msg, 2);
< }
---
> ret = i2c->xfer (i2c, &msg[0], 1);
> ret += i2c->xfer (i2c, &msg[1], 1);
339c334,335
< ret = i2c->xfer (i2c, msg, 2);
---
> ret = i2c->xfer (i2c, &msg[0], 1);
> ret += i2c->xfer (i2c, &msg[1], 1);
790c786,787
< int type;
---
> int status;
>
794c791
< u8 stat [] = { 0 };
---
> u8 stat [] = { 0 };
796c793
< { addr: 0x60, flags: I2C_M_RD, buf: stat, len: 1 }};
---
> { addr: 0x60, flags: I2C_M_RD, buf: stat, len: 1 }};
800,801c797,800
< if (i2c->xfer(i2c, msg1, 2) == 2) {
< type = PHILIPS_SU1278SH;
---
> status = i2c->xfer(i2c, &msg1[0], 1);
> status += i2c->xfer(i2c, &msg1[1], 1);
> if (status == 2)
> {
803,816c802,816
< } else if (i2c->xfer(i2c, msg2, 2) == 2) {
< if (0) { // if ((stat[0] & 0x3f) == 0) {
< type = LG_TDQF_S001F;
< printk ("%s: setup for tuner TDQF-S001F\n", __FILE__);
< }
< else {
< type = ALPS_BSRU6;
< printk ("%s: setup for tuner BSRU6, TDQB-S00x\n", __FILE__);
< }
< } else {
< type = UNKNOWN_FRONTEND;
< printk ("%s: unknown PLL synthesizer, "
< "please report to <linuxdvb@linuxtv.org>!!\n",
< __FILE__);
---
> return PHILIPS_SU1278SH;
> }
>
> status = i2c->xfer(i2c, &msg2[0], 1);
> status += i2c->xfer(i2c, &msg2[1], 1);
> if (status == 2)
> {
> /*
> if ((stat[0] & 0x3f) == 0) {
> type = LG_TDQF_S001F;
> printk ("%s: setup for tuner TDQF-S001F\n", __FILE__);
> }
> else { */
> printk ("%s: setup for tuner BSRU6, TDQB-S00x\n", __FILE__);
> return ALPS_BSRU6;
818c818,823
< return type;
---
>
> /* If we get here, we have an unknown PLL */
> printk ("%s: unknown PLL synthesizer, "
> "please report to <linuxdvb@linuxtv.org>!!\n",
> __FILE__);
> return UNKNOWN_FRONTEND;
--- CUT HERE ---
--
adq
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index