xref: /csrg-svn/sys/luna68k/dev/fb.c (revision 57240)
157219Sakito /*-
257219Sakito  * Copyright (c) 1988 University of Utah.
357219Sakito  * Copyright (c) 1992 OMRON Corporation.
457219Sakito  * Copyright (c) 1990,1992 The Regents of the University of California.
557219Sakito  * All rights reserved.
657219Sakito  *
757219Sakito  * %sccs.include.redist.c%
857219Sakito  *
957219Sakito  * from: hp/dev/grf.c		7.13 (Berkeley) 7/12/92
1057219Sakito  *
11*57240Sakito  *	@(#)fb.c	7.2 (Berkeley) 12/20/92
1257219Sakito  */
1357219Sakito 
1457219Sakito /*
1557219Sakito  * fb.c -- frame-buffer device driver
1657219Sakito  *	by A.Fujita, Dec-16-1992
1757219Sakito  */
1857219Sakito 
1957219Sakito #include <sys/param.h>
2057219Sakito #include <sys/proc.h>
2157219Sakito #include <sys/ioctl.h>
2257219Sakito #include <luna68k/dev/fbio.h>
2357219Sakito 
24*57240Sakito #include "bmc.h"
25*57240Sakito 
2657219Sakito volatile struct fb_rfc *rfcPtr = (struct fb_rfc *) 0xB1000000;
2757219Sakito static   struct fb_rfc  rfcVal;
2857219Sakito 
2957219Sakito int
3057219Sakito fbopen(dev, flags, mode, p)
3157219Sakito 	dev_t dev;
3257219Sakito 	int flags, mode;
3357219Sakito 	struct proc *p;
3457219Sakito {
3557219Sakito 	return(0);
3657219Sakito }
3757219Sakito 
3857219Sakito int
3957219Sakito fbclose(dev, flags, mode, p)
4057219Sakito 	dev_t dev;
4157219Sakito 	int flags, mode;
4257219Sakito 	struct proc *p;
4357219Sakito {
4457219Sakito 	return(0);
4557219Sakito }
4657219Sakito 
4757219Sakito int
4857219Sakito fbioctl(dev, cmd, data, flags, p)
4957219Sakito 	dev_t dev;
5057219Sakito 	int cmd;
5157219Sakito 	caddr_t data;
5257219Sakito 	int flags;
5357219Sakito 	struct proc *p;
5457219Sakito {
5557219Sakito 	struct fb_rfc *rfcp;
5657219Sakito 	int error;
5757219Sakito 
5857219Sakito 	error = 0;
5957219Sakito 	switch (cmd) {
6057219Sakito 
61*57240Sakito 	case FBIO_ON:
62*57240Sakito #if NBMC > 0
63*57240Sakito 		bmd_off();
64*57240Sakito #endif
65*57240Sakito 		break;
6657219Sakito 
67*57240Sakito 	case FBIO_OFF:
68*57240Sakito #if NBMC > 0
69*57240Sakito 		bmd_on();
70*57240Sakito #endif
71*57240Sakito 		break;
72*57240Sakito 
73*57240Sakito 	case FBIOSETRFCT:
7457219Sakito 		*rfcPtr = rfcVal = *((struct fb_rfc *) data);
7557219Sakito 		break;
7657219Sakito 
7757219Sakito 	case FBIOGETRFCT:
7857219Sakito                 *(struct fb_rfc *)data = rfcVal;
7957219Sakito 		break;
8057219Sakito 
8157219Sakito 	default:
8257219Sakito 		error = EINVAL;
8357219Sakito 		break;
8457219Sakito 
8557219Sakito 	}
8657219Sakito 	return(error);
8757219Sakito }
8857219Sakito 
8957219Sakito fb_adjust(hcnt, vcnt)
9057219Sakito 	int hcnt, vcnt;
9157219Sakito {
9257219Sakito 	rfcVal.rfc_hcnt = hcnt;			/* shift left   16 dot */
9357219Sakito 	rfcVal.rfc_vcnt = vcnt;			/* shift down    1 dot */
9457219Sakito 
9557219Sakito 	*rfcPtr = rfcVal;
9657219Sakito }
9757219Sakito 
9857219Sakito int
9957219Sakito fbselect(dev, rw)
10057219Sakito 	dev_t dev;
10157219Sakito 	int rw;
10257219Sakito {
10357219Sakito 	return(0);
10457219Sakito }
10557219Sakito 
10657219Sakito int
10757219Sakito fbmap(dev, off, prot)
10857219Sakito 	dev_t dev;
10957219Sakito 	int off, prot;
11057219Sakito {
11157219Sakito 	return(((u_int) 0xB10C0000 + off) >> PGSHIFT);
11257219Sakito }
113