From: Greg Kroah-Hartman Date: Wed, 15 Mar 2023 10:43:46 +0000 (+0100) Subject: drop software-node-introduce-device_add_software_node.patch from 5.4 and 5.10 X-Git-Tag: v4.14.310~30 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f6a9086997c1775817e4a36cd58fe22879a92b01;p=thirdparty%2Fkernel%2Fstable-queue.git drop software-node-introduce-device_add_software_node.patch from 5.4 and 5.10 --- diff --git a/queue-5.10/software-node-introduce-device_add_software_node.patch b/queue-5.10/software-node-introduce-device_add_software_node.patch deleted file mode 100644 index 55df990b025..00000000000 --- a/queue-5.10/software-node-introduce-device_add_software_node.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 5006088daaf713e090bef68ab9d5a8082d043762 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 15 Jan 2021 12:49:11 +0300 -Subject: software node: Introduce device_add_software_node() - -From: Heikki Krogerus - -[ Upstream commit e68d0119e3284334de5650a1ac42ef4e179f895e ] - -This helper will register a software node and then assign -it to device at the same time. The function will also make -sure that the device can't have more than one software node. - -Acked-by: Felipe Balbi -Signed-off-by: Heikki Krogerus -Link: https://lore.kernel.org/r/20210115094914.88401-2-heikki.krogerus@linux.intel.com -Signed-off-by: Greg Kroah-Hartman -Stable-dep-of: 8e5248c3a877 ("usb: dwc3: pci: add support for the Intel Meteor Lake-M") -Signed-off-by: Sasha Levin ---- - drivers/base/swnode.c | 71 +++++++++++++++++++++++++++++++++++----- - include/linux/property.h | 3 ++ - 2 files changed, 65 insertions(+), 9 deletions(-) - -diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c -index d2fb3eb5816c3..572a53e6f2e88 100644 ---- a/drivers/base/swnode.c -+++ b/drivers/base/swnode.c -@@ -48,6 +48,19 @@ EXPORT_SYMBOL_GPL(is_software_node); - struct swnode, fwnode) : NULL; \ - }) - -+static inline struct swnode *dev_to_swnode(struct device *dev) -+{ -+ struct fwnode_handle *fwnode = dev_fwnode(dev); -+ -+ if (!fwnode) -+ return NULL; -+ -+ if (!is_software_node(fwnode)) -+ fwnode = fwnode->secondary; -+ -+ return to_swnode(fwnode); -+} -+ - static struct swnode * - software_node_to_swnode(const struct software_node *node) - { -@@ -850,22 +863,62 @@ void fwnode_remove_software_node(struct fwnode_handle *fwnode) - } - EXPORT_SYMBOL_GPL(fwnode_remove_software_node); - -+/** -+ * device_add_software_node - Assign software node to a device -+ * @dev: The device the software node is meant for. -+ * @swnode: The software node. -+ * -+ * This function will register @swnode and make it the secondary firmware node -+ * pointer of @dev. If @dev has no primary node, then @swnode will become the primary -+ * node. -+ */ -+int device_add_software_node(struct device *dev, const struct software_node *swnode) -+{ -+ int ret; -+ -+ /* Only one software node per device. */ -+ if (dev_to_swnode(dev)) -+ return -EBUSY; -+ -+ ret = software_node_register(swnode); -+ if (ret) -+ return ret; -+ -+ set_secondary_fwnode(dev, software_node_fwnode(swnode)); -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(device_add_software_node); -+ -+/** -+ * device_remove_software_node - Remove device's software node -+ * @dev: The device with the software node. -+ * -+ * This function will unregister the software node of @dev. -+ */ -+void device_remove_software_node(struct device *dev) -+{ -+ struct swnode *swnode; -+ -+ swnode = dev_to_swnode(dev); -+ if (!swnode) -+ return; -+ -+ software_node_notify(dev, KOBJ_REMOVE); -+ set_secondary_fwnode(dev, NULL); -+ kobject_put(&swnode->kobj); -+} -+EXPORT_SYMBOL_GPL(device_remove_software_node); -+ - int software_node_notify(struct device *dev, unsigned long action) - { -- struct fwnode_handle *fwnode = dev_fwnode(dev); - struct swnode *swnode; - int ret; - -- if (!fwnode) -- return 0; -- -- if (!is_software_node(fwnode)) -- fwnode = fwnode->secondary; -- if (!is_software_node(fwnode)) -+ swnode = dev_to_swnode(dev); -+ if (!swnode) - return 0; - -- swnode = to_swnode(fwnode); -- - switch (action) { - case KOBJ_ADD: - ret = sysfs_create_link(&dev->kobj, &swnode->kobj, -diff --git a/include/linux/property.h b/include/linux/property.h -index 2d4542629d80b..3b6093f6bd04c 100644 ---- a/include/linux/property.h -+++ b/include/linux/property.h -@@ -485,4 +485,7 @@ fwnode_create_software_node(const struct property_entry *properties, - const struct fwnode_handle *parent); - void fwnode_remove_software_node(struct fwnode_handle *fwnode); - -+int device_add_software_node(struct device *dev, const struct software_node *swnode); -+void device_remove_software_node(struct device *dev); -+ - #endif /* _LINUX_PROPERTY_H_ */ --- -2.39.2 - diff --git a/queue-5.4/software-node-introduce-device_add_software_node.patch b/queue-5.4/software-node-introduce-device_add_software_node.patch deleted file mode 100644 index fa2690e236e..00000000000 --- a/queue-5.4/software-node-introduce-device_add_software_node.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 6c614a4240ce1d54d7630d8256d6f010f03dc925 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 15 Jan 2021 12:49:11 +0300 -Subject: software node: Introduce device_add_software_node() - -From: Heikki Krogerus - -[ Upstream commit e68d0119e3284334de5650a1ac42ef4e179f895e ] - -This helper will register a software node and then assign -it to device at the same time. The function will also make -sure that the device can't have more than one software node. - -Acked-by: Felipe Balbi -Signed-off-by: Heikki Krogerus -Link: https://lore.kernel.org/r/20210115094914.88401-2-heikki.krogerus@linux.intel.com -Signed-off-by: Greg Kroah-Hartman -Stable-dep-of: 8e5248c3a877 ("usb: dwc3: pci: add support for the Intel Meteor Lake-M") -Signed-off-by: Sasha Levin ---- - drivers/base/swnode.c | 71 +++++++++++++++++++++++++++++++++++----- - include/linux/property.h | 3 ++ - 2 files changed, 65 insertions(+), 9 deletions(-) - -diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c -index 4c3b9813b2843..4f9c6898e86e8 100644 ---- a/drivers/base/swnode.c -+++ b/drivers/base/swnode.c -@@ -48,6 +48,19 @@ EXPORT_SYMBOL_GPL(is_software_node); - struct swnode, fwnode) : NULL; \ - }) - -+static inline struct swnode *dev_to_swnode(struct device *dev) -+{ -+ struct fwnode_handle *fwnode = dev_fwnode(dev); -+ -+ if (!fwnode) -+ return NULL; -+ -+ if (!is_software_node(fwnode)) -+ fwnode = fwnode->secondary; -+ -+ return to_swnode(fwnode); -+} -+ - static struct swnode * - software_node_to_swnode(const struct software_node *node) - { -@@ -862,22 +875,62 @@ void fwnode_remove_software_node(struct fwnode_handle *fwnode) - } - EXPORT_SYMBOL_GPL(fwnode_remove_software_node); - -+/** -+ * device_add_software_node - Assign software node to a device -+ * @dev: The device the software node is meant for. -+ * @swnode: The software node. -+ * -+ * This function will register @swnode and make it the secondary firmware node -+ * pointer of @dev. If @dev has no primary node, then @swnode will become the primary -+ * node. -+ */ -+int device_add_software_node(struct device *dev, const struct software_node *swnode) -+{ -+ int ret; -+ -+ /* Only one software node per device. */ -+ if (dev_to_swnode(dev)) -+ return -EBUSY; -+ -+ ret = software_node_register(swnode); -+ if (ret) -+ return ret; -+ -+ set_secondary_fwnode(dev, software_node_fwnode(swnode)); -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(device_add_software_node); -+ -+/** -+ * device_remove_software_node - Remove device's software node -+ * @dev: The device with the software node. -+ * -+ * This function will unregister the software node of @dev. -+ */ -+void device_remove_software_node(struct device *dev) -+{ -+ struct swnode *swnode; -+ -+ swnode = dev_to_swnode(dev); -+ if (!swnode) -+ return; -+ -+ software_node_notify(dev, KOBJ_REMOVE); -+ set_secondary_fwnode(dev, NULL); -+ kobject_put(&swnode->kobj); -+} -+EXPORT_SYMBOL_GPL(device_remove_software_node); -+ - int software_node_notify(struct device *dev, unsigned long action) - { -- struct fwnode_handle *fwnode = dev_fwnode(dev); - struct swnode *swnode; - int ret; - -- if (!fwnode) -- return 0; -- -- if (!is_software_node(fwnode)) -- fwnode = fwnode->secondary; -- if (!is_software_node(fwnode)) -+ swnode = dev_to_swnode(dev); -+ if (!swnode) - return 0; - -- swnode = to_swnode(fwnode); -- - switch (action) { - case KOBJ_ADD: - ret = sysfs_create_link(&dev->kobj, &swnode->kobj, -diff --git a/include/linux/property.h b/include/linux/property.h -index 9b3d4ca3a73a9..99fdafa20cd1d 100644 ---- a/include/linux/property.h -+++ b/include/linux/property.h -@@ -437,4 +437,7 @@ fwnode_create_software_node(const struct property_entry *properties, - const struct fwnode_handle *parent); - void fwnode_remove_software_node(struct fwnode_handle *fwnode); - -+int device_add_software_node(struct device *dev, const struct software_node *swnode); -+void device_remove_software_node(struct device *dev); -+ - #endif /* _LINUX_PROPERTY_H_ */ --- -2.39.2 -