[OpenBIOS] [PATCH 16/20] video_common.c: remove init_video() function
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Sat Jun 15 10:38:54 CEST 2013
Finally we now have a set of common video routines in video_common.c with per
bus initialisers for SBus and PCI. Hence we can remove the now obsolete
init_video() function.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
---
openbios-devel/arch/sparc32/openbios.c | 1 -
openbios-devel/drivers/vga_vbe.c | 13 +++++++--
openbios-devel/include/libopenbios/video.h | 3 --
openbios-devel/libopenbios/video_common.c | 41 +++-------------------------
4 files changed, 15 insertions(+), 43 deletions(-)
diff --git a/openbios-devel/arch/sparc32/openbios.c b/openbios-devel/arch/sparc32/openbios.c
index 84dd3f6..0437b9c 100644
--- a/openbios-devel/arch/sparc32/openbios.c
+++ b/openbios-devel/arch/sparc32/openbios.c
@@ -876,7 +876,6 @@ arch_init( void )
#ifdef CONFIG_DRIVER_SBUS
#ifdef CONFIG_DEBUG_CONSOLE_VIDEO
setup_video(hwdef->tcx_base + 0x00800000ULL, (unsigned long)vmem);
- init_video();
#endif
ob_sbus_init(hwdef->iommu_base + 0x1000ULL, qemu_machine_type);
#endif
diff --git a/openbios-devel/drivers/vga_vbe.c b/openbios-devel/drivers/vga_vbe.c
index 33765b6..75b232e 100644
--- a/openbios-devel/drivers/vga_vbe.c
+++ b/openbios-devel/drivers/vga_vbe.c
@@ -27,6 +27,7 @@
#include "drivers/vga.h"
#include "libopenbios/video.h"
#include "libopenbios/ofmem.h"
+#include "packages/video.h"
/* VGA init. We use the Bochs VESA VBE extensions */
#define VBE_DISPI_INDEX_ID 0x0
@@ -125,6 +126,7 @@ void vga_vbe_init(const char *path, unsigned long fb, uint32_t fb_size,
phys_addr_t phys;
phandle_t ph, chosen, aliases, options;
char buf[6];
+ int size;
phys = fb;
@@ -152,6 +154,8 @@ void vga_vbe_init(const char *path, unsigned long fb, uint32_t fb_size,
set_int_property(ph, "linebytes", VIDEO_DICT_VALUE(video.rb));
set_int_property(ph, "address", (u32)(fb & ~0x0000000F));
+ molvideo_init();
+
chosen = find_dev("/chosen");
push_str(path);
fword("open-dev");
@@ -168,7 +172,6 @@ void vga_vbe_init(const char *path, unsigned long fb, uint32_t fb_size,
if (rom_size >= 8) {
const char *p;
- int size;
p = (const char *)rom;
if (p[0] == 'N' && p[1] == 'D' && p[2] == 'R' && p[3] == 'V') {
@@ -178,5 +181,11 @@ void vga_vbe_init(const char *path, unsigned long fb, uint32_t fb_size,
}
}
- init_video();
+#if defined(CONFIG_OFMEM) && defined(CONFIG_DRIVER_PCI)
+ size = ((VIDEO_DICT_VALUE(video.h) * VIDEO_DICT_VALUE(video.rb)) + 0xfff) & ~0xfff;
+
+ ofmem_claim_phys( video.mphys, size, 0 );
+ ofmem_claim_virt( VIDEO_DICT_VALUE(video.mvirt), size, 0 );
+ ofmem_map( video.mphys, VIDEO_DICT_VALUE(video.mvirt), size, ofmem_arch_io_translation_mode(video.mphys) );
+#endif
}
diff --git a/openbios-devel/include/libopenbios/video.h b/openbios-devel/include/libopenbios/video.h
index cf2b5db..5e9abb7 100644
--- a/openbios-devel/include/libopenbios/video.h
+++ b/openbios-devel/include/libopenbios/video.h
@@ -20,7 +20,6 @@
#define VGA_DEFAULT_LINEBYTES (VGA_DEFAULT_WIDTH*((VGA_DEFAULT_DEPTH+7)/8))
void setup_video(phys_addr_t phys, ucell virt);
-void init_video(void);
unsigned long video_get_color(int col_ind);
void video_set_color(int ind, unsigned long color);
void video_mask_blit(void);
@@ -28,8 +27,6 @@ void video_invert_rect(void);
void video_fill_rect(void);
extern struct video_info {
- int has_video;
-
volatile ihandle_t *ih;
volatile phys_addr_t mphys;
volatile ucell *mvirt;
diff --git a/openbios-devel/libopenbios/video_common.c b/openbios-devel/libopenbios/video_common.c
index 83270a0..748742f 100644
--- a/openbios-devel/libopenbios/video_common.c
+++ b/openbios-devel/libopenbios/video_common.c
@@ -31,7 +31,7 @@ unsigned long
video_get_color( int col_ind )
{
unsigned long col;
- if( !video.has_video || col_ind < 0 || col_ind > 255 )
+ if( !VIDEO_DICT_VALUE(video.ih) || col_ind < 0 || col_ind > 255 )
return 0;
if( VIDEO_DICT_VALUE(video.depth) == 8 )
return col_ind;
@@ -48,7 +48,7 @@ video_set_color( int ind, unsigned long color )
{
xt_t hw_xt = 0;
- if( !video.has_video || ind < 0 || ind > 255 )
+ if( !VIDEO_DICT_VALUE(video.ih) || ind < 0 || ind > 255 )
return;
video.pal[ind] = color;
@@ -138,7 +138,7 @@ video_invert_rect( void )
bgcolor = video_get_color(bgcolor);
fgcolor = video_get_color(fgcolor);
- if (!video.has_video || x < 0 || y < 0 || w <= 0 || h <= 0 ||
+ if (!VIDEO_DICT_VALUE(video.ih) || x < 0 || y < 0 || w <= 0 || h <= 0 ||
x + w > VIDEO_DICT_VALUE(video.w) || y + h > VIDEO_DICT_VALUE(video.h))
return;
@@ -190,7 +190,7 @@ video_fill_rect(void)
char *pp;
unsigned long col = video_get_color(col_ind);
- if (!video.has_video || x < 0 || y < 0 || w <= 0 || h <= 0 ||
+ if (!VIDEO_DICT_VALUE(video.ih) || x < 0 || y < 0 || w <= 0 || h <= 0 ||
x + w > VIDEO_DICT_VALUE(video.w) || y + h > VIDEO_DICT_VALUE(video.h))
return;
@@ -279,36 +279,3 @@ void setup_video(phys_addr_t phys, ucell virt)
}
#endif
}
-
-void
-init_video(void)
-{
-#if defined(CONFIG_OFMEM) && defined(CONFIG_DRIVER_PCI)
- int size;
-#endif
- phandle_t ph=0, saved_ph=0;
-
- saved_ph = get_cur_dev();
- while( (ph=dt_iterate_type(ph, "display")) ) {
- video.has_video = 1;
-
- set_int_property( ph, "width", VIDEO_DICT_VALUE(video.w) );
- set_int_property( ph, "height", VIDEO_DICT_VALUE(video.h) );
- set_int_property( ph, "depth", VIDEO_DICT_VALUE(video.depth) );
- set_int_property( ph, "linebytes", VIDEO_DICT_VALUE(video.rb) );
- set_int_property( ph, "address", VIDEO_DICT_VALUE(video.mvirt) );
-
- activate_dev(ph);
-
- molvideo_init();
- }
- activate_dev(saved_ph);
-
-#if defined(CONFIG_OFMEM) && defined(CONFIG_DRIVER_PCI)
- size = ((VIDEO_DICT_VALUE(video.h) * VIDEO_DICT_VALUE(video.rb)) + 0xfff) & ~0xfff;
-
- ofmem_claim_phys( video.mphys, size, 0 );
- ofmem_claim_virt( VIDEO_DICT_VALUE(video.mvirt), size, 0 );
- ofmem_map( video.mphys, VIDEO_DICT_VALUE(video.mvirt), size, ofmem_arch_io_translation_mode(video.mphys) );
-#endif
-}
--
1.7.10.4
More information about the OpenBIOS
mailing list