Re: [PATCH] v4l: fix build error for et61x251 driver

From: Mauro Carvalho Chehab
Date: Fri Sep 14 2007 - 11:56:34 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/