summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@nuclecu.unam.mx>1997-08-26 04:36:56 +0000
committerMiguel de Icaza <miguel@nuclecu.unam.mx>1997-08-26 04:36:56 +0000
commitdc603fc745580a6506df1d19c26dc6bdfbabc1f5 (patch)
treedf4de9624c0d9ea246c2aaed7aaf77b042a6c8cd /drivers
parentc3400c21e4beea7195820c6893fc5176c40ff258 (diff)
Disable the console driver when a direct rendering application
is running.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/sgi/char/gconsole.h3
-rw-r--r--drivers/sgi/char/graphics.c6
2 files changed, 7 insertions, 2 deletions
diff --git a/drivers/sgi/char/gconsole.h b/drivers/sgi/char/gconsole.h
index e629fe9fc..7bc9794bb 100644
--- a/drivers/sgi/char/gconsole.h
+++ b/drivers/sgi/char/gconsole.h
@@ -28,3 +28,6 @@ extern void gfx_init (const char **name);
extern void __set_origin (unsigned short offset);
extern void hide_cursor (void);
extern unsigned char vga_font[];
+
+extern void disable_gconsole (void);
+extern void enable_gconsole (void);
diff --git a/drivers/sgi/char/graphics.c b/drivers/sgi/char/graphics.c
index c6741fb65..4ba6361b7 100644
--- a/drivers/sgi/char/graphics.c
+++ b/drivers/sgi/char/graphics.c
@@ -118,6 +118,7 @@ sgi_graphics_ioctl (struct inode *inode, struct file *file, unsigned int cmd, un
* Ok, we now call mmap on this file, which will end up calling
* sgi_graphics_mmap
*/
+ disable_gconsole ();
r = do_mmap (file, (unsigned long)vaddr, cards [board].g_regs_size,
PROT_READ|PROT_WRITE, MAP_FIXED|MAP_PRIVATE, 0);
if (r)
@@ -151,9 +152,10 @@ sgi_graphics_close (struct inode *inode, struct file *file)
rrm_close (inode, file);
/* Was this file handle from the board owner?, clear it */
- if (current == cards [minor].g_owner)
+ if (current == cards [minor].g_owner){
cards [minor].g_owner = 0;
-
+ enable_gconsole ();
+ }
return 0;
}