/* set v4l2_format index */
                        frame->v4l2_format = usbvision->palette;
+                       PDEBUG(DBG_IOCTL, "VIDIOC_QBUF frame=%d",vb->index);
 
                        return usbvision_new_frame(usbvision, vb->index);
                }
                        if (vb->index == -1)
                                return -EINVAL;
 
-                       PDEBUG(DBG_IOCTL, "VIDIOC_DQBUF frame=%d, grabstate=%d",
-                                      vb->index, usbvision->frame[vb->index].grabstate);
+                       PDEBUG(DBG_IOCTL, "VIDIOC_DQBUF frame=%d, grabstate=%d, curframeNum=%d",
+                                      vb->index, usbvision->frame[vb->index].grabstate,usbvision->curFrameNum);
 
                        switch (usbvision->frame[vb->index].grabstate) {
                        case FrameState_Unused:
                                errCode = (usbvision->frame[vb->index].grabstate == FrameState_Error) ? -EIO : 0;
                                vb->memory = V4L2_MEMORY_MMAP;
                                vb->flags = V4L2_BUF_FLAG_MAPPED | V4L2_BUF_FLAG_QUEUED | V4L2_BUF_FLAG_DONE;
+                               vb->field = V4L2_FIELD_NONE;
                                vb->sequence = usbvision->frame[vb->index].sequence;
                                usbvision->frame[vb->index].grabstate = FrameState_Unused;
                                break;
 
 #include <linux/i2c.h>
 #include "usbvision-i2c.h"
 
-static int debug = 0;  
+static int debug_i2c_usb = 0;  
 
 #if defined(module_param)                               // Showing parameters under SYSFS
-module_param (debug, int, 0444);                       // debug mode of the device driver
+module_param (debug_i2c_usb, int, 0444);                       // debug_i2c_usb mode of the device driver
 #else
-MODULE_PARM(debug, "i");                               // debug mode of the device driver
+MODULE_PARM(debug_i2c_usb, "i");                               // debug_i2c_usb mode of the device driver
 #endif
 
-MODULE_AUTHOR("Joerg Heckenbach");
-MODULE_DESCRIPTION("I2C algorithm for USB-I2C-bridges");
-MODULE_LICENSE("GPL");
-
 
 static inline int try_write_address(struct i2c_adapter *i2c_adap,
                                    unsigned char addr, int retries)
                        break;
                udelay(adap->udelay);
        }
-       if (debug) {
+       if (debug_i2c_usb) {
                if (i) {
                        info("%s: Needed %d retries for address %#2x", __FUNCTION__, i, addr);
                        info("%s: Maybe there's no device at this address", __FUNCTION__);
                        break;
                udelay(adap->udelay);
        }
-       if (debug) {
+       if (debug_i2c_usb) {
                if (i) {
                        info("%s: Needed %d retries for address %#2x", __FUNCTION__, i, addr);
                        info("%s: Maybe there's no device at this address", __FUNCTION__);
                pmsg = &msgs[i];
                ret = usb_find_address(i2c_adap, pmsg, i2c_adap->retries, &addr);
                if (ret != 0) {
-                       if (debug) {
+                       if (debug_i2c_usb) {
                                info("%s: got NAK from device, message #%d\n", __FUNCTION__, i);
                        }
                        return (ret < 0) ? ret : -EREMOTEIO;
 
        i2c_add_adapter(adap);
 
-       if (debug) {
+       if (debug_i2c_usb) {
                info("i2c bus for %s registered", adap->name);
        }
 
 
        i2c_del_adapter(adap);
 
-       if (debug) {
+       if (debug_i2c_usb) {
                info("i2c bus for %s unregistered", adap->name);
        }
 #ifdef MODULE