Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/sound/pci/asihpi/hpi6205.h
10817 views
1
/*****************************************************************************
2
3
AudioScience HPI driver
4
Copyright (C) 1997-2010 AudioScience Inc. <[email protected]>
5
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of version 2 of the GNU General Public License as
8
published by the Free Software Foundation;
9
10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU General Public License for more details.
14
15
You should have received a copy of the GNU General Public License
16
along with this program; if not, write to the Free Software
17
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
19
Host Interface module for an ASI6205 based
20
bus mastering PCI adapter.
21
22
Copyright AudioScience, Inc., 2003
23
******************************************************************************/
24
25
#ifndef _HPI6205_H_
26
#define _HPI6205_H_
27
28
#include "hpi_internal.h"
29
30
/***********************************************************
31
Defines used for basic messaging
32
************************************************************/
33
#define H620_HIF_RESET 0
34
#define H620_HIF_IDLE 1
35
#define H620_HIF_GET_RESP 2
36
#define H620_HIF_DATA_DONE 3
37
#define H620_HIF_DATA_MASK 0x10
38
#define H620_HIF_SEND_DATA 0x14
39
#define H620_HIF_GET_DATA 0x15
40
#define H620_HIF_UNKNOWN 0x0000ffff
41
42
/***********************************************************
43
Types used for mixer control caching
44
************************************************************/
45
46
#define H620_MAX_ISTREAMS 32
47
#define H620_MAX_OSTREAMS 32
48
#define HPI_NMIXER_CONTROLS 2048
49
50
/*********************************************************************
51
This is used for dynamic control cache allocation
52
**********************************************************************/
53
struct controlcache_6205 {
54
u32 number_of_controls;
55
u32 physical_address32;
56
u32 size_in_bytes;
57
};
58
59
/*********************************************************************
60
This is used for dynamic allocation of async event array
61
**********************************************************************/
62
struct async_event_buffer_6205 {
63
u32 physical_address32;
64
u32 spare;
65
struct hpi_fifo_buffer b;
66
};
67
68
/***********************************************************
69
The Host located memory buffer that the 6205 will bus master
70
in and out of.
71
************************************************************/
72
#define HPI6205_SIZEOF_DATA (16*1024)
73
struct bus_master_interface {
74
u32 host_cmd;
75
u32 dsp_ack;
76
u32 transfer_size_in_bytes;
77
union {
78
struct hpi_message_header message_buffer;
79
struct hpi_response_header response_buffer;
80
u8 b_data[HPI6205_SIZEOF_DATA];
81
} u;
82
struct controlcache_6205 control_cache;
83
struct async_event_buffer_6205 async_buffer;
84
struct hpi_hostbuffer_status
85
instream_host_buffer_status[H620_MAX_ISTREAMS];
86
struct hpi_hostbuffer_status
87
outstream_host_buffer_status[H620_MAX_OSTREAMS];
88
};
89
90
#endif
91
92