usb: dwc3: qcom: Constify the software node
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Thu, 4 Feb 2021 14:17:09 +0000 (17:17 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Feb 2021 14:42:08 +0000 (15:42 +0100)
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. If the properties are constant, the node can be
constant as well.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20210204141711.53775-5-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/dwc3-qcom.c

index d803ee98c628e3a7cb8bd2ce87a56a7f09e9edbf..846a47be6df7f7bebde8b1b644cf49b6ba07acef 100644 (file)
@@ -567,6 +567,10 @@ static const struct property_entry dwc3_qcom_acpi_properties[] = {
        {}
 };
 
+static const struct software_node dwc3_qcom_swnode = {
+       .properties = dwc3_qcom_acpi_properties,
+};
+
 static int dwc3_qcom_acpi_register_core(struct platform_device *pdev)
 {
        struct dwc3_qcom        *qcom = platform_get_drvdata(pdev);
@@ -613,16 +617,17 @@ static int dwc3_qcom_acpi_register_core(struct platform_device *pdev)
                goto out;
        }
 
-       ret = platform_device_add_properties(qcom->dwc3,
-                                            dwc3_qcom_acpi_properties);
+       ret = device_add_software_node(&qcom->dwc3->dev, &dwc3_qcom_swnode);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to add properties\n");
                goto out;
        }
 
        ret = platform_device_add(qcom->dwc3);
-       if (ret)
+       if (ret) {
                dev_err(&pdev->dev, "failed to add device\n");
+               device_remove_software_node(&qcom->dwc3->dev);
+       }
 
 out:
        kfree(child_res);
@@ -837,6 +842,7 @@ static int dwc3_qcom_remove(struct platform_device *pdev)
        struct device *dev = &pdev->dev;
        int i;
 
+       device_remove_software_node(&qcom->dwc3->dev);
        of_platform_depopulate(dev);
 
        for (i = qcom->num_clocks - 1; i >= 0; i--) {