]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
drm/imx: imx-tve: Do not set the regulator voltage
authorFabio Estevam <fabio.estevam@nxp.com>
Wed, 8 Feb 2017 12:47:49 +0000 (10:47 -0200)
committerTim Gardner <tim.gardner@canonical.com>
Wed, 15 Mar 2017 15:32:11 +0000 (10:32 -0500)
BugLink: http://bugs.launchpad.net/bugs/1673118
commit fc12bccda8b6f5c38139eceec9e369ed78091b2b upstream.

Commit deb65870b5d9d ("drm/imx: imx-tve: check the value returned by
regulator_set_voltage()") exposes the following probe issue:

63ff0000.tve supply dac not found, using dummy regulator
imx-drm display-subsystem: failed to bind 63ff0000.tve (ops imx_tve_ops): -22

When the 'dac-supply' is not passed in the device tree a dummy regulator is
used and setting its voltage is not allowed.

To fix this issue, do not set the dac-supply voltage inside the driver
and let its voltage be specified in the device tree.

Print a warning if the the 'dac-supply' voltage has a value different
from 2.75V.

Fixes: deb65870b5d9d ("drm/imx: imx-tve: check the value returned by regulator_set_voltage()")
Suggested-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/gpu/drm/imx/imx-tve.c

index 3b602ee33c443a484e07b47d9e7d5aa280fa94de..0c6bf12d45b10e632f8d53b6ec794ba1ff3afb36 100644 (file)
@@ -98,6 +98,8 @@
 /* TVE_TST_MODE_REG */
 #define TVE_TVDAC_TEST_MODE_MASK       (0x7 << 0)
 
+#define IMX_TVE_DAC_VOLTAGE    2750000
+
 enum {
        TVE_MODE_TVOUT,
        TVE_MODE_VGA,
@@ -621,9 +623,8 @@ static int imx_tve_bind(struct device *dev, struct device *master, void *data)
 
        tve->dac_reg = devm_regulator_get(dev, "dac");
        if (!IS_ERR(tve->dac_reg)) {
-               ret = regulator_set_voltage(tve->dac_reg, 2750000, 2750000);
-               if (ret)
-                       return ret;
+               if (regulator_get_voltage(tve->dac_reg) != IMX_TVE_DAC_VOLTAGE)
+                       dev_warn(dev, "dac voltage is not %d uV\n", IMX_TVE_DAC_VOLTAGE);
                ret = regulator_enable(tve->dac_reg);
                if (ret)
                        return ret;