1 /* $NetBSD: ffbvar.h,v 1.9 2010/09/21 03:31:04 macallan Exp $ */ 2 /* $OpenBSD: creatorvar.h,v 1.6 2002/07/30 19:48:15 jason Exp $ */ 3 4 /* 5 * Copyright (c) 2002 Jason L. Wright (jason@thought.net), 6 * Federico G. Schwindt (fgsch@openbsd.org) 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. All advertising materials mentioning features or use of this software 18 * must display the following acknowledgement: 19 * This product includes software developed by Jason L. Wright 20 * 4. The name of the author may not be used to endorse or promote products 21 * derived from this software without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 26 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 27 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 29 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 31 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 * POSSIBILITY OF SUCH DAMAGE. 34 */ 35 36 #include <dev/wscons/wsdisplay_vconsvar.h> 37 38 #define FFB_CREATOR 0 39 #define FFB_AFB 1 40 41 #define FFB_CFFLAG_NOACCEL 0x1 42 43 struct ffb_softc { 44 struct device sc_dv; 45 struct fbdevice sc_fb; 46 bus_space_tag_t sc_bt; 47 bus_space_handle_t sc_dac_h; 48 bus_space_handle_t sc_fbc_h; 49 bus_addr_t sc_addrs[FFB_NREGS]; 50 bus_size_t sc_sizes[FFB_NREGS]; 51 int sc_height, sc_width, sc_linebytes, sc_depth; 52 int sc_nscreens, sc_nreg; 53 int sc_console; 54 int sc_node; 55 int sc_type; 56 u_int sc_dacrev; 57 u_int sc_locked; 58 int sc_mode; 59 int sc_accel, sc_needredraw; 60 int32_t sc_fifo_cache, sc_fg_cache, sc_bg_cache; 61 62 /* virtual console stuff */ 63 struct vcons_data vd; 64 }; 65 66 #define DAC_WRITE(sc,r,v) \ 67 bus_space_write_4((sc)->sc_bt, (sc)->sc_dac_h, (r), (v)) 68 #define DAC_READ(sc,r) \ 69 bus_space_read_4((sc)->sc_bt, (sc)->sc_dac_h, (r)) 70 #define FBC_WRITE(sc,r,v) \ 71 bus_space_write_4((sc)->sc_bt, (sc)->sc_fbc_h, (r), (v)) 72 #define FBC_READ(sc,r) \ 73 bus_space_read_4((sc)->sc_bt, (sc)->sc_fbc_h, (r)) 74 75 void ffb_attach(struct ffb_softc *); 76