Merge git://git.denx.de/u-boot-socfpga
[platform/kernel/u-boot.git] / drivers / video / tegra124 / display.c
index 2f1f0df..4164fa1 100644 (file)
@@ -12,7 +12,6 @@
 #include <errno.h>
 #include <display.h>
 #include <edid.h>
-#include <fdtdec.h>
 #include <lcd.h>
 #include <video.h>
 #include <asm/gpio.h>
@@ -326,13 +325,7 @@ static int display_update_config_from_edid(struct udevice *dp_dev,
                                           int *panel_bppp,
                                           struct display_timing *timing)
 {
-       int ret;
-
-       ret = display_read_timing(dp_dev, timing);
-       if (ret)
-               return ret;
-
-       return 0;
+       return display_read_timing(dp_dev, timing);
 }
 
 static int display_init(struct udevice *dev, void *lcdbase,
@@ -340,7 +333,6 @@ static int display_init(struct udevice *dev, void *lcdbase,
 {
        struct display_plat *disp_uc_plat;
        struct dc_ctlr *dc_ctlr;
-       const void *blob = gd->fdt_blob;
        struct udevice *dp_dev;
        const int href_to_sync = 1, vref_to_sync = 1;
        int panel_bpp = 18;     /* default 18 bits per pixel */
@@ -349,7 +341,7 @@ static int display_init(struct udevice *dev, void *lcdbase,
 
        /*
         * Before we probe the display device (eDP), tell it that this device
-        * is are the source of the display data.
+        * is the source of the display data.
         */
        ret = uclass_find_first_device(UCLASS_DISPLAY, &dp_dev);
        if (ret) {
@@ -369,9 +361,8 @@ static int display_init(struct udevice *dev, void *lcdbase,
                return ret;
        }
 
-       dc_ctlr = (struct dc_ctlr *)fdtdec_get_addr(blob, dev->of_offset,
-                                                   "reg");
-       if (fdtdec_decode_display_timing(blob, dev->of_offset, 0, timing)) {
+       dc_ctlr = (struct dc_ctlr *)dev_read_addr(dev);
+       if (ofnode_decode_display_timing(dev_ofnode(dev), 0, timing)) {
                debug("%s: Failed to decode display timing\n", __func__);
                return -EINVAL;
        }
@@ -422,6 +413,7 @@ static int display_init(struct udevice *dev, void *lcdbase,
                debug("dc: failed to update window\n");
                return ret;
        }
+       debug("%s: ready\n", __func__);
 
        return 0;
 }
@@ -477,7 +469,9 @@ static int tegra124_lcd_probe(struct udevice *dev)
        int ret;
 
        start = get_timer(0);
+       bootstage_start(BOOTSTAGE_ID_ACCUM_LCD, "lcd");
        ret = tegra124_lcd_init(dev, (void *)plat->base, VIDEO_BPP16);
+       bootstage_accum(BOOTSTAGE_ID_ACCUM_LCD);
        debug("LCD init took %lu ms\n", get_timer(start));
        if (ret)
                printf("%s: Error %d\n", __func__, ret);