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