diff options
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r-- | drivers/base/platform.c | 37 |
1 files changed, 7 insertions, 30 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c index bc78848dd59a..4f8bef3eb5a8 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -432,7 +432,7 @@ struct platform_device *platform_device_register_full( goto err_alloc; pdev->dev.parent = pdevinfo->parent; - ACPI_COMPANION_SET(&pdev->dev, pdevinfo->acpi_node.companion); + ACPI_HANDLE_SET(&pdev->dev, pdevinfo->acpi_node.handle); if (pdevinfo->dma_mask) { /* @@ -463,7 +463,7 @@ struct platform_device *platform_device_register_full( ret = platform_device_add(pdev); if (ret) { err: - ACPI_COMPANION_SET(&pdev->dev, NULL); + ACPI_HANDLE_SET(&pdev->dev, NULL); kfree(pdev->dev.dma_mask); err_alloc: @@ -488,11 +488,6 @@ static int platform_drv_probe(struct device *_dev) if (ret && ACPI_HANDLE(_dev)) acpi_dev_pm_detach(_dev, true); - if (drv->prevent_deferred_probe && ret == -EPROBE_DEFER) { - dev_warn(_dev, "probe deferral not supported\n"); - ret = -ENXIO; - } - return ret; } @@ -558,7 +553,8 @@ EXPORT_SYMBOL_GPL(platform_driver_unregister); /** * platform_driver_probe - register driver for non-hotpluggable device * @drv: platform driver structure - * @probe: the driver probe routine, probably from an __init section + * @probe: the driver probe routine, probably from an __init section, + * must not return -EPROBE_DEFER. * * Use this instead of platform_driver_register() when you know the device * is not hotpluggable and has already been registered, and you want to @@ -569,7 +565,8 @@ EXPORT_SYMBOL_GPL(platform_driver_unregister); * into system-on-chip processors, where the controller devices have been * configured as part of board setup. * - * Note that this is incompatible with deferred probing. + * This is incompatible with deferred probing so probe() must not + * return -EPROBE_DEFER. * * Returns zero if the driver registered and bound to a device, else returns * a negative error code and with the driver not registered. @@ -579,12 +576,6 @@ int __init_or_module platform_driver_probe(struct platform_driver *drv, { int retval, code; - /* - * Prevent driver from requesting probe deferral to avoid further - * futile probe attempts. - */ - drv->prevent_deferred_probe = true; - /* make sure driver won't have bind/unbind attributes */ drv->driver.suppress_bind_attrs = true; @@ -677,17 +668,7 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *a, char *buf) { struct platform_device *pdev = to_platform_device(dev); - int len; - - len = of_device_get_modalias(dev, buf, PAGE_SIZE -1); - if (len != -ENODEV) - return len; - - len = acpi_device_modalias(dev, buf, PAGE_SIZE -1); - if (len != -ENODEV) - return len; - - len = snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name); + int len = snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name); return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len; } @@ -709,10 +690,6 @@ static int platform_uevent(struct device *dev, struct kobj_uevent_env *env) if (rc != -ENODEV) return rc; - rc = acpi_device_uevent_modalias(dev, env); - if (rc != -ENODEV) - return rc; - add_uevent_var(env, "MODALIAS=%s%s", PLATFORM_MODULE_PREFIX, pdev->name); return 0; |