---
 .../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

Reply via email to