[linux-dvb] [Patch] Added Nova-S-Plus and Nova-SE2 DVB-S support

Johannes Stezenbach js at linuxtv.org
Tue Nov 29 18:12:54 CET 2005


On Mon, Nov 28, 2005 at 08:56:33PM -0500, Steve Toth wrote:
> 
> >>There's some dubious timeout code in cx24123_pll_writereg(), I guess
> >>this should go. Is this copied from the Windoze driver?
> >>    
> >
> >I didn't receive an answer to this. Do you care to comment?
> >Can we just drop the timeout cruft?
> >  
> Windows code, no. What's dubious about it?
> 
> It's supposed to avoid situations where the pll isn't working correctly. 
> It returns an error and avoids hanging situations. Which I've personally 
> witnessed. If you don't like safety, it can be removed.

Let's quote from your patch:

+       timeout=0;
+       /* write the msb 8 bits, wait for the send to be completed */
+       cx24123_writereg(state, 0x22, (data>>16) & 0xff);
+       while ( ( cx24123_readreg(state, 0x20) & 0x40 ) == 0 )
+       {
+               /* Safety - No reason why the write should not complete, and we never get here, avoid hang */
+               if (timeout++ >= 4) {
+                       printk("%s:  demodulator is no longer responding, aborting.\n",__FUNCTION__);
+                       return -EREMOTEIO;
+               }
+               msleep(500);
+       }

"No reason why the write should not complete, and we never get here"?
500 msec delay?

I haven't got the data sheet so I can only guess what the code is doing,
but it looks fishy. ;-)
What is (cx24123_readreg(state, 0x20) & 0x40) testing for?

Johannes



More information about the linux-dvb mailing list