---
.../shared/milkymist_framebuffer/framebuffer.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/c/src/lib/libbsp/lm32/shared/milkymist_framebuffer/framebuffer.c
b/c/src/lib/libbsp/lm32/shared/milkymist_framebuffer/framebuffer.c
index 0578fe3..575344c 100644
--- a/c/src/lib/libbsp/lm32/shared/milkymist_framebuffer/framebuffer.c
+++ b/c/src/lib/libbsp/lm32/shared/milkymist_framebuffer/framebuffer.c
@@ -36,6 +36,8 @@ static unsigned short int *frontbuffer;
static unsigned short int *backbuffer;
static unsigned short int *lastbuffer;
+static unsigned short int ref_counter = 0;
+
/* screen information for the VGA driver */
static struct fb_var_screeninfo fb_var =
{
@@ -107,7 +109,9 @@ rtems_device_driver frame_buffer_close(
void *arg
)
{
- MM_WRITE(MM_VGA_RESET, VGA_RESET);
+ ref_counter--;
+ if(ref_counter == 0)
+ MM_WRITE(MM_VGA_RESET, VGA_RESET);
return RTEMS_SUCCESSFUL;
}
@@ -117,7 +121,9 @@ rtems_device_driver frame_buffer_open(
void *arg
)
{
- MM_WRITE(MM_VGA_RESET, 0);
+ ref_counter++;
+ if(ref_counter == 1)
+ MM_WRITE(MM_VGA_RESET, 0);
return RTEMS_SUCCESSFUL;
}
--
1.7.0.4
_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode
Twitter: www.twitter.com/milkymistvj
Ideas? http://milkymist.uservoice.com