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