From: Thierry Reding treding@nvidia.com
The VDD supply is only needed to supply power to eDP panels connected to DPAUX. Technically that supply should be dealt with in the panel driver, but for backwards-compatibility we need to keep this around anyway.
Also as a bit of background: the reason for why this supply is attached to DPAUX is to make sure the panel is properly powered early on so that it can generate a hotplug pulse at the appropriate time. This may no longer be required given the support for deferred fbdev setup that was "recently" introduced in DRM/KMS.
Signed-off-by: Thierry Reding treding@nvidia.com --- drivers/gpu/drm/tegra/dpaux.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/tegra/dpaux.c b/drivers/gpu/drm/tegra/dpaux.c index ee4180d8db14..65c389d9c85d 100644 --- a/drivers/gpu/drm/tegra/dpaux.c +++ b/drivers/gpu/drm/tegra/dpaux.c @@ -485,11 +485,16 @@ static int tegra_dpaux_probe(struct platform_device *pdev) return err; }
- dpaux->vdd = devm_regulator_get(&pdev->dev, "vdd"); + dpaux->vdd = devm_regulator_get_optional(&pdev->dev, "vdd"); if (IS_ERR(dpaux->vdd)) { - dev_err(&pdev->dev, "failed to get VDD supply: %ld\n", - PTR_ERR(dpaux->vdd)); - return PTR_ERR(dpaux->vdd); + if (PTR_ERR(dpaux->vdd) != -ENODEV) { + if (PTR_ERR(dpaux->vdd) != -EPROBE_DEFER) + dev_err(&pdev->dev, + "failed to get VDD supply: %ld\n", + PTR_ERR(dpaux->vdd)); + + return PTR_ERR(dpaux->vdd); + } }
platform_set_drvdata(pdev, dpaux);