/*****************************************************************************12AudioScience HPI driver3Copyright (C) 1997-2010 AudioScience Inc. <[email protected]>45This program is free software; you can redistribute it and/or modify6it under the terms of version 2 of the GNU General Public License as7published by the Free Software Foundation;89This program is distributed in the hope that it will be useful,10but WITHOUT ANY WARRANTY; without even the implied warranty of11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12GNU General Public License for more details.1314You should have received a copy of the GNU General Public License15along with this program; if not, write to the Free Software16Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1718Host Interface module for an ASI6205 based19bus mastering PCI adapter.2021Copyright AudioScience, Inc., 200322******************************************************************************/2324#ifndef _HPI6205_H_25#define _HPI6205_H_2627#include "hpi_internal.h"2829/***********************************************************30Defines used for basic messaging31************************************************************/32#define H620_HIF_RESET 033#define H620_HIF_IDLE 134#define H620_HIF_GET_RESP 235#define H620_HIF_DATA_DONE 336#define H620_HIF_DATA_MASK 0x1037#define H620_HIF_SEND_DATA 0x1438#define H620_HIF_GET_DATA 0x1539#define H620_HIF_UNKNOWN 0x0000ffff4041/***********************************************************42Types used for mixer control caching43************************************************************/4445#define H620_MAX_ISTREAMS 3246#define H620_MAX_OSTREAMS 3247#define HPI_NMIXER_CONTROLS 20484849/*********************************************************************50This is used for dynamic control cache allocation51**********************************************************************/52struct controlcache_6205 {53u32 number_of_controls;54u32 physical_address32;55u32 size_in_bytes;56};5758/*********************************************************************59This is used for dynamic allocation of async event array60**********************************************************************/61struct async_event_buffer_6205 {62u32 physical_address32;63u32 spare;64struct hpi_fifo_buffer b;65};6667/***********************************************************68The Host located memory buffer that the 6205 will bus master69in and out of.70************************************************************/71#define HPI6205_SIZEOF_DATA (16*1024)72struct bus_master_interface {73u32 host_cmd;74u32 dsp_ack;75u32 transfer_size_in_bytes;76union {77struct hpi_message_header message_buffer;78struct hpi_response_header response_buffer;79u8 b_data[HPI6205_SIZEOF_DATA];80} u;81struct controlcache_6205 control_cache;82struct async_event_buffer_6205 async_buffer;83struct hpi_hostbuffer_status84instream_host_buffer_status[H620_MAX_ISTREAMS];85struct hpi_hostbuffer_status86outstream_host_buffer_status[H620_MAX_OSTREAMS];87};8889#endif909192