From ecdf0cfe711b3780e829a6e24ffd3275f9cbfc2a Mon Sep 17 00:00:00 2001 From: Sakari Ailus Date: Tue, 16 Aug 2016 06:54:59 -0300 Subject: [media] v4l: async: Add fwnode match support Add fwnode matching to complement OF node matching. And fwnode may also be an OF node. Do not enable fwnode matching yet. It will replace OF matching soon. Signed-off-by: Sakari Ailus Tested-by: Hans Verkuil Tested-by: Philipp Zabel Signed-off-by: Mauro Carvalho Chehab --- include/media/v4l2-async.h | 5 +++++ include/media/v4l2-subdev.h | 3 +++ 2 files changed, 8 insertions(+) (limited to 'include/media') diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h index 8e2a236a4d03..c3695fa2c903 100644 --- a/include/media/v4l2-async.h +++ b/include/media/v4l2-async.h @@ -32,6 +32,7 @@ struct v4l2_async_notifier; * @V4L2_ASYNC_MATCH_DEVNAME: Match will use the device name * @V4L2_ASYNC_MATCH_I2C: Match will check for I2C adapter ID and address * @V4L2_ASYNC_MATCH_OF: Match will use OF node + * @V4L2_ASYNC_MATCH_FWNODE: Match will use firmware node * * This enum is used by the asyncrhronous sub-device logic to define the * algorithm that will be used to match an asynchronous device. @@ -41,6 +42,7 @@ enum v4l2_async_match_type { V4L2_ASYNC_MATCH_DEVNAME, V4L2_ASYNC_MATCH_I2C, V4L2_ASYNC_MATCH_OF, + V4L2_ASYNC_MATCH_FWNODE, }; /** @@ -57,6 +59,9 @@ struct v4l2_async_subdev { struct { const struct device_node *node; } of; + struct { + struct fwnode_handle *fwnode; + } fwnode; struct { const char *name; } device_name; diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index 0ab1c5df6fac..5f1669c45642 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h @@ -788,6 +788,8 @@ struct v4l2_subdev_platform_data { * @devnode: subdev device node * @dev: pointer to the physical device, if any * @of_node: The device_node of the subdev, usually the same as dev->of_node. + * @fwnode: The fwnode_handle of the subdev, usually the same as + * either dev->of_node->fwnode or dev->fwnode (whichever is non-NULL). * @async_list: Links this subdev to a global subdev_list or @notifier->done * list. * @asd: Pointer to respective &struct v4l2_async_subdev. @@ -819,6 +821,7 @@ struct v4l2_subdev { struct video_device *devnode; struct device *dev; struct device_node *of_node; + struct fwnode_handle *fwnode; struct list_head async_list; struct v4l2_async_subdev *asd; struct v4l2_async_notifier *notifier; -- cgit v1.2.3