diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0907-media-v4l2-fwnode-Add-helper-to-parse-device-propert.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0907-media-v4l2-fwnode-Add-helper-to-parse-device-propert.patch | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0907-media-v4l2-fwnode-Add-helper-to-parse-device-propert.patch b/target/linux/bcm27xx/patches-5.4/950-0907-media-v4l2-fwnode-Add-helper-to-parse-device-propert.patch deleted file mode 100644 index d0d21fc7f2..0000000000 --- a/target/linux/bcm27xx/patches-5.4/950-0907-media-v4l2-fwnode-Add-helper-to-parse-device-propert.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 1cc9056759e1f500de5e401afd4b0acff90cc653 Mon Sep 17 00:00:00 2001 -From: Jacopo Mondi <jacopo@jmondi.org> -Date: Sat, 9 May 2020 11:04:49 +0200 -Subject: [PATCH] media: v4l2-fwnode: Add helper to parse device - properties - -Add an helper function to parse common device properties in the same -way as v4l2_fwnode_endpoint_parse() parses common endpoint properties. - -Parse the 'rotation' and 'orientation' properties from the firmware -interface. - -Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> -Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> -Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> - -Commit 344897ef1d9b33e246b64e255d807ca6c053f349 upstream - -Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> ---- - drivers/media/v4l2-core/v4l2-fwnode.c | 42 ++++++++++++++++++++++++ - include/media/v4l2-fwnode.h | 47 +++++++++++++++++++++++++++ - 2 files changed, 89 insertions(+) - ---- a/drivers/media/v4l2-core/v4l2-fwnode.c -+++ b/drivers/media/v4l2-core/v4l2-fwnode.c -@@ -599,6 +599,48 @@ void v4l2_fwnode_put_link(struct v4l2_fw - } - EXPORT_SYMBOL_GPL(v4l2_fwnode_put_link); - -+int v4l2_fwnode_device_parse(struct device *dev, -+ struct v4l2_fwnode_device_properties *props) -+{ -+ struct fwnode_handle *fwnode = dev_fwnode(dev); -+ u32 val; -+ int ret; -+ -+ memset(props, 0, sizeof(*props)); -+ -+ props->orientation = V4L2_FWNODE_PROPERTY_UNSET; -+ ret = fwnode_property_read_u32(fwnode, "orientation", &val); -+ if (!ret) { -+ switch (val) { -+ case V4L2_FWNODE_ORIENTATION_FRONT: -+ case V4L2_FWNODE_ORIENTATION_BACK: -+ case V4L2_FWNODE_ORIENTATION_EXTERNAL: -+ break; -+ default: -+ dev_warn(dev, "Unsupported device orientation: %u\n", val); -+ return -EINVAL; -+ } -+ -+ props->orientation = val; -+ dev_dbg(dev, "device orientation: %u\n", val); -+ } -+ -+ props->rotation = V4L2_FWNODE_PROPERTY_UNSET; -+ ret = fwnode_property_read_u32(fwnode, "rotation", &val); -+ if (!ret) { -+ if (val >= 360) { -+ dev_warn(dev, "Unsupported device rotation: %u\n", val); -+ return -EINVAL; -+ } -+ -+ props->rotation = val; -+ dev_dbg(dev, "device rotation: %u\n", val); -+ } -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(v4l2_fwnode_device_parse); -+ - static int - v4l2_async_notifier_fwnode_parse_endpoint(struct device *dev, - struct v4l2_async_notifier *notifier, ---- a/include/media/v4l2-fwnode.h -+++ b/include/media/v4l2-fwnode.h -@@ -110,6 +110,36 @@ struct v4l2_fwnode_endpoint { - }; - - /** -+ * V4L2_FWNODE_PROPERTY_UNSET - identify a non initialized property -+ * -+ * All properties in &struct v4l2_fwnode_device_properties are initialized -+ * to this value. -+ */ -+#define V4L2_FWNODE_PROPERTY_UNSET (-1U) -+ -+/** -+ * enum v4l2_fwnode_orientation - possible device orientation -+ * @V4L2_FWNODE_ORIENTATION_FRONT: device installed on the front side -+ * @V4L2_FWNODE_ORIENTATION_BACK: device installed on the back side -+ * @V4L2_FWNODE_ORIENTATION_EXTERNAL: device externally located -+ */ -+enum v4l2_fwnode_orientation { -+ V4L2_FWNODE_ORIENTATION_FRONT, -+ V4L2_FWNODE_ORIENTATION_BACK, -+ V4L2_FWNODE_ORIENTATION_EXTERNAL -+}; -+ -+/** -+ * struct v4l2_fwnode_device_properties - fwnode device properties -+ * @orientation: device orientation. See &enum v4l2_fwnode_orientation -+ * @rotation: device rotation -+ */ -+struct v4l2_fwnode_device_properties { -+ enum v4l2_fwnode_orientation orientation; -+ unsigned int rotation; -+}; -+ -+/** - * struct v4l2_fwnode_link - a link between two endpoints - * @local_node: pointer to device_node of this endpoint - * @local_port: identifier of the port this endpoint belongs to -@@ -234,6 +264,23 @@ int v4l2_fwnode_parse_link(struct fwnode - void v4l2_fwnode_put_link(struct v4l2_fwnode_link *link); - - /** -+ * v4l2_fwnode_device_parse() - parse fwnode device properties -+ * @dev: pointer to &struct device -+ * @props: pointer to &struct v4l2_fwnode_device_properties where to store the -+ * parsed properties values -+ * -+ * This function parses and validates the V4L2 fwnode device properties from the -+ * firmware interface, and fills the @struct v4l2_fwnode_device_properties -+ * provided by the caller. -+ * -+ * Return: -+ * % 0 on success -+ * %-EINVAL if a parsed property value is not valid -+ */ -+int v4l2_fwnode_device_parse(struct device *dev, -+ struct v4l2_fwnode_device_properties *props); -+ -+/** - * typedef parse_endpoint_func - Driver's callback function to be called on - * each V4L2 fwnode endpoint. - * |