Changeset 777 for GPL/trunk/alsa-kernel/include/sound/emu10k1.h
- Timestamp:
- Apr 21, 2025, 7:17:25 PM (4 months ago)
- Location:
- GPL/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/trunk
- Property svn:mergeinfo changed
/GPL/branches/uniaud32-exp merged: 766-767,770-771,773-774
- Property svn:mergeinfo changed
-
GPL/trunk/alsa-kernel/include/sound/emu10k1.h
r772 r777 711 711 // and hold the interleaved frames. 712 712 // The cache holds 64 frames, so the upper half is not used in 8-bit mode. 713 // All registers mentioned below count in frames. 714 // The cache is a ring buffer; CCR_READADDRESS operates modulo 64. 715 // The cache is filled from (CCCA_CURRADDR - CCR_CACHEINVALIDSIZE) 716 // into (CCR_READADDRESS - CCR_CACHEINVALIDSIZE). 713 // All registers mentioned below count in frames. Shortcuts: 714 // CA = CCCA_CURRADDR, CRA = CCR_READADDRESS, 715 // CLA = CCR_CACHELOOPADDRHI:CLP_CACHELOOPADDR, 716 // CIS = CCR_CACHEINVALIDSIZE, LIS = CCR_LOOPINVALSIZE, 717 // CLF = CCR_CACHELOOPFLAG, LF = CCR_LOOPFLAG 718 // The cache is a ring buffer; CRA operates modulo 64. 719 // The cache is filled from (CA - CIS) into (CRA - CIS). 717 720 // The engine has a fetch threshold of 32 bytes, so it tries to keep 718 // CCR_CACHEINVALIDSIZE below 8 (16-bit stereo), 16 (16-bit mono, 719 // 8-bit stereo), or 32 (8-bit mono). The actual transfers are pretty 720 // unpredictable, especially if several voices are running. 721 // Frames are consumed at CCR_READADDRESS, which is incremented afterwards, 722 // along with CCCA_CURRADDR and CCR_CACHEINVALIDSIZE. This implies that the 723 // actual playback position always lags CCCA_CURRADDR by exactly 64 frames. 721 // CIS below 8 (16-bit stereo), 16 (16-bit mono, 8-bit stereo), or 722 // 32 (8-bit mono). The actual transfers are pretty unpredictable, 723 // especially if several voices are running. 724 // Frames are consumed at CRA, which is incremented afterwards, 725 // along with CA and CIS. This implies that the actual playback 726 // position always lags CA by exactly 64 frames. 727 // When CA reaches DSL_LOOPENDADDR, LF is set for one frame's time. 728 // LF's rising edge causes the current values of CA and CIS to be 729 // copied into CLA and LIS, resp., and CLF to be set. 730 // If CLF is set, the first LIS of the CIS frames are instead 731 // filled from (CLA - LIS), and CLF is subsequently reset. 724 732 #define CD0 0x20 /* Cache data registers 0 .. 0x1f */ 725 733 … … 1849 1857 unsigned int optical_out; /* 0:SPDIF, 1:ADAT */ 1850 1858 struct work_struct work; 1859 struct mutex lock; 1851 1860 }; 1852 1861 … … 1997 2006 int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, unsigned int data); 1998 2007 int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu, u32 reg, u32 value); 2008 static inline void snd_emu1010_fpga_lock(struct snd_emu10k1 *emu) { mutex_lock(&emu->emu1010.lock); }; 2009 static inline void snd_emu1010_fpga_unlock(struct snd_emu10k1 *emu) { mutex_unlock(&emu->emu1010.lock); }; 2010 void snd_emu1010_fpga_write_lock(struct snd_emu10k1 *emu, u32 reg, u32 value); 1999 2011 void snd_emu1010_fpga_write(struct snd_emu10k1 *emu, u32 reg, u32 value); 2000 2012 void snd_emu1010_fpga_read(struct snd_emu10k1 *emu, u32 reg, u32 *value); … … 2003 2015 int snd_emu1010_get_raw_rate(struct snd_emu10k1 *emu, u8 src); 2004 2016 void snd_emu1010_update_clock(struct snd_emu10k1 *emu); 2017 void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu, int dock, const struct firmware *fw_entry); 2005 2018 unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc); 2006 2019 void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb); … … 2045 2058 struct snd_util_memblk *snd_emu10k1_synth_alloc(struct snd_emu10k1 *emu, unsigned int size); 2046 2059 int snd_emu10k1_synth_free(struct snd_emu10k1 *emu, struct snd_util_memblk *blk); 2047 int snd_emu10k1_synth_ bzero(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, int size);2048 int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, const char __user *data, int size );2060 int snd_emu10k1_synth_memset(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, int size, u8 value); 2061 int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, const char __user *data, int size, u32 xor); 2049 2062 int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk); 2050 2063
Note:
See TracChangeset
for help on using the changeset viewer.