mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 23:34:05 +08:00
platform/surface: aggregator_registry: Use generic client removal function
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>
This commit is contained in:
parent
38543b72fb
commit
acff7091df
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user