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        u32 init;            /**< indicates whether the
  37                                structures are initialized */
  38        u32 control_count;
  39        u32 cache_size_in_bytes;
  40        struct hpi_control_cache_info
  41        **p_info;                /**< pointer to allocated memory of
  42                                lookup pointers. */
  43        struct hpi_control_cache_single
  44        *p_cache;                /**< pointer to DSP's control cache. */
  45};
  46
  47struct hpi_adapter_obj *hpi_find_adapter(u16 adapter_index);
  48u16 hpi_add_adapter(struct hpi_adapter_obj *pao);
  49
  50void hpi_delete_adapter(struct hpi_adapter_obj *pao);
  51
  52short hpi_check_control_cache(struct hpi_control_cache *pC,
  53        struct hpi_message *phm, struct hpi_response *phr);
  54struct hpi_control_cache *hpi_alloc_control_cache(const u32
  55        number_of_controls, const u32 size_in_bytes,
  56        struct hpi_control_cache_info
  57        *pDSP_control_buffer);
  58void hpi_free_control_cache(struct hpi_control_cache *p_cache);
  59
  60void hpi_sync_control_cache(struct hpi_control_cache *pC,
  61        struct hpi_message *phm, struct hpi_response *phr);
  62u16 hpi_validate_response(struct hpi_message *phm, struct hpi_response *phr);
  63short hpi_check_buffer_mapping(struct hpi_control_cache *p_cache,
  64        struct hpi_message *phm, void **p, unsigned int *pN);
  65