From: Erik Gilling Date: Fri, 12 Nov 2010 01:39:04 +0000 (-0800) Subject: video: tegra: add option to autodetect bitdepth from bootloader X-Git-Tag: firefly_0821_release~9833^2~111^2~2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7a58a0e87e31fd5805b3bb8f0318022e488caebf;p=firefly-linux-kernel-4.4.55.git video: tegra: add option to autodetect bitdepth from bootloader Change-Id: I5f17ab96323b3d313473622f572006d01b4716f7 Signed-off-by: Erik Gilling --- diff --git a/arch/arm/mach-tegra/include/mach/dc.h b/arch/arm/mach-tegra/include/mach/dc.h index 78a303e12634..7b674220c3ee 100644 --- a/arch/arm/mach-tegra/include/mach/dc.h +++ b/arch/arm/mach-tegra/include/mach/dc.h @@ -142,7 +142,7 @@ struct tegra_fb_data { int xres; int yres; - int bits_per_pixel; + int bits_per_pixel; /* -1 means autodetect */ unsigned long flags; }; diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c index 0011cfbb726c..1c54da6672a5 100644 --- a/drivers/video/tegra/dc/dc.c +++ b/drivers/video/tegra/dc/dc.c @@ -1046,6 +1046,17 @@ static int tegra_dc_probe(struct nvhost_device *ndev) dev_info(&ndev->dev, "probed\n"); if (dc->pdata->fb) { + if (dc->pdata->fb->bits_per_pixel == -1) { + unsigned long fmt; + tegra_dc_writel(dc, + WINDOW_A_SELECT << dc->pdata->fb->win, + DC_CMD_DISPLAY_WINDOW_HEADER); + + fmt = tegra_dc_readl(dc, DC_WIN_COLOR_DEPTH); + dc->pdata->fb->bits_per_pixel = + tegra_dc_fmt_bpp(fmt); + } + dc->fb = tegra_fb_register(ndev, dc, dc->pdata->fb, fb_mem); if (IS_ERR_OR_NULL(dc->fb)) dc->fb = NULL;