Skip to content

Commit e32c8c2

Browse files
digetxthierryreding
authored andcommitted
drm/tegra: hdmi: Silence deferred-probe error
Driver fails to probe with -EPROBE_DEFER, which produces a bit noisy error message in KMSG during kernel's boot up. This happens because voltage regulators tend to be probed later than the DRM driver. Signed-off-by: Dmitry Osipenko <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
1 parent 8f839fb commit e32c8c2

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

drivers/gpu/drm/tegra/hdmi.c

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1648,6 +1648,7 @@ static irqreturn_t tegra_hdmi_irq(int irq, void *data)
16481648

16491649
static int tegra_hdmi_probe(struct platform_device *pdev)
16501650
{
1651+
const char *level = KERN_ERR;
16511652
struct tegra_hdmi *hdmi;
16521653
struct resource *regs;
16531654
int err;
@@ -1686,21 +1687,36 @@ static int tegra_hdmi_probe(struct platform_device *pdev)
16861687
}
16871688

16881689
hdmi->hdmi = devm_regulator_get(&pdev->dev, "hdmi");
1689-
if (IS_ERR(hdmi->hdmi)) {
1690-
dev_err(&pdev->dev, "failed to get HDMI regulator\n");
1691-
return PTR_ERR(hdmi->hdmi);
1690+
err = PTR_ERR_OR_ZERO(hdmi->hdmi);
1691+
if (err) {
1692+
if (err == -EPROBE_DEFER)
1693+
level = KERN_DEBUG;
1694+
1695+
dev_printk(level, &pdev->dev,
1696+
"failed to get HDMI regulator: %d\n", err);
1697+
return err;
16921698
}
16931699

16941700
hdmi->pll = devm_regulator_get(&pdev->dev, "pll");
1695-
if (IS_ERR(hdmi->pll)) {
1696-
dev_err(&pdev->dev, "failed to get PLL regulator\n");
1697-
return PTR_ERR(hdmi->pll);
1701+
err = PTR_ERR_OR_ZERO(hdmi->pll);
1702+
if (err) {
1703+
if (err == -EPROBE_DEFER)
1704+
level = KERN_DEBUG;
1705+
1706+
dev_printk(level, &pdev->dev,
1707+
"failed to get PLL regulator: %d\n", err);
1708+
return err;
16981709
}
16991710

17001711
hdmi->vdd = devm_regulator_get(&pdev->dev, "vdd");
1701-
if (IS_ERR(hdmi->vdd)) {
1702-
dev_err(&pdev->dev, "failed to get VDD regulator\n");
1703-
return PTR_ERR(hdmi->vdd);
1712+
err = PTR_ERR_OR_ZERO(hdmi->vdd);
1713+
if (err) {
1714+
if (err == -EPROBE_DEFER)
1715+
level = KERN_DEBUG;
1716+
1717+
dev_printk(level, &pdev->dev,
1718+
"failed to get VDD regulator: %d\n", err);
1719+
return err;
17041720
}
17051721

17061722
hdmi->output.dev = &pdev->dev;

0 commit comments

Comments
 (0)