|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1992 Carnegie Mellon University ! 4: * All Rights Reserved. ! 5: * ! 6: * Permission to use, copy, modify and distribute this software and its ! 7: * documentation is hereby granted, provided that both the copyright ! 8: * notice and this permission notice appear in all copies of the ! 9: * software, derivative works or modified versions, and any portions ! 10: * thereof, and that both notices appear in supporting documentation. ! 11: * ! 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 15: * ! 16: * Carnegie Mellon requests users of this software to return to ! 17: * ! 18: * Software Distribution Coordinator or [email protected] ! 19: * School of Computer Science ! 20: * Carnegie Mellon University ! 21: * Pittsburgh PA 15213-3890 ! 22: * ! 23: * any improvements or extensions that they make and grant Carnegie Mellon ! 24: * the rights to redistribute these changes. ! 25: */ ! 26: /* ! 27: * File: sfb_misc.c ! 28: * Author: Alessandro Forin, Carnegie Mellon University ! 29: * Date: 11/92 ! 30: * ! 31: * Driver for the PMAGB-BA smart color framebuffer ! 32: * ! 33: */ ! 34: ! 35: #include <sfb.h> ! 36: #if (NSFB > 0) ! 37: #include <platforms.h> ! 38: ! 39: /* ! 40: * NOTE: This driver relies heavily on the pm one, as well as the cfb. ! 41: */ ! 42: ! 43: #include <device/device_types.h> ! 44: #include <chips/screen_defs.h> ! 45: #include <chips/pm_defs.h> ! 46: typedef pm_softc_t sfb_softc_t; ! 47: ! 48: #include <chips/bt459.h> ! 49: #define bt459 cursor_registers ! 50: ! 51: #ifdef DECSTATION ! 52: #include <mips/PMAX/pmagb_ba.h> ! 53: #endif ! 54: ! 55: #ifdef FLAMINGO ! 56: #include <mips/PMAX/pmagb_ba.h> /* XXXX */ ! 57: #endif ! 58: ! 59: /* ! 60: * Initialize color map, for kernel use ! 61: */ ! 62: #define sfb_init_colormap cfb_init_colormap ! 63: ! 64: /* ! 65: * Position cursor ! 66: */ ! 67: sfb_pos_cursor( ! 68: bt459_regmap_t *regs, ! 69: int x, ! 70: int y) ! 71: { ! 72: bt459_pos_cursor( regs, x + 368 - 219, y + 37 - 34); ! 73: } ! 74: ! 75: /* ! 76: * Large viz small cursor ! 77: */ ! 78: #define sfb_small_cursor_to_large cfb_small_cursor_to_large ! 79: ! 80: /* ! 81: * Device-specific set status ! 82: */ ! 83: #define sfb_set_status cfb_set_status ! 84: ! 85: /* ! 86: * Hardware initialization ! 87: */ ! 88: sfb_init_screen( ! 89: sfb_softc_t *sfb) ! 90: { ! 91: bt459_init( sfb->bt459, ! 92: sfb->bt459 + (SFB_OFFSET_RESET - SFB_OFFSET_BT459), ! 93: 4 /* 4:1 MUX */); ! 94: } ! 95: ! 96: /* ! 97: * Do what's needed when X exits ! 98: */ ! 99: sfb_soft_reset( ! 100: screen_softc_t sc) ! 101: { ! 102: sfb_softc_t *sfb = (sfb_softc_t*) sc->hw_state; ! 103: user_info_t *up = sc->up; ! 104: extern cursor_sprite_t dc503_default_cursor; ! 105: ! 106: /* ! 107: * Restore params in mapped structure ! 108: */ ! 109: pm_init_screen_params(sc,up); ! 110: up->row = up->max_row - 1; ! 111: ! 112: up->dev_dep_2.pm.x26 = 2; /* you do not want to know */ ! 113: up->dev_dep_1.pm.x18 = (short*)2; ! 114: ! 115: /* ! 116: * Restore RAMDAC chip to default state ! 117: */ ! 118: sfb_init_screen(sfb); ! 119: ! 120: /* ! 121: * Load kernel's cursor sprite: just use the same pmax one ! 122: */ ! 123: sfb_small_cursor_to_large(up, dc503_default_cursor); ! 124: bt459_cursor_sprite(sfb->bt459, up->dev_dep_2.pm.cursor_sprite); ! 125: ! 126: /* ! 127: * Color map and cursor color ! 128: */ ! 129: sfb_init_colormap(sc); ! 130: } ! 131: ! 132: ! 133: #endif (NSFB > 0)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.