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