Ignore:
Timestamp:
Apr 21, 2025, 7:17:25 PM (4 months ago)
Author:
David Azarewicz
Message:

Merge from uniaud32-exp branch

Location:
GPL/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/include/sound/emu10k1.h

    r772 r777  
    711711// and hold the interleaved frames.
    712712// 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).
    717720// 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.
    724732#define CD0                     0x20            /* Cache data registers 0 .. 0x1f                       */
    725733
     
    18491857        unsigned int optical_out; /* 0:SPDIF, 1:ADAT */
    18501858        struct work_struct work;
     1859        struct mutex lock;
    18511860};
    18521861
     
    19972006int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, unsigned int data);
    19982007int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu, u32 reg, u32 value);
     2008static inline void snd_emu1010_fpga_lock(struct snd_emu10k1 *emu) { mutex_lock(&emu->emu1010.lock); };
     2009static inline void snd_emu1010_fpga_unlock(struct snd_emu10k1 *emu) { mutex_unlock(&emu->emu1010.lock); };
     2010void snd_emu1010_fpga_write_lock(struct snd_emu10k1 *emu, u32 reg, u32 value);
    19992011void snd_emu1010_fpga_write(struct snd_emu10k1 *emu, u32 reg, u32 value);
    20002012void snd_emu1010_fpga_read(struct snd_emu10k1 *emu, u32 reg, u32 *value);
     
    20032015int snd_emu1010_get_raw_rate(struct snd_emu10k1 *emu, u8 src);
    20042016void snd_emu1010_update_clock(struct snd_emu10k1 *emu);
     2017void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu, int dock, const struct firmware *fw_entry);
    20052018unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc);
    20062019void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb);
     
    20452058struct snd_util_memblk *snd_emu10k1_synth_alloc(struct snd_emu10k1 *emu, unsigned int size);
    20462059int 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);
     2060int snd_emu10k1_synth_memset(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, int size, u8 value);
     2061int 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);
    20492062int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk);
    20502063
Note: See TracChangeset for help on using the changeset viewer.