Merge remote-tracking branch 'drm/drm-next' into drm-misc-next
[sfrench/cifs-2.6.git] / drivers / gpu / drm / tegra / hdmi.c
index 6f117628f257ab0421237d663db7a17135ad3d4e..4ee993b1634d9ef6a62ca88b2bdf6121be9288a0 100644 (file)
@@ -1064,7 +1064,6 @@ static int tegra_hdmi_late_register(struct drm_connector *connector)
        struct drm_minor *minor = connector->dev->primary;
        struct dentry *root = connector->debugfs_entry;
        struct tegra_hdmi *hdmi = to_hdmi(output);
-       int err;
 
        hdmi->debugfs_files = kmemdup(debugfs_files, sizeof(debugfs_files),
                                      GFP_KERNEL);
@@ -1074,17 +1073,9 @@ static int tegra_hdmi_late_register(struct drm_connector *connector)
        for (i = 0; i < count; i++)
                hdmi->debugfs_files[i].data = hdmi;
 
-       err = drm_debugfs_create_files(hdmi->debugfs_files, count, root, minor);
-       if (err < 0)
-               goto free;
+       drm_debugfs_create_files(hdmi->debugfs_files, count, root, minor);
 
        return 0;
-
-free:
-       kfree(hdmi->debugfs_files);
-       hdmi->debugfs_files = NULL;
-
-       return err;
 }
 
 static void tegra_hdmi_early_unregister(struct drm_connector *connector)
@@ -1648,6 +1639,7 @@ static irqreturn_t tegra_hdmi_irq(int irq, void *data)
 
 static int tegra_hdmi_probe(struct platform_device *pdev)
 {
+       const char *level = KERN_ERR;
        struct tegra_hdmi *hdmi;
        struct resource *regs;
        int err;
@@ -1686,21 +1678,36 @@ static int tegra_hdmi_probe(struct platform_device *pdev)
        }
 
        hdmi->hdmi = devm_regulator_get(&pdev->dev, "hdmi");
-       if (IS_ERR(hdmi->hdmi)) {
-               dev_err(&pdev->dev, "failed to get HDMI regulator\n");
-               return PTR_ERR(hdmi->hdmi);
+       err = PTR_ERR_OR_ZERO(hdmi->hdmi);
+       if (err) {
+               if (err == -EPROBE_DEFER)
+                       level = KERN_DEBUG;
+
+               dev_printk(level, &pdev->dev,
+                          "failed to get HDMI regulator: %d\n", err);
+               return err;
        }
 
        hdmi->pll = devm_regulator_get(&pdev->dev, "pll");
-       if (IS_ERR(hdmi->pll)) {
-               dev_err(&pdev->dev, "failed to get PLL regulator\n");
-               return PTR_ERR(hdmi->pll);
+       err = PTR_ERR_OR_ZERO(hdmi->pll);
+       if (err) {
+               if (err == -EPROBE_DEFER)
+                       level = KERN_DEBUG;
+
+               dev_printk(level, &pdev->dev,
+                          "failed to get PLL regulator: %d\n", err);
+               return err;
        }
 
        hdmi->vdd = devm_regulator_get(&pdev->dev, "vdd");
-       if (IS_ERR(hdmi->vdd)) {
-               dev_err(&pdev->dev, "failed to get VDD regulator\n");
-               return PTR_ERR(hdmi->vdd);
+       err = PTR_ERR_OR_ZERO(hdmi->vdd);
+       if (err) {
+               if (err == -EPROBE_DEFER)
+                       level = KERN_DEBUG;
+
+               dev_printk(level, &pdev->dev,
+                          "failed to get VDD regulator: %d\n", err);
+               return err;
        }
 
        hdmi->output.dev = &pdev->dev;