OSDN Git Service

platform/surface: aggregator_registry: Use generic client removal function
authorMaximilian Luz <luzmaximilian@gmail.com>
Thu, 28 Oct 2021 00:22:42 +0000 (02:22 +0200)
committerHans de Goede <hdegoede@redhat.com>
Tue, 16 Nov 2021 09:56:54 +0000 (10:56 +0100)
Use generic client removal function introduced in the previous commit
instead of defining our own one.

Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Link: https://lore.kernel.org/r/20211028002243.1586083-3-luzmaximilian@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/surface/surface_aggregator_registry.c

index e70f4c6..f6c6393 100644 (file)
@@ -258,20 +258,6 @@ static int ssam_uid_from_string(const char *str, struct ssam_device_uid *uid)
        return 0;
 }
 
-static int ssam_hub_remove_devices_fn(struct device *dev, void *data)
-{
-       if (!is_ssam_device(dev))
-               return 0;
-
-       ssam_device_remove(to_ssam_device(dev));
-       return 0;
-}
-
-static void ssam_hub_remove_devices(struct device *parent)
-{
-       device_for_each_child_reverse(parent, NULL, ssam_hub_remove_devices_fn);
-}
-
 static int ssam_hub_add_device(struct device *parent, struct ssam_controller *ctrl,
                               struct fwnode_handle *node)
 {
@@ -317,7 +303,7 @@ static int ssam_hub_add_devices(struct device *parent, struct ssam_controller *c
 
        return 0;
 err:
-       ssam_hub_remove_devices(parent);
+       ssam_remove_clients(parent);
        return status;
 }
 
@@ -414,7 +400,7 @@ static void ssam_base_hub_update_workfn(struct work_struct *work)
        if (hub->state == SSAM_BASE_HUB_CONNECTED)
                status = ssam_hub_add_devices(&hub->sdev->dev, hub->sdev->ctrl, node);
        else
-               ssam_hub_remove_devices(&hub->sdev->dev);
+               ssam_remove_clients(&hub->sdev->dev);
 
        if (status)
                dev_err(&hub->sdev->dev, "failed to update base-hub devices: %d\n", status);
@@ -496,7 +482,7 @@ static int ssam_base_hub_probe(struct ssam_device *sdev)
 err:
        ssam_notifier_unregister(sdev->ctrl, &hub->notif);
        cancel_delayed_work_sync(&hub->update_work);
-       ssam_hub_remove_devices(&sdev->dev);
+       ssam_remove_clients(&sdev->dev);
        return status;
 }
 
@@ -508,7 +494,7 @@ static void ssam_base_hub_remove(struct ssam_device *sdev)
 
        ssam_notifier_unregister(sdev->ctrl, &hub->notif);
        cancel_delayed_work_sync(&hub->update_work);
-       ssam_hub_remove_devices(&sdev->dev);
+       ssam_remove_clients(&sdev->dev);
 }
 
 static const struct ssam_device_id ssam_base_hub_match[] = {
@@ -625,7 +611,7 @@ static int ssam_platform_hub_remove(struct platform_device *pdev)
 {
        const struct software_node **nodes = platform_get_drvdata(pdev);
 
-       ssam_hub_remove_devices(&pdev->dev);
+       ssam_remove_clients(&pdev->dev);
        set_secondary_fwnode(&pdev->dev, NULL);
        software_node_unregister_node_group(nodes);
        return 0;