|
@@ -81,7 +81,6 @@ static int rfkill_gpio_acpi_probe(struct device *dev,
|
|
|
if (!id)
|
|
|
return -ENODEV;
|
|
|
|
|
|
- rfkill->name = dev_name(dev);
|
|
|
rfkill->type = (unsigned)id->driver_data;
|
|
|
|
|
|
return acpi_dev_add_driver_gpios(ACPI_COMPANION(dev),
|
|
@@ -93,12 +92,21 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
|
|
|
struct rfkill_gpio_platform_data *pdata = pdev->dev.platform_data;
|
|
|
struct rfkill_gpio_data *rfkill;
|
|
|
struct gpio_desc *gpio;
|
|
|
+ const char *type_name;
|
|
|
int ret;
|
|
|
|
|
|
rfkill = devm_kzalloc(&pdev->dev, sizeof(*rfkill), GFP_KERNEL);
|
|
|
if (!rfkill)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
+ device_property_read_string(&pdev->dev, "name", &rfkill->name);
|
|
|
+ device_property_read_string(&pdev->dev, "type", &type_name);
|
|
|
+
|
|
|
+ if (!rfkill->name)
|
|
|
+ rfkill->name = dev_name(&pdev->dev);
|
|
|
+
|
|
|
+ rfkill->type = rfkill_find_type(type_name);
|
|
|
+
|
|
|
if (ACPI_HANDLE(&pdev->dev)) {
|
|
|
ret = rfkill_gpio_acpi_probe(&pdev->dev, rfkill);
|
|
|
if (ret)
|
|
@@ -124,10 +132,8 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
|
|
|
|
|
|
rfkill->shutdown_gpio = gpio;
|
|
|
|
|
|
- /* Make sure at-least one of the GPIO is defined and that
|
|
|
- * a name is specified for this instance
|
|
|
- */
|
|
|
- if ((!rfkill->reset_gpio && !rfkill->shutdown_gpio) || !rfkill->name) {
|
|
|
+ /* Make sure at-least one GPIO is defined for this instance */
|
|
|
+ if (!rfkill->reset_gpio && !rfkill->shutdown_gpio) {
|
|
|
dev_err(&pdev->dev, "invalid platform data\n");
|
|
|
return -EINVAL;
|
|
|
}
|