Merge tag 'driver-core-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / drivers / slimbus / qcom-ngd-ctrl.c
index 7040293c2ee8fe8d38af443f6ad9dc7bd2635c72..0aa8408464add60cd8564c19d3071d543e9e0436 100644 (file)
@@ -1434,6 +1434,7 @@ static int of_qcom_slim_ngd_register(struct device *parent,
        const struct of_device_id *match;
        struct device_node *node;
        u32 id;
+       int ret;
 
        match = of_match_node(qcom_slim_ngd_dt_match, parent->of_node);
        data = match->data;
@@ -1455,7 +1456,17 @@ static int of_qcom_slim_ngd_register(struct device *parent,
                }
                ngd->id = id;
                ngd->pdev->dev.parent = parent;
-               ngd->pdev->driver_override = QCOM_SLIM_NGD_DRV_NAME;
+
+               ret = driver_set_override(&ngd->pdev->dev,
+                                         &ngd->pdev->driver_override,
+                                         QCOM_SLIM_NGD_DRV_NAME,
+                                         strlen(QCOM_SLIM_NGD_DRV_NAME));
+               if (ret) {
+                       platform_device_put(ngd->pdev);
+                       kfree(ngd);
+                       of_node_put(node);
+                       return ret;
+               }
                ngd->pdev->dev.of_node = node;
                ctrl->ngd = ngd;
 
@@ -1526,13 +1537,11 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_device *pdev)
        if (IS_ERR(ctrl->base))
                return PTR_ERR(ctrl->base);
 
-       res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-       if (!res) {
-               dev_err(&pdev->dev, "no slimbus IRQ resource\n");
-               return -ENODEV;
-       }
+       ret = platform_get_irq(pdev, 0);
+       if (ret < 0)
+               return ret;
 
-       ret = devm_request_irq(dev, res->start, qcom_slim_ngd_interrupt,
+       ret = devm_request_irq(dev, ret, qcom_slim_ngd_interrupt,
                               IRQF_TRIGGER_HIGH, "slim-ngd", ctrl);
        if (ret) {
                dev_err(&pdev->dev, "request IRQ failed\n");