diff options
author | Tom Rini <trini@konsulko.com> | 2019-07-30 19:19:54 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-07-30 19:19:54 -0400 |
commit | a239147fa2c0c3fe849ccaffd72c4dc4cae2be71 (patch) | |
tree | 2675e87a98bdd76e337e8cafe2b6f9e660b1f72e | |
parent | 476a3143d7c1a94b795a4804ab894893f490cf33 (diff) | |
parent | 42a7ce27d97022f4abbba142dfa00d1450512f0a (diff) | |
download | u-boot-a239147fa2c0c3fe849ccaffd72c4dc4cae2be71.zip u-boot-a239147fa2c0c3fe849ccaffd72c4dc4cae2be71.tar.gz u-boot-a239147fa2c0c3fe849ccaffd72c4dc4cae2be71.tar.bz2 |
Merge tag 'video-for-2019.10-rc1' of https://gitlab.denx.de/u-boot/custodians/u-boot-video
- fix EDID mode filtering
- extend mxc_ipuv3_fb to enable backlight/display
- include fb_base in global_data for DM_VIDEO
- show frame buffer address via board info
as used to be with legacy VIDEO support
-rw-r--r-- | cmd/bdinfo.c | 2 | ||||
-rw-r--r-- | common/edid.c | 4 | ||||
-rw-r--r-- | drivers/video/imx/mxc_ipuv3_fb.c | 20 | ||||
-rw-r--r-- | include/asm-generic/global_data.h | 2 |
4 files changed, 25 insertions, 3 deletions
diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c index f576e22..86c17dc 100644 --- a/cmd/bdinfo.c +++ b/cmd/bdinfo.c @@ -328,7 +328,7 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, print_num("reloc off", gd->reloc_off); print_num("irq_sp", gd->irq_sp); /* irq stack pointer */ print_num("sp start ", gd->start_addr_sp); -#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) +#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO) print_num("FB base ", gd->fb_base); #endif /* diff --git a/common/edid.c b/common/edid.c index f244d26..f99f42d 100644 --- a/common/edid.c +++ b/common/edid.c @@ -202,7 +202,9 @@ int edid_get_timing_validate(u8 *buf, int buf_size, timing); else timing_done = true; - break; + + if (timing_done) + break; } } if (!timing_done) diff --git a/drivers/video/imx/mxc_ipuv3_fb.c b/drivers/video/imx/mxc_ipuv3_fb.c index 29ecac4..c64be38 100644 --- a/drivers/video/imx/mxc_ipuv3_fb.c +++ b/drivers/video/imx/mxc_ipuv3_fb.c @@ -24,6 +24,8 @@ #include "ipu.h" #include "mxcfb.h" #include "ipu_regs.h" +#include "display.h" +#include <panel.h> #include <dm.h> #include <video.h> @@ -609,6 +611,7 @@ void *video_hw_init(void) ret = mxcfb_probe(gpixfmt, gdisp, gmode); debug("Framebuffer at 0x%x\n", (unsigned int)panel.frameAdrs); + gd->fb_base = panel.frameAdrs; return (void *)&panel; } @@ -636,6 +639,10 @@ static int ipuv3_video_probe(struct udevice *dev) { struct video_uc_platdata *plat = dev_get_uclass_platdata(dev); struct video_priv *uc_priv = dev_get_uclass_priv(dev); +#if defined(CONFIG_DISPLAY) + struct udevice *disp_dev; +#endif + struct udevice *panel_dev; u32 fb_start, fb_end; int ret; @@ -654,6 +661,18 @@ static int ipuv3_video_probe(struct udevice *dev) if (ret < 0) return ret; +#if defined(CONFIG_DISPLAY) + ret = uclass_first_device(UCLASS_DISPLAY, &disp_dev); + if (disp_dev) { + ret = display_enable(disp_dev, 16, NULL); + if (ret < 0) + return ret; + } +#endif + ret = uclass_get_device(UCLASS_PANEL, 0, &panel_dev); + if (panel_dev) + panel_enable_backlight(panel_dev); + uc_priv->xsize = gmode->xres; uc_priv->ysize = gmode->yres; uc_priv->bpix = LCD_MAX_LOG2_BPP; @@ -665,6 +684,7 @@ static int ipuv3_video_probe(struct udevice *dev) mmu_set_region_dcache_behaviour(fb_start, fb_end - fb_start, DCACHE_WRITEBACK); video_set_flush_dcache(dev, true); + gd->fb_base = fb_start; return 0; } diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h index 7c22206..5372d5d 100644 --- a/include/asm-generic/global_data.h +++ b/include/asm-generic/global_data.h @@ -33,7 +33,7 @@ typedef struct global_data { /* We cannot bracket this with CONFIG_PCI due to mpc5xxx */ unsigned long pci_clk; unsigned long mem_clk; -#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) +#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO) unsigned long fb_base; /* Base address of framebuffer mem */ #endif #if defined(CONFIG_POST) |