xref: /csrg-svn/sys/luna68k/dev/fb.c (revision 57240)
1 /*-
2  * Copyright (c) 1988 University of Utah.
3  * Copyright (c) 1992 OMRON Corporation.
4  * Copyright (c) 1990,1992 The Regents of the University of California.
5  * All rights reserved.
6  *
7  * %sccs.include.redist.c%
8  *
9  * from: hp/dev/grf.c		7.13 (Berkeley) 7/12/92
10  *
11  *	@(#)fb.c	7.2 (Berkeley) 12/20/92
12  */
13 
14 /*
15  * fb.c -- frame-buffer device driver
16  *	by A.Fujita, Dec-16-1992
17  */
18 
19 #include <sys/param.h>
20 #include <sys/proc.h>
21 #include <sys/ioctl.h>
22 #include <luna68k/dev/fbio.h>
23 
24 #include "bmc.h"
25 
26 volatile struct fb_rfc *rfcPtr = (struct fb_rfc *) 0xB1000000;
27 static   struct fb_rfc  rfcVal;
28 
29 int
30 fbopen(dev, flags, mode, p)
31 	dev_t dev;
32 	int flags, mode;
33 	struct proc *p;
34 {
35 	return(0);
36 }
37 
38 int
39 fbclose(dev, flags, mode, p)
40 	dev_t dev;
41 	int flags, mode;
42 	struct proc *p;
43 {
44 	return(0);
45 }
46 
47 int
48 fbioctl(dev, cmd, data, flags, p)
49 	dev_t dev;
50 	int cmd;
51 	caddr_t data;
52 	int flags;
53 	struct proc *p;
54 {
55 	struct fb_rfc *rfcp;
56 	int error;
57 
58 	error = 0;
59 	switch (cmd) {
60 
61 	case FBIO_ON:
62 #if NBMC > 0
63 		bmd_off();
64 #endif
65 		break;
66 
67 	case FBIO_OFF:
68 #if NBMC > 0
69 		bmd_on();
70 #endif
71 		break;
72 
73 	case FBIOSETRFCT:
74 		*rfcPtr = rfcVal = *((struct fb_rfc *) data);
75 		break;
76 
77 	case FBIOGETRFCT:
78                 *(struct fb_rfc *)data = rfcVal;
79 		break;
80 
81 	default:
82 		error = EINVAL;
83 		break;
84 
85 	}
86 	return(error);
87 }
88 
89 fb_adjust(hcnt, vcnt)
90 	int hcnt, vcnt;
91 {
92 	rfcVal.rfc_hcnt = hcnt;			/* shift left   16 dot */
93 	rfcVal.rfc_vcnt = vcnt;			/* shift down    1 dot */
94 
95 	*rfcPtr = rfcVal;
96 }
97 
98 int
99 fbselect(dev, rw)
100 	dev_t dev;
101 	int rw;
102 {
103 	return(0);
104 }
105 
106 int
107 fbmap(dev, off, prot)
108 	dev_t dev;
109 	int off, prot;
110 {
111 	return(((u_int) 0xB10C0000 + off) >> PGSHIFT);
112 }
113