cafe_ccic slowness in VIDIOC_S_FMT
    Chris Ball 
    cjb at laptop.org
       
    Sat Jul  7 22:50:14 EDT 2007
    
    
  
Hi,
   > So here you see that calling VIDIOC_S_FMT takes 3655992
   > microseconds, which is a _really_ long time.  Turns out that
   > cafe_cam_configure() from s_fmt_cap() takes 378 jiffies.  Breaking
   > this down, the pieces of cafe_cam_configure() and the jiffies they
   > take are:
I made a systemtap log of ov7670* and i2c* calls and returns inside
cafe_cam_configure, with timing information:
   http://dev.laptop.org/~cjb/camera-time.staplog
Conclusions:
   * We spend 3.573 seconds in cafe_cam_configure().
   * Of which 3.139 seconds is in a single ov7670_write_array() call.
   * Which consists of 157 calls to ov7670_write(), each of which
     calls i2c_smbus_xfer() once.
   * The 157 i2c_smbus_xfer() calls take a min of 13ms and max of 25ms
     each, and add up to our 3.137 seconds.
   * We need to optimize i2c_smbus_xfer(), which is cafe_smbus_xfer().
- Chris.
-- 
Chris Ball   <cjb at laptop.org>
    
    
More information about the Devel
mailing list