[media] V4L: soc-camera: make (almost) all client drivers re-usable outside of the framework
The most important change in this patch is direct linking to struct soc_camera_link via the client->dev.platform_data pointer. This makes most of the soc-camera client drivers also usable outside of the soc-camera framework. After this change all what is needed for these drivers to function are inclusions of soc-camera headers for some convenience macros, suitably configured platform data, which is anyway always required, and loaded soc-camera core module for library functions. If desired, these library functions can be made generic in the future and moved to a more neutral location. The only two client drivers, that still depend on soc-camera are: mt9t031: it uses struct video_device for its PM. Since no hardware is available, alternative methods cannot be tested. ov6650: it uses struct soc_camera_device to pass its sense data back to the bridge driver. A generic v4l2-subdevice approach should be developed to perform this. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
这个提交包含在:

提交者
Mauro Carvalho Chehab

父节点
1a99b972a8
当前提交
2f0babb7e4
@@ -253,14 +253,14 @@ unsigned long soc_camera_apply_board_flags(struct soc_camera_link *icl,
|
||||
#include <linux/i2c.h>
|
||||
static inline struct video_device *soc_camera_i2c_to_vdev(const struct i2c_client *client)
|
||||
{
|
||||
struct soc_camera_device *icd = client->dev.platform_data;
|
||||
struct v4l2_subdev *sd = i2c_get_clientdata(client);
|
||||
struct soc_camera_device *icd = (struct soc_camera_device *)sd->grp_id;
|
||||
return icd ? icd->vdev : NULL;
|
||||
}
|
||||
|
||||
static inline struct soc_camera_link *soc_camera_i2c_to_link(const struct i2c_client *client)
|
||||
{
|
||||
struct soc_camera_device *icd = client->dev.platform_data;
|
||||
return icd ? to_soc_camera_link(icd) : NULL;
|
||||
return client->dev.platform_data;
|
||||
}
|
||||
|
||||
static inline struct v4l2_subdev *soc_camera_vdev_to_subdev(const struct video_device *vdev)
|
||||
|
在新工单中引用
屏蔽一个用户