]> Pileus Git - ~andy/linux/blobdiff - net/rfkill/rfkill-gpio.c
Bluetooth: Refactor loop in l2cap_retransmit_one_frame
[~andy/linux] / net / rfkill / rfkill-gpio.c
index 256c5ddd2d7238a6e1a19fd4997b067029404cbd..128677d69056a209ad4f52c694010d7d979f0966 100644 (file)
@@ -101,6 +101,14 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
        if (!rfkill)
                return -ENOMEM;
 
+       if (pdata->gpio_runtime_setup) {
+               ret = pdata->gpio_runtime_setup(pdev);
+               if (ret) {
+                       pr_warn("%s: can't set up gpio\n", __func__);
+                       return ret;
+               }
+       }
+
        rfkill->pdata = pdata;
 
        len = strlen(pdata->name);
@@ -182,7 +190,10 @@ fail_alloc:
 static int rfkill_gpio_remove(struct platform_device *pdev)
 {
        struct rfkill_gpio_data *rfkill = platform_get_drvdata(pdev);
+       struct rfkill_gpio_platform_data *pdata = pdev->dev.platform_data;
 
+       if (pdata->gpio_runtime_close)
+               pdata->gpio_runtime_close(pdev);
        rfkill_unregister(rfkill->rfkill_dev);
        rfkill_destroy(rfkill->rfkill_dev);
        if (gpio_is_valid(rfkill->pdata->shutdown_gpio))