[Prev][Next][Index][Thread]

Re: real-world experience with QuickCam in the kernel




  From: Sujal Patel <smpatel@wam.umd.edu>
  Subject: Re: real-world experience with QuickCam in the kernel 
  On Sat, 3 Feb 1996, Paul Traina wrote:
  
  > Think about it, same I/O operations need to be done, and when you open
  > /dev/io, you're doing them directly from user-mode.
  
  Yea, but in user-mode you have to deal with other processes taking away 
  our time slice.  In FreeBSD, we can use rtprio-- But I dunno about what 
  the Linux folks can do about this.

This is a win, not a lose.  Actually, we want them to take away our time
slice while we're in the sync/wait loop.
  
  > Even then, taking an interrupt per nibble would be ugly.
  
  The QuickCam would also need an onboard frame-buffer.  Maybe signal when 
  the whole frame was ready.  But!  Enough wishing :)

Yep, in that case, spend $300 on a matrox meteor. ;-)
  
  > Since we're gated by the speed of the spin loop anyway, we may as well hit
  > the "go" button as soon as possible and then do the stuff that's slow on
  > the processor.  You could probably code the shifts in LISP and it would
  > still complete before the sync/wait completed. :-)
  
  I was thinking of something along the same lines.  But of course coding 
  it in assembly never hurts so I thought, I'd throw it out. 

Sure.
  
  > Are you sure it's instant?  I think we have several tens of microseconds of
  > slack here, don't we?  If not, then my proposal for reordering the xfer
  > routines won't fly.
  
  The way I understand the QuickCam's operation:  You need to read it as 
  fast as possible?  Or am I wrong on this point?

Well, I have heard the CCD image fades, but that must be tenths of seconds
after, not microseconds.  We should have all of the time in the world is
my _conjecture_.  I haven't re-coded the routines yet, so I wouldn't know
for sure.
  
  > I found a bug in my code comparing it to xfqcam, but I still haven't fixed
  > my hardware to do bidir.
  
  I need to fix this myself-  I think it's a subtle bug which exists in all 
  of the bi-directional code (or maybe I just have funky hardware).

References: