In case there is no frame buffer driver present in Linux to hand over the
PPI LCD DMA upon boot, the DMA initiated by u-boot to display the splash
screen runs unattended. Therefore always stop the video driver in u-boot
before starting Linux. If people don't want this behavior, then they can
simply stub out the video_stop() function in their board video driver.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
extern void swap_to(int device_id);
#endif
+#ifdef CONFIG_VIDEO
+extern void video_stop(void);
+#endif
+
static char *make_command_line(void)
{
char *dest = (char *)CONFIG_LINUX_CMDLINE_ADDR;
swap_to(FLASH);
#endif
+#ifdef CONFIG_VIDEO
+ /* maybe this should be standardized and moved to bootm ... */
+ video_stop();
+#endif
+
appl = (int (*)(char *))images->ep;
printf("Starting Kernel at = %p\n", appl);
}
+void video_stop(void)
+{
+ DisablePPI();
+ DisableDMA();
+ DisableTIMER0();
+ DisableTIMER1();
+#ifdef CONFIG_MK_BF527_EZKIT_REV_2_1
+ lq035q1_control(LQ035_SHUT_CTL, LQ035_SHUT);
+#endif
+}
+
void video_putc(const char c)
{
}
bfin_write_PPI_CONTROL(0x0083);
}
+void video_stop(void)
+{
+ bfin_write_PPI_CONTROL(0);
+ bfin_write_DMA0_CONFIG(0);
+}
+
int drv_video_init(void)
{
struct stdio_dev videodev;
return 0;
}
+void video_stop(void)
+{
+ DisablePPI();
+ DisableDMA();
+}
+
static void dma_bitblit(void *dst, fastimage_t *logo, int x, int y)
{
if (dcache_status())
return 0;
}
+void video_stop(void)
+{
+ DisablePPI();
+ DisableDMA();
+}
+
static void dma_bitblit(void *dst, fastimage_t *logo, int x, int y)
{
if (dcache_status())