Annotation of sys/dev/pci/auixpvar.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: auixpvar.h,v 1.1 2005/08/07 20:08:45 mickey Exp $ */
! 2: /* $NetBSD: auixpvar.h,v 1.3 2005/01/12 15:54:34 kent Exp $*/
! 3:
! 4: /*
! 5: * Copyright (c) 2004, 2005 Reinoud Zandijk <reinoud@netbsd.org>
! 6: * All rights reserved.
! 7: *
! 8: * Redistribution and use in source and binary forms, with or without
! 9: * modification, are permitted provided that the following conditions
! 10: * are met:
! 11: * 1. Redistributions of source code must retain the above copyright
! 12: * notice, this list of conditions and the following disclaimer.
! 13: * 2. The name of the author may not be used to endorse or promote products
! 14: * derived from this software without specific prior written permission.
! 15: * 3. All advertising materials mentioning features or use of this software
! 16: * must display the following acknowledgement:
! 17: * This product includes software developed by the NetBSD
! 18: * Foundation, Inc. and its contributors.
! 19: * 4. Neither the name of The NetBSD Foundation nor the names of its
! 20: * contributors may be used to endorse or promote products derived
! 21: * 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 WARRANTIES
! 25: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
! 26: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
! 27: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
! 28: * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
! 29: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
! 30: * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
! 31: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 32: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 33: * SUCH DAMAGE.
! 34: */
! 35:
! 36:
! 37: /*
! 38: * NetBSD audio driver for ATI IXP-{150,200,...} audio driver hardware.
! 39: */
! 40:
! 41: #define DMA_DESC_CHAIN 255
! 42:
! 43: /* audio format structure describing our hardware capabilities */
! 44: /* XXX min and max sample rates are for AD1888 codec XXX */
! 45: #define AUIXP_NFORMATS 6
! 46:
! 47: #define AUIXP_MINRATE 7000
! 48: #define AUIXP_MAXRATE 48000
! 49:
! 50: /* auixp structures; used to record alloced DMA space */
! 51: struct auixp_dma {
! 52: /* bus mappings */
! 53: bus_dmamap_t map;
! 54: caddr_t addr;
! 55: bus_dma_segment_t segs[1];
! 56: int nsegs;
! 57: size_t size;
! 58:
! 59: /* audio feeder */
! 60: void (*intr)(void *);
! 61: void *intrarg;
! 62:
! 63: /* status and setup bits */
! 64: int running;
! 65: u_int32_t linkptr;
! 66: u_int32_t dma_enable_bit;
! 67:
! 68: /* linked list of all mapped area's */
! 69: SLIST_ENTRY(auixp_dma) dma_chain;
! 70: };
! 71:
! 72: struct auixp_codec {
! 73: struct auixp_softc *sc;
! 74:
! 75: int present;
! 76: int codec_nr;
! 77:
! 78: struct ac97_codec_if *codec_if;
! 79: struct ac97_host_if host_if;
! 80: enum ac97_host_flags codec_flags;
! 81: };
! 82:
! 83: struct auixp_softc {
! 84: struct device sc_dev;
! 85: audio_device_t sc_audev;
! 86: void *sc_ih;
! 87:
! 88: /* card properties */
! 89: int has_4ch, has_6ch, is_fixed, has_spdif;
! 90:
! 91: /* bus tags */
! 92: bus_space_tag_t sc_iot;
! 93: bus_space_handle_t sc_ioh;
! 94: bus_addr_t sc_iob;
! 95: bus_size_t sc_ios;
! 96:
! 97: pcitag_t sc_tag;
! 98: pci_chipset_tag_t sc_pct;
! 99:
! 100: bus_dma_tag_t sc_dmat;
! 101:
! 102: /* DMA business */
! 103: struct auixp_dma *sc_output_dma;
! 104: struct auixp_dma *sc_input_dma;
! 105:
! 106: /* list of allocated DMA pieces */
! 107: SLIST_HEAD(auixp_dma_list, auixp_dma) sc_dma_list;
! 108:
! 109: /* codecs */
! 110: int sc_num_codecs;
! 111: struct auixp_codec sc_codec[ATI_IXP_CODECS];
! 112: int sc_codec_not_ready_bits;
! 113:
! 114: /* last set audio parameters */
! 115: struct audio_params sc_play_params;
! 116: struct audio_params sc_rec_params;
! 117:
! 118: /* suspend/resume */
! 119: void *powerhook;
! 120: u_int16_t *savemem;
! 121: };
CVSweb