Hi Jonathan, This loop in ov7670_enum_framesizes(): for (i = 0; i < n_win_sizes; i++) { struct ov7670_win_size *win = &info->devtype->win_sizes[index]; if (info->min_width && win->width < info->min_width) continue; if (info->min_height && win->height < info->min_height) continue; ... seems wrong to me. If any of the above "if" statements is true, it will stay true forever, until the loop terminates. If that's intended, you could at least use "break" immediately. If it's not - something else is wrong there. Maybe the "win" initialisation at the top of the loop should have "i" as an index? I.e. - struct ov7670_win_size *win = &info->devtype->win_sizes[index]; + struct ov7670_win_size *win = &info->devtype->win_sizes[i]; Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html