1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /********************************************* 1 /***************************************************************************** 3 * 2 * 4 * Copyright (C) 2008 Cedric Bregardis <cedric 3 * Copyright (C) 2008 Cedric Bregardis <cedric.bregardis@free.fr> and 5 * Jean-Christian Hassler <jhassler@free.fr> 4 * Jean-Christian Hassler <jhassler@free.fr> 6 * 5 * 7 * This file is part of the Audiowerk2 ALSA dr 6 * This file is part of the Audiowerk2 ALSA driver 8 * 7 * >> 8 * The Audiowerk2 ALSA driver is free software; you can redistribute it and/or >> 9 * modify it under the terms of the GNU General Public License as published by >> 10 * the Free Software Foundation; version 2. >> 11 * >> 12 * The Audiowerk2 ALSA driver is distributed in the hope that it will be useful, >> 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of >> 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> 15 * GNU General Public License for more details. >> 16 * >> 17 * You should have received a copy of the GNU General Public License >> 18 * along with the Audiowerk2 ALSA driver; if not, write to the Free Software >> 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, >> 20 * USA. >> 21 * 9 ********************************************* 22 *****************************************************************************/ 10 23 11 #ifndef AW2_SAA7146_H 24 #ifndef AW2_SAA7146_H 12 #define AW2_SAA7146_H 25 #define AW2_SAA7146_H 13 26 14 #define NB_STREAM_PLAYBACK 2 27 #define NB_STREAM_PLAYBACK 2 15 #define NB_STREAM_CAPTURE 1 28 #define NB_STREAM_CAPTURE 1 16 29 17 #define NUM_STREAM_PLAYBACK_ANA 0 30 #define NUM_STREAM_PLAYBACK_ANA 0 18 #define NUM_STREAM_PLAYBACK_DIG 1 31 #define NUM_STREAM_PLAYBACK_DIG 1 19 32 20 #define NUM_STREAM_CAPTURE_ANA 0 33 #define NUM_STREAM_CAPTURE_ANA 0 21 34 22 struct snd_pcm_substream; !! 35 typedef void (*snd_aw2_saa7146_it_cb) (void *); 23 typedef void (*snd_aw2_saa7146_it_cb) (struct << 24 36 25 struct snd_aw2_saa7146_cb_param { 37 struct snd_aw2_saa7146_cb_param { 26 snd_aw2_saa7146_it_cb p_it_callback; 38 snd_aw2_saa7146_it_cb p_it_callback; 27 struct snd_pcm_substream *p_callback_p !! 39 void *p_callback_param; 28 }; 40 }; 29 41 30 /* definition of the chip-specific record */ 42 /* definition of the chip-specific record */ 31 43 32 struct snd_aw2_saa7146 { 44 struct snd_aw2_saa7146 { 33 void __iomem *base_addr; 45 void __iomem *base_addr; 34 }; 46 }; 35 47 36 extern void snd_aw2_saa7146_setup(struct snd_a 48 extern void snd_aw2_saa7146_setup(struct snd_aw2_saa7146 *chip, 37 void __iomem 49 void __iomem *pci_base_addr); 38 extern int snd_aw2_saa7146_free(struct snd_aw2 50 extern int snd_aw2_saa7146_free(struct snd_aw2_saa7146 *chip); 39 51 40 extern void snd_aw2_saa7146_pcm_init_playback( 52 extern void snd_aw2_saa7146_pcm_init_playback(struct snd_aw2_saa7146 *chip, 41 53 int stream_number, 42 54 unsigned long dma_addr, 43 55 unsigned long period_size, 44 56 unsigned long buffer_size); 45 extern void snd_aw2_saa7146_pcm_init_capture(s 57 extern void snd_aw2_saa7146_pcm_init_capture(struct snd_aw2_saa7146 *chip, 46 i 58 int stream_number, 47 u 59 unsigned long dma_addr, 48 u 60 unsigned long period_size, 49 u 61 unsigned long buffer_size); 50 extern void snd_aw2_saa7146_define_it_playback 62 extern void snd_aw2_saa7146_define_it_playback_callback(unsigned int 51 63 stream_number, 52 64 snd_aw2_saa7146_it_cb 53 65 p_it_callback, 54 66 void *p_callback_param); 55 extern void snd_aw2_saa7146_define_it_capture_ 67 extern void snd_aw2_saa7146_define_it_capture_callback(unsigned int 56 68 stream_number, 57 69 snd_aw2_saa7146_it_cb 58 70 p_it_callback, 59 71 void *p_callback_param); 60 extern void snd_aw2_saa7146_pcm_trigger_start_ 72 extern void snd_aw2_saa7146_pcm_trigger_start_capture(struct snd_aw2_saa7146 61 73 *chip, int stream_number); 62 extern void snd_aw2_saa7146_pcm_trigger_stop_c 74 extern void snd_aw2_saa7146_pcm_trigger_stop_capture(struct snd_aw2_saa7146 63 75 *chip, int stream_number); 64 76 65 extern void snd_aw2_saa7146_pcm_trigger_start_ 77 extern void snd_aw2_saa7146_pcm_trigger_start_playback(struct snd_aw2_saa7146 66 78 *chip, 67 79 int stream_number); 68 extern void snd_aw2_saa7146_pcm_trigger_stop_p 80 extern void snd_aw2_saa7146_pcm_trigger_stop_playback(struct snd_aw2_saa7146 69 81 *chip, int stream_number); 70 82 71 extern irqreturn_t snd_aw2_saa7146_interrupt(i 83 extern irqreturn_t snd_aw2_saa7146_interrupt(int irq, void *dev_id); 72 extern unsigned int snd_aw2_saa7146_get_hw_ptr 84 extern unsigned int snd_aw2_saa7146_get_hw_ptr_playback(struct snd_aw2_saa7146 73 85 *chip, 74 86 int stream_number, 75 87 unsigned char 76 88 *start_addr, 77 89 unsigned int 78 90 buffer_size); 79 extern unsigned int snd_aw2_saa7146_get_hw_ptr 91 extern unsigned int snd_aw2_saa7146_get_hw_ptr_capture(struct snd_aw2_saa7146 80 92 *chip, 81 93 int stream_number, 82 94 unsigned char 83 95 *start_addr, 84 96 unsigned int 85 97 buffer_size); 86 98 87 extern void snd_aw2_saa7146_use_digital_input( 99 extern void snd_aw2_saa7146_use_digital_input(struct snd_aw2_saa7146 *chip, 88 100 int use_digital); 89 101 90 extern int snd_aw2_saa7146_is_using_digital_in 102 extern int snd_aw2_saa7146_is_using_digital_input(struct snd_aw2_saa7146 91 103 *chip); 92 104 93 #endif 105 #endif 94 106
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.