diff mbox series

[v2,3/6] usb: dwc3: haps: Constify the software node

Message ID 20210204141711.53775-4-heikki.krogerus@linux.intel.com (mailing list archive)
State Accepted
Commit efc9812edc61761708e6e703a48ed18e1af6bd12
Headers show
Series usb: Handle device properties with software node API | expand

Commit Message

Heikki Krogerus Feb. 4, 2021, 2:17 p.m. UTC
What platform_device_add_properties() does is it allocates
dynamically a software node that will contain the device
properties supplied to it, and then couples that node with
the device. Since that node is always created, it might as
well be constant.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
---
 drivers/usb/dwc3/dwc3-haps.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Greg KH Feb. 4, 2021, 2:42 p.m. UTC | #1
On Thu, Feb 04, 2021 at 05:17:08PM +0300, Heikki Krogerus wrote:
> What platform_device_add_properties() does is it allocates
> dynamically a software node that will contain the device
> properties supplied to it, and then couples that node with
> the device. Since that node is always created, it might as
> well be constant.
> 
> Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
>  drivers/usb/dwc3/dwc3-haps.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)

I've also now applied this, and patch 4/6 of the series as they have
nothing to do with your real work here :)

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/usb/dwc3/dwc3-haps.c b/drivers/usb/dwc3/dwc3-haps.c
index 55b4a901168e8..f6e3817fa7af0 100644
--- a/drivers/usb/dwc3/dwc3-haps.c
+++ b/drivers/usb/dwc3/dwc3-haps.c
@@ -33,6 +33,10 @@  static const struct property_entry initial_properties[] = {
 	{ },
 };
 
+static const struct software_node dwc3_haps_swnode = {
+	.properties = initial_properties,
+};
+
 static int dwc3_haps_probe(struct pci_dev *pci,
 			   const struct pci_device_id *id)
 {
@@ -77,7 +81,7 @@  static int dwc3_haps_probe(struct pci_dev *pci,
 	dwc->pci = pci;
 	dwc->dwc3->dev.parent = dev;
 
-	ret = platform_device_add_properties(dwc->dwc3, initial_properties);
+	ret = device_add_software_node(&dwc->dwc3->dev, &dwc3_haps_swnode);
 	if (ret)
 		goto err;
 
@@ -91,6 +95,7 @@  static int dwc3_haps_probe(struct pci_dev *pci,
 
 	return 0;
 err:
+	device_remove_software_node(&dwc->dwc3->dev);
 	platform_device_put(dwc->dwc3);
 	return ret;
 }
@@ -99,6 +104,7 @@  static void dwc3_haps_remove(struct pci_dev *pci)
 {
 	struct dwc3_haps *dwc = pci_get_drvdata(pci);
 
+	device_remove_software_node(&dwc->dwc3->dev);
 	platform_device_unregister(dwc->dwc3);
 }