linux/sound/pci/asihpi/hpicmn.h
<<
>>
Prefs
   1/**
   2
   3    AudioScience HPI driver
   4    Copyright (C) 1997-2010  AudioScience Inc. <support@audioscience.com>
   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*/
  20
  21struct hpi_adapter_obj {
  22        struct hpi_pci pci;     /* PCI info - bus#,dev#,address etc */
  23        u16 adapter_type;       /* ASI6701 etc */
  24        u16 index;              /* */
  25        u16 open;               /* =1 when adapter open */
  26        u16 mixer_open;
  27
  28        struct hpios_spinlock dsp_lock;
  29
  30        u16 dsp_crashed;
  31        u16 has_control_cache;
  32        void *priv;
  33};
  34
  35struct hpi_control_cache {
  36        /** indicates whether the structures are initialized */
  37        u16 init;
  38        u16 adap_idx;
  39        u32 control_count;
  40        u32 cache_size_in_bytes;
  41        /** pointer to allocated memory of lookup pointers. */
  42        struct hpi_control_cache_info **p_info;
  43        /** pointer to DSP's control cache. */
  44        u8 *p_cache;
  45};
  46
  47struct hpi_adapter_obj *hpi_find_adapter(u16 adapter_index);
  48
  49u16 hpi_add_adapter(struct hpi_adapter_obj *pao);
  50
  51void hpi_delete_adapter(struct hpi_adapter_obj *pao);
  52
  53short hpi_check_control_cache(struct hpi_control_cache *pC,
  54        struct hpi_message *phm, struct hpi_response *phr);
  55struct hpi_control_cache *hpi_alloc_control_cache(const u32
  56        number_of_controls, const u32 size_in_bytes, u8 *pDSP_control_buffer);
  57void hpi_free_control_cache(struct hpi_control_cache *p_cache);
  58
  59void hpi_cmn_control_cache_sync_to_msg(struct hpi_control_cache *pC,
  60        struct hpi_message *phm, struct hpi_response *phr);
  61
  62u16 hpi_validate_response(struct hpi_message *phm, struct hpi_response *phr);
  63