[linux-dvb] cx24110 driver question/problem
Johannes Stezenbach
js at linuxtv.org
Mon Jul 25 11:10:12 CEST 2005
On Mon, Jul 25, 2005 Adam Szalkowski wrote:
> > BTW, the loop:
> > for (i = 500; i-- > 0 && !(cx24110_readreg(state,0x76)&0x40) ; )
> > ; /* wait for LNB ready */
> >
> > hammers mercilessly on the i2c bus, it might be worth to
> > add an msleep(1) and descrease i to 13 resp. 100 (burst
> > lenght is 12.5ms, DiSEqC msg is 54ms typically but depends on the
> > message), or not?
>
> Hi,
> I've included this improvement in the patch and it is working for me.
> Additionally I've made the register writes conditional, this could save a few
> cycles.
Cool. Can you give me your Signed-off-by: for this patch
(see linux/Documentaion/SubmittingPatches), please?
Additionally, the patch is word-wrapped, which is no problem in
this case because it is small enough so I can repair it by hand,
but you better send it as an attachment if you cannot get your mailer
to stop work-wrapping it.
Thanks,
Johannes
> --- drivers/media/dvb/frontends/cx24110.c.orig 2005-07-11 22:26:25.000000000
> +0200
> +++ drivers/media/dvb/frontends/cx24110.c 2005-07-25 08:26:52.000000000
> +0200
> @@ -398,7 +398,8 @@
> return -EINVAL;
>
> rv = cx24110_readreg(state, 0x77);
> - cx24110_writereg(state, 0x77, rv|0x04);
> + if (!(rv & 0x04))
> + cx24110_writereg(state, 0x77, rv | 0x04);
>
> rv = cx24110_readreg(state, 0x76);
> cx24110_writereg(state, 0x76, ((rv & 0x90) | 0x40 | bit));
> @@ -418,13 +419,16 @@
> cx24110_writereg(state, 0x79 + i, cmd->msg[i]);
>
> rv = cx24110_readreg(state, 0x77);
> - cx24110_writereg(state, 0x77, rv|0x04);
> + if (rv & 0x04) {
> + cx24110_writereg(state, 0x77, rv & ~0x04);
> + msleep(30);
> + }
>
> rv = cx24110_readreg(state, 0x76);
>
> cx24110_writereg(state, 0x76, ((rv & 0x90) | 0x40) | ((cmd->msg_len-3)
> & 3));
> - for (i=500; i-- > 0 && !(cx24110_readreg(state,0x76)&0x40);)
> - ; /* wait for LNB ready */
> + for (i=100; i-- > 0 && !(cx24110_readreg(state,0x76)&0x40);)
> + msleep(1); /* wait for LNB ready */
>
> return 0;
> }
>
>
>
> Adam
>
More information about the linux-dvb
mailing list