xref: /csrg-svn/sys/luna68k/dev/fb.c (revision 57219)
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.1 (Berkeley) 12/19/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 volatile struct fb_rfc *rfcPtr = (struct fb_rfc *) 0xB1000000;
25 static   struct fb_rfc  rfcVal;
26 
27 int
28 fbopen(dev, flags, mode, p)
29 	dev_t dev;
30 	int flags, mode;
31 	struct proc *p;
32 {
33 	return(0);
34 }
35 
36 int
37 fbclose(dev, flags, mode, p)
38 	dev_t dev;
39 	int flags, mode;
40 	struct proc *p;
41 {
42 	return(0);
43 }
44 
45 int
46 fbioctl(dev, cmd, data, flags, p)
47 	dev_t dev;
48 	int cmd;
49 	caddr_t data;
50 	int flags;
51 	struct proc *p;
52 {
53 	struct fb_rfc *rfcp;
54 	int error;
55 
56 	error = 0;
57 	switch (cmd) {
58 
59 	case FBIOPUTRFCT:
60 
61 		*rfcPtr = rfcVal = *((struct fb_rfc *) data);
62 		break;
63 
64 	case FBIOGETRFCT:
65                 *(struct fb_rfc *)data = rfcVal;
66 		break;
67 
68 /*
69 	case GRFIOCON:
70 		error = grfon(dev);
71 		break;
72 
73 	case GRFIOCOFF:
74 		error = grfoff(dev);
75 		break;
76 
77 	case GRFIOCMAP:
78 		error = grfmmap(dev, (caddr_t *)data, p);
79 		break;
80 
81 	case GRFIOCUNMAP:
82 		error = grfunmmap(dev, *(caddr_t *)data, p);
83 		break;
84  */
85 	default:
86 		error = EINVAL;
87 		break;
88 
89 	}
90 	return(error);
91 }
92 
93 fb_adjust(hcnt, vcnt)
94 	int hcnt, vcnt;
95 {
96 	rfcVal.rfc_hcnt = hcnt;			/* shift left   16 dot */
97 	rfcVal.rfc_vcnt = vcnt;			/* shift down    1 dot */
98 
99 	*rfcPtr = rfcVal;
100 }
101 
102 int
103 fbselect(dev, rw)
104 	dev_t dev;
105 	int rw;
106 {
107 	return(0);
108 }
109 
110 int
111 fbmap(dev, off, prot)
112 	dev_t dev;
113 	int off, prot;
114 {
115 	return(((u_int) 0xB10C0000 + off) >> PGSHIFT);
116 }
117