Messages in this thread | | | Date | Fri, 14 Sep 2007 16:56:01 +0100 (BST) | From | Mauro Carvalho Chehab <> | Subject | Re: [PATCH] v4l: fix build error for et61x251 driver |
| |
> through ioctl()? It's not as immediate and safe as controlling the device > registers through /sysfs (not /proc). However, the sysfs interface in those > drivers appeared before V4L2 had its own ioctls and we agreed to keep and > export the interface to the only users selecting CONFIG_VIDEO_ADV_DEBUG (ok, > this is actually valid for the sn9c102, I'll submit a patch for the et61x251 > in the future).
Direct register access for debug ok, but not this is not ok for normal usage. > > >> From my POV, a driver that is creating its own userspace API is not >> fully compliant with V4L2 API. > > Isn't Video4Linux2 ioctl() supersedeing sysfs in this case?
It should be. However, things like direct register access (for non-debug mode) may allow some controls that weren't visible via ioctl. That's why the sysfs usage may be evil: a driver may have some parts accessible only via sysfs interface, on a non-standard way, without offering the official API support. So, some device functionalities may be hidden from userspace apps that are compliant with V4L2.
Summarizing:
Linus patch seems to be the better solution to solve the V4L1_COMPAT bug.
I would also convert the other container_of stuff to to_video_device (to have code uniformity).
et61x251 direct register interfaces should be available only if CONFIG_VIDEO_ADV_DEBUG is selected to avoid its miss-usage. If there are other device configurations that needs specific register settings not yet provided, this should be provided via V4L2 standard ioctls.
This way, et61x251 will be compliant with V4L2.
I still think that we should work at the remaining sysfs classes to make them coherent on all V4L devices.
Cheers, Mauro. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |