- 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
 -----BEGIN PGP SIGNATURE-----
 
 iGwEABECACwWIQSC4hxrSoIUVfFO0kRM6ATMmsalXAUCXUCEtQ4cYWd1c3RAZGVu
 eC5kZQAKCRBM6ATMmsalXLYhAJ4gSCCx54ubBmbsZ1cueGk59E/SkwCdFl7nfLqz
 Vy/HbBVAUkzD4JVOR0U=
 =7rSM
 -----END PGP SIGNATURE-----

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
This commit is contained in:
Tom Rini 2019-07-30 19:19:54 -04:00
commit a239147fa2
4 changed files with 25 additions and 3 deletions

View File

@ -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("reloc off", gd->reloc_off);
print_num("irq_sp", gd->irq_sp); /* irq stack pointer */ print_num("irq_sp", gd->irq_sp); /* irq stack pointer */
print_num("sp start ", gd->start_addr_sp); 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); print_num("FB base ", gd->fb_base);
#endif #endif
/* /*

View File

@ -202,6 +202,8 @@ int edid_get_timing_validate(u8 *buf, int buf_size,
timing); timing);
else else
timing_done = true; timing_done = true;
if (timing_done)
break; break;
} }
} }

View File

@ -24,6 +24,8 @@
#include "ipu.h" #include "ipu.h"
#include "mxcfb.h" #include "mxcfb.h"
#include "ipu_regs.h" #include "ipu_regs.h"
#include "display.h"
#include <panel.h>
#include <dm.h> #include <dm.h>
#include <video.h> #include <video.h>
@ -609,6 +611,7 @@ void *video_hw_init(void)
ret = mxcfb_probe(gpixfmt, gdisp, gmode); ret = mxcfb_probe(gpixfmt, gdisp, gmode);
debug("Framebuffer at 0x%x\n", (unsigned int)panel.frameAdrs); debug("Framebuffer at 0x%x\n", (unsigned int)panel.frameAdrs);
gd->fb_base = panel.frameAdrs;
return (void *)&panel; 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_uc_platdata *plat = dev_get_uclass_platdata(dev);
struct video_priv *uc_priv = dev_get_uclass_priv(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; u32 fb_start, fb_end;
int ret; int ret;
@ -654,6 +661,18 @@ static int ipuv3_video_probe(struct udevice *dev)
if (ret < 0) if (ret < 0)
return ret; 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->xsize = gmode->xres;
uc_priv->ysize = gmode->yres; uc_priv->ysize = gmode->yres;
uc_priv->bpix = LCD_MAX_LOG2_BPP; 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, mmu_set_region_dcache_behaviour(fb_start, fb_end - fb_start,
DCACHE_WRITEBACK); DCACHE_WRITEBACK);
video_set_flush_dcache(dev, true); video_set_flush_dcache(dev, true);
gd->fb_base = fb_start;
return 0; return 0;
} }

View File

@ -33,7 +33,7 @@ typedef struct global_data {
/* We cannot bracket this with CONFIG_PCI due to mpc5xxx */ /* We cannot bracket this with CONFIG_PCI due to mpc5xxx */
unsigned long pci_clk; unsigned long pci_clk;
unsigned long mem_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 */ unsigned long fb_base; /* Base address of framebuffer mem */
#endif #endif
#if defined(CONFIG_POST) #if defined(CONFIG_POST)