/* SPDX-License-Identifier: GPL-2.0-only */1/*****************************************************************************23AudioScience HPI driver4Copyright (C) 1997-2011 AudioScience Inc. <[email protected]>567Host Interface module for an ASI6205 based8bus mastering PCI adapter.910Copyright AudioScience, Inc., 200311******************************************************************************/1213#ifndef _HPI6205_H_14#define _HPI6205_H_1516#include "hpi_internal.h"1718/***********************************************************19Defines used for basic messaging20************************************************************/21#define H620_HIF_RESET 022#define H620_HIF_IDLE 123#define H620_HIF_GET_RESP 224#define H620_HIF_DATA_DONE 325#define H620_HIF_DATA_MASK 0x1026#define H620_HIF_SEND_DATA 0x1427#define H620_HIF_GET_DATA 0x1528#define H620_HIF_UNKNOWN 0x0000ffff2930/***********************************************************31Types used for mixer control caching32************************************************************/3334#define H620_MAX_ISTREAMS 3235#define H620_MAX_OSTREAMS 3236#define HPI_NMIXER_CONTROLS 20483738/*********************************************************************39This is used for dynamic control cache allocation40**********************************************************************/41struct controlcache_6205 {42u32 number_of_controls;43u32 physical_address32;44u32 size_in_bytes;45};4647/*********************************************************************48This is used for dynamic allocation of async event array49**********************************************************************/50struct async_event_buffer_6205 {51u32 physical_address32;52u32 spare;53struct hpi_fifo_buffer b;54};5556/***********************************************************57The Host located memory buffer that the 6205 will bus master58in and out of.59************************************************************/60#define HPI6205_SIZEOF_DATA (16*1024)6162struct message_buffer_6205 {63struct hpi_message message;64char data[256];65};6667struct response_buffer_6205 {68struct hpi_response response;69char data[256];70};7172union buffer_6205 {73struct message_buffer_6205 message_buffer;74struct response_buffer_6205 response_buffer;75u8 b_data[HPI6205_SIZEOF_DATA];76};7778struct bus_master_interface {79u32 host_cmd;80u32 dsp_ack;81u32 transfer_size_in_bytes;82union buffer_6205 u;83struct controlcache_6205 control_cache;84struct async_event_buffer_6205 async_buffer;85struct hpi_hostbuffer_status86instream_host_buffer_status[H620_MAX_ISTREAMS];87struct hpi_hostbuffer_status88outstream_host_buffer_status[H620_MAX_OSTREAMS];89};9091#endif929394