[Linux-uvc-devel] Accessing Extension Units
NathanaelGalpin at smarttech.com
Mon Aug 20 22:19:32 CEST 2007
Thanks for getting back to me. I took a look at what you said, and
here's what I've found.
> What are the symptoms ? Do you get an error when you try to access the
> control ? If so, what error (errno) do you get?
When I try to access the control, I get errno 22 (EINVAL) returned. I've
also noticed that when I enumerate the controls on the camera, my new
control displays the same information as a control that is not supported
by this camera. This is why I was wondering if I needed to associate the
control with the camera somehow.
Output from my test app:
ID: 0x800000a Exposure, Auto Min: 0 Max: 100 Step: 3
ID: 0x800000b Exposure (Absolute) Min: 100 Max: 10000
ID: 0x800000c Min: 100 Max: 10000 Step: 50
ID: 0x800000d Min: 100 Max: 10000 Step: 50
ID: 0x800000e Min: 100 Max: 10000 Step: 50
The first two controls are supported on this camera. Controls c & d are
unsupported, control e is my new control.
> If you can enumerate the control on your device instance, there should
> no "association" problem. Try to raise the trace level to 255
> uvcvideo trace=255 or echo 255 >
> and check the kernel log (dmesg) for error messages after you try to
> access the control from your userspace application.
So I raised the trace level, and I've been able to pinpoint where the
error is occurring. The function uvc_find_ctrl (uvc_ctrl.c) is unable to
find the control. The trace message logged in dmesg is "uvcvideo:
Control 0x800000e not found.
After some more debugging I also found that uvc_find_ctrl searchs the
video->iterms list, but not the video->extensions list, presumably
because there are no items in this list? Could this be my problem?
More information about the Linux-uvc-devel