Re: [PATCH v3 2/3] mmc: usdhi6rol0: add support for UHS modes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 






On 04/21/2016 09:53 AM, Arnd Bergmann wrote:
On Thursday 21 April 2016 09:12:52 Lars Persson wrote:
On 04/20/2016 04:53 PM, Lars Persson wrote:
Add a start_signal_voltage_switch() operation to support enabling of
UHS modes.

Signed-off-by: Lars Persson <larper@xxxxxxxx>
---
   drivers/mmc/host/usdhi6rol0.c | 13 +++++++++++++
   1 file changed, 13 insertions(+)

diff --git a/drivers/mmc/host/usdhi6rol0.c b/drivers/mmc/host/usdhi6rol0.c
index 807c06e..2585ea4 100644
--- a/drivers/mmc/host/usdhi6rol0.c
+++ b/drivers/mmc/host/usdhi6rol0.c
@@ -1147,12 +1147,25 @@ static void usdhi6_enable_sdio_irq(struct mmc_host *mmc, int enable)
       }
   }

+static int usdhi6_sig_volt_switch(struct mmc_host *mmc, struct mmc_ios *ios)
+{
+     int ret;
+

To support boards without regulator we need to put a
IS_ERR_OR_NULL(mmc->supply.vqmmc) check here and bail out with return 0.
Missing vqmmc is OK according to our binding document, but treated as an
error by mmc_regulator_set_vqmmc().

mmc_regulator_set_vqmmc() should already take care of handling
all the those cases. In general, it's almost always a bug to use
IS_ERR_OR_NULL(): if you ever feel the need to use it, you should
either fix the code that made the pointer ambiguous or you have
misunderstood the interface.

	Arnd


Yes it should of course be IS_ERR() rather than IS_ERR_OR_NULL().

It is a common pattern in all upstream mmc drivers to not make the call to mmc_regulator_set_vqmmc() when a regulator is missing. We basically want to log errors except for the EINVAL returned in case of a missing regulator.


- Lars
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux