2 * (c) 2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>
3 * economic rights: Technische Universität Dresden (Germany)
5 * This file is part of TUD:OS and distributed under the terms of the
6 * GNU General Public License 2.
7 * Please see the COPYING-GPL-2 file for details.
10 #include <l4/drivers/lcd.h>
11 #include <l4/sys/cache.h>
17 class Lcd_drv_fb : public Phys_fb
20 bool setup_drv(Prog_args *pa, L4Re::Util::Object_registry *);
24 Phys_fb *Phys_fb::probe()
26 return new Lcd_drv_fb();
31 Lcd_drv_fb::setup_drv(Prog_args *pa, L4Re::Util::Object_registry *)
33 struct arm_lcd_ops *lcd;
35 if (!(lcd = arm_lcd_probe(pa->config_str)))
37 printf("Could not find LCD.\n");
41 printf("Using LCD driver: %s\n", lcd->get_info());
43 _vidmem_start = (l4_addr_t)lcd->get_fb();
47 printf("Driver init failed\n");
51 _vidmem_size = lcd->get_video_mem_size();
52 _vidmem_end = _vidmem_start + _vidmem_size;
54 if (lcd->get_fbinfo((l4re_video_view_info_t *)&_view_info))
56 printf("Failed to get driver framebuffer info\n");
60 _screen_info.width = _view_info.width;
61 _screen_info.height = _view_info.height;
62 _screen_info.flags = L4Re::Video::Goos::F_auto_refresh;
63 _screen_info.pixel_info = _view_info.pixel_info;
64 _view_info.buffer_offset = 0;
70 splash_display(&_view_info, _vidmem_start);
73 //l4_cache_dma_coherent(_vidmem_start, _vidmem_start + _vidmem_size);
74 l4_cache_dma_coherent_full();