[coreboot-gerrit] New patch to review for coreboot: f078705 tegra124: display clock should be initialized before any access

Marc Jones (marc.jones@se-eng.com) gerrit at coreboot.org
Sat Dec 27 07:08:20 CET 2014


Marc Jones (marc.jones at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7950

-gerrit

commit f078705d276b55285c11478ed28c1068e3d879ee
Author: Vince Hsu <vinceh at nvidia.com>
Date:   Fri May 16 12:46:02 2014 +0800

    tegra124: display clock should be initialized before any access
    
    We initialized the dc before the plld's initialization. So some
    of the dc init settings did not took effect. This patch moves
    the clock_display() before the dc init call.
    
    BRANCH=None
    BUG=chrome-os-partner:28128
    TEST=Display works and system boots up on Nyan and Big
    
    Original-Change-Id: If2c40e2526fdf7a6aa33a2684ba324bd0ec40e90
    Original-Signed-off-by: Vince Hsu <vinceh at nvidia.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/200413
    Original-Reviewed-by: Tom Warren <twarren at nvidia.com>
    Original-Reviewed-by: Jimmy Zhang <jimmzhang at nvidia.com>
    Original-Reviewed-by: David Hendricks <dhendrix at chromium.org>
    Original-Reviewed-by: Hung-Te Lin <hungte at chromium.org>
    Original-Commit-Queue: David Hendricks <dhendrix at chromium.org>
    Original-Tested-by: David Hendricks <dhendrix at chromium.org>
    (cherry picked from commit dc3cc253c319c21772c30962d963ec9dfc4944a7)
    Signed-off-by: Marc Jones <marc.jones at se-eng.com>
    
    Change-Id: I021290f4293c740666d460f73fecbe79146896a4
---
 src/soc/nvidia/tegra124/display.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/soc/nvidia/tegra124/display.c b/src/soc/nvidia/tegra124/display.c
index 898e9b3..9ad76f0 100644
--- a/src/soc/nvidia/tegra124/display.c
+++ b/src/soc/nvidia/tegra124/display.c
@@ -135,7 +135,7 @@ static int update_display_mode(struct display_controller *disp_ctrl,
 	       &disp_ctrl->disp.disp_clk_ctrl);
 	printk(BIOS_DEBUG, "%s: PixelClock=%u, ShiftClockDiv=%u\n",
 	       __func__, config->pixel_clock, shift_clock_div);
-	return clock_display(config->pixel_clock * shift_clock_div * 2);
+	return 0;
 }
 
 static void update_window(struct display_controller *disp_ctrl,
@@ -278,6 +278,15 @@ void display_startup(device_t dev)
 	 * light things up here once we're sure it's all working.
 	 */
 
+	/* The plld is programmed with the assumption of the SHIFT_CLK_DIVIDER
+	 * and PIXEL_CLK_DIVIDER are zero (divide by 1). See the
+	 * update_display_mode() for detail.
+	 */
+	if (clock_display(config->pixel_clock * 2)) {
+		printk(BIOS_ERR, "dc: clock init failed\n");
+		return;
+	};
+
 	/* Init dc */
 	if (tegra_dc_init(disp_ctrl)) {
 		printk(BIOS_ERR, "dc: init failed\n");



More information about the coreboot-gerrit mailing list