brintos

brintos / linux-shallow public Read only

0
0
Text · 3.0 KiB · 3a3de56 Raw
94 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*****************************************************************************3 *4 * Copyright (C) 2008 Cedric Bregardis <cedric.bregardis@free.fr> and5 * Jean-Christian Hassler <jhassler@free.fr>6 *7 * This file is part of the Audiowerk2 ALSA driver8 *9 *****************************************************************************/10 11#ifndef AW2_SAA7146_H12#define AW2_SAA7146_H13 14#define NB_STREAM_PLAYBACK 215#define NB_STREAM_CAPTURE 116 17#define NUM_STREAM_PLAYBACK_ANA 018#define NUM_STREAM_PLAYBACK_DIG 119 20#define NUM_STREAM_CAPTURE_ANA 021 22struct snd_pcm_substream;23typedef void (*snd_aw2_saa7146_it_cb) (struct snd_pcm_substream *);24 25struct snd_aw2_saa7146_cb_param {26	snd_aw2_saa7146_it_cb p_it_callback;27	struct snd_pcm_substream *p_callback_param;28};29 30/* definition of the chip-specific record */31 32struct snd_aw2_saa7146 {33	void __iomem *base_addr;34};35 36extern void snd_aw2_saa7146_setup(struct snd_aw2_saa7146 *chip,37				  void __iomem *pci_base_addr);38extern int snd_aw2_saa7146_free(struct snd_aw2_saa7146 *chip);39 40extern void snd_aw2_saa7146_pcm_init_playback(struct snd_aw2_saa7146 *chip,41					      int stream_number,42					      unsigned long dma_addr,43					      unsigned long period_size,44					      unsigned long buffer_size);45extern void snd_aw2_saa7146_pcm_init_capture(struct snd_aw2_saa7146 *chip,46					     int stream_number,47					     unsigned long dma_addr,48					     unsigned long period_size,49					     unsigned long buffer_size);50extern void snd_aw2_saa7146_define_it_playback_callback(unsigned int51							stream_number,52							snd_aw2_saa7146_it_cb53							p_it_callback,54							void *p_callback_param);55extern void snd_aw2_saa7146_define_it_capture_callback(unsigned int56						       stream_number,57						       snd_aw2_saa7146_it_cb58						       p_it_callback,59						       void *p_callback_param);60extern void snd_aw2_saa7146_pcm_trigger_start_capture(struct snd_aw2_saa714661						      *chip, int stream_number);62extern void snd_aw2_saa7146_pcm_trigger_stop_capture(struct snd_aw2_saa714663						     *chip, int stream_number);64 65extern void snd_aw2_saa7146_pcm_trigger_start_playback(struct snd_aw2_saa714666						       *chip,67						       int stream_number);68extern void snd_aw2_saa7146_pcm_trigger_stop_playback(struct snd_aw2_saa714669						      *chip, int stream_number);70 71extern irqreturn_t snd_aw2_saa7146_interrupt(int irq, void *dev_id);72extern unsigned int snd_aw2_saa7146_get_hw_ptr_playback(struct snd_aw2_saa714673							*chip,74							int stream_number,75							unsigned char76							*start_addr,77							unsigned int78							buffer_size);79extern unsigned int snd_aw2_saa7146_get_hw_ptr_capture(struct snd_aw2_saa714680						       *chip,81						       int stream_number,82						       unsigned char83						       *start_addr,84						       unsigned int85						       buffer_size);86 87extern void snd_aw2_saa7146_use_digital_input(struct snd_aw2_saa7146 *chip,88					      int use_digital);89 90extern int snd_aw2_saa7146_is_using_digital_input(struct snd_aw2_saa714691						  *chip);92 93#endif94