Home | History | Annotate | Line # | Download | only in isa
isa_machdep.c revision 1.15.120.1
      1  1.15.120.1     skrll /* $NetBSD: isa_machdep.c,v 1.15.120.1 2009/04/28 07:33:35 skrll Exp $ */
      2         1.1       cgd 
      3         1.1       cgd /*
      4         1.4       cgd  * Copyright (c) 1995, 1996 Carnegie-Mellon University.
      5         1.1       cgd  * All rights reserved.
      6         1.1       cgd  *
      7         1.1       cgd  * Author: Chris G. Demetriou
      8         1.1       cgd  *
      9         1.1       cgd  * Permission to use, copy, modify and distribute this software and
     10         1.1       cgd  * its documentation is hereby granted, provided that both the copyright
     11         1.1       cgd  * notice and this permission notice appear in all copies of the
     12         1.1       cgd  * software, derivative works or modified versions, and any portions
     13         1.1       cgd  * thereof, and that both notices appear in supporting documentation.
     14         1.1       cgd  *
     15         1.1       cgd  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
     16         1.1       cgd  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
     17         1.1       cgd  * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
     18         1.1       cgd  *
     19         1.1       cgd  * Carnegie Mellon requests users of this software to return to
     20         1.1       cgd  *
     21         1.1       cgd  *  Software Distribution Coordinator  or  Software.Distribution (at) CS.CMU.EDU
     22         1.1       cgd  *  School of Computer Science
     23         1.1       cgd  *  Carnegie Mellon University
     24         1.1       cgd  *  Pittsburgh PA 15213-3890
     25         1.1       cgd  *
     26         1.1       cgd  * any improvements or extensions that they make and grant Carnegie the
     27         1.1       cgd  * rights to redistribute these changes.
     28         1.1       cgd  */
     29         1.1       cgd 
     30         1.4       cgd /*
     31         1.6       cgd  * Machine-specific functions for ISA autoconfiguration.
     32         1.4       cgd  */
     33         1.7       cgd 
     34         1.8       cgd #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
     35         1.8       cgd 
     36  1.15.120.1     skrll __KERNEL_RCSID(0, "$NetBSD: isa_machdep.c,v 1.15.120.1 2009/04/28 07:33:35 skrll Exp $");
     37         1.4       cgd 
     38         1.4       cgd #include <sys/types.h>
     39         1.1       cgd #include <sys/param.h>
     40         1.4       cgd #include <sys/time.h>
     41         1.1       cgd #include <sys/systm.h>
     42         1.4       cgd #include <sys/errno.h>
     43         1.1       cgd #include <sys/device.h>
     44        1.13       mrg 
     45        1.13       mrg #include <uvm/uvm_extern.h>
     46         1.1       cgd 
     47         1.1       cgd #include <dev/isa/isavar.h>
     48         1.1       cgd 
     49         1.4       cgd #include "vga_isa.h"
     50         1.4       cgd #if NVGA_ISA
     51        1.11  drochner #include <dev/ic/mc6845reg.h>
     52        1.11  drochner #include <dev/ic/pcdisplayvar.h>
     53        1.10  drochner #include <dev/isa/vga_isavar.h>
     54         1.4       cgd #endif
     55         1.1       cgd 
     56        1.12  drochner #include "pcppi.h"
     57        1.12  drochner #if (NPCPPI > 0)
     58        1.12  drochner #include <dev/isa/pcppivar.h>
     59        1.12  drochner 
     60  1.15.120.1     skrll int isabeepmatch(struct device *, struct cfdata *, void *);
     61  1.15.120.1     skrll void isabeepattach(struct device *, struct device *, void *);
     62        1.12  drochner 
     63        1.15   thorpej CFATTACH_DECL(isabeep, sizeof(struct device),
     64        1.15   thorpej     isabeepmatch, isabeepattach, NULL, NULL);
     65        1.12  drochner 
     66        1.12  drochner static int ppi_attached;
     67        1.12  drochner static pcppi_tag_t ppicookie;
     68        1.12  drochner #endif /* PCPPI */
     69        1.12  drochner 
     70        1.10  drochner int
     71  1.15.120.1     skrll isa_display_console(bus_space_tag_t iot, bus_space_tag_t memt)
     72         1.1       cgd {
     73        1.10  drochner 	int res = ENXIO;
     74        1.10  drochner #if NVGA_ISA
     75        1.10  drochner 	res = vga_isa_cnattach(iot, memt);
     76        1.10  drochner 	if (!res)
     77        1.10  drochner 		return(0);
     78        1.10  drochner #endif
     79        1.10  drochner 	return(res);
     80        1.12  drochner }
     81        1.12  drochner 
     82        1.12  drochner #if (NPCPPI > 0)
     83        1.12  drochner int
     84  1.15.120.1     skrll isabeepmatch(struct device *parent, struct cfdata *match, void *aux)
     85        1.12  drochner {
     86        1.12  drochner 	return (!ppi_attached);
     87        1.12  drochner }
     88        1.12  drochner 
     89        1.12  drochner void
     90  1.15.120.1     skrll isabeepattach(struct device *parent, struct device *self, void *aux)
     91        1.12  drochner {
     92        1.12  drochner 	printf("\n");
     93        1.12  drochner 
     94        1.12  drochner 	ppicookie = ((struct pcppi_attach_args *)aux)->pa_cookie;
     95        1.12  drochner 	ppi_attached = 1;
     96        1.12  drochner }
     97        1.12  drochner #endif
     98        1.12  drochner 
     99        1.12  drochner void
    100  1.15.120.1     skrll isabeep(int pitch, int period)
    101        1.12  drochner {
    102        1.12  drochner #if (NPCPPI > 0)
    103        1.12  drochner 	if (ppi_attached)
    104        1.12  drochner 		pcppi_bell(ppicookie, pitch, period, 0);
    105        1.12  drochner #endif
    106         1.1       cgd }
    107