PCI: qcom: Use gpiod_set_value_cansleep() to allow reset via expanders
authorFabio Estevam <fabio.estevam@nxp.com>
Sun, 16 Jul 2017 22:56:38 +0000 (19:56 -0300)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 24 Aug 2017 16:09:17 +0000 (11:09 -0500)
The reset GPIO can be connected to a I2C or SPI IO expander, which may
sleep, so it is safer to use the gpiod_set_value_cansleep() variant
instead.

Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Stanimir Varbanov <svarbanov@mm-sol.com>
drivers/pci/dwc/pcie-qcom.c

index 26e84a9..e0654c0 100644 (file)
@@ -142,13 +142,13 @@ struct qcom_pcie {
 
 static void qcom_ep_reset_assert(struct qcom_pcie *pcie)
 {
-       gpiod_set_value(pcie->reset, 1);
+       gpiod_set_value_cansleep(pcie->reset, 1);
        usleep_range(PERST_DELAY_US, PERST_DELAY_US + 500);
 }
 
 static void qcom_ep_reset_deassert(struct qcom_pcie *pcie)
 {
-       gpiod_set_value(pcie->reset, 0);
+       gpiod_set_value_cansleep(pcie->reset, 0);
        usleep_range(PERST_DELAY_US, PERST_DELAY_US + 500);
 }