pcie: host: tegra: request for wake gpio
Bibek Basu [Fri, 24 Jan 2014 06:43:23 +0000 (11:43 +0530)]
request for wake gpio before using it for
wake irq purpose

Bug 1429394

Change-Id: Ifecc930e1ef82da930670ffbda46a9660543294b
Signed-off-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-on: http://git-master/r/358812
(cherry picked from commit 11ff15d0c34b311c24bbd0b4d7e72d15be29b8f1)
Reviewed-on: http://git-master/r/361471
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: Matthew Pedro <mapedro@nvidia.com>

drivers/pci/host/pci-tegra.c

index c8417a0..7ad227e 100644 (file)
@@ -1560,8 +1560,23 @@ static int tegra_pcie_conf_gpios(void)
                gpio_set_value_cansleep(
                        tegra_pcie.plat_data->gpio_x1_slot, 1);
        }
+       if (gpio_is_valid(tegra_pcie.plat_data->gpio_wake)) {
+               err = devm_gpio_request(tegra_pcie.dev,
+                               tegra_pcie.plat_data->gpio_wake, "pcie_wake");
+               if (err < 0) {
+                       pr_err("%s: pcie_wake gpio_request failed %d\n",
+                                       __func__, err);
+                       goto err_x1;
+               }
+               err = gpio_direction_input(
+                               tegra_pcie.plat_data->gpio_wake);
+               if (err < 0) {
+                       pr_err("%s: pcie_wake gpio_direction_input failed %d\n",
+                                       __func__, err);
+                       goto err_x1;
+               }
+       }
        return 0;
-
 err_x1:
        gpio_free(tegra_pcie.plat_data->gpio_x1_slot);
 err_hot_plug: