Alsa-devel
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2008
- 127 participants
- 180 discussions
Re: [alsa-devel] [alsa-cvslog] alsa-lib: Fix the state in snd_pcm_ioplug_pause()
by Thierry Vignaud 25 Feb '08
by Thierry Vignaud 25 Feb '08
25 Feb '08
Takashi Iwai <tiwai(a)suse.de> writes:
> changeset: 2423:7388ad3d21ea
> tag: tip
> user: tiwai
> date: Mon Feb 25 15:11:46 2008 +0100
> files: src/pcm/pcm_ioplug.c
> description:
> Fix the state in snd_pcm_ioplug_pause()
>
> The states[] in snd_pcm_ioplug_pause() has wrong values. They should be
> swapped. ALSA bug#3796:
> https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3796
Aren't some bits missing from this bug report? (s/o->data->state =
states[enable]/io->data->state = states[prev])
> diff -r 6d83f965a9d9 -r 7388ad3d21ea src/pcm/pcm_ioplug.c
> --- a/src/pcm/pcm_ioplug.c Mon Feb 25 14:58:45 2008 +0100
> +++ b/src/pcm/pcm_ioplug.c Mon Feb 25 15:11:46 2008 +0100
> @@ -484,7 +484,7 @@ static int snd_pcm_ioplug_pause(snd_pcm_
> {
> ioplug_priv_t *io = pcm->private_data;
> static snd_pcm_state_t states[2] = {
> - SND_PCM_STATE_PAUSED, SND_PCM_STATE_RUNNING
> + SND_PCM_STATE_RUNNING, SND_PCM_STATE_PAUSED
> };
> int prev, err;
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Alsa-cvslog mailing list
> Alsa-cvslog(a)lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/alsa-cvslog
2
1
[alsa-devel] [PATCH] hdsp: Remove all eol tabs/spaces and space stuffing
by Andrew Paprocki 25 Feb '08
by Andrew Paprocki 25 Feb '08
25 Feb '08
I have one of these cards and was looking through the file and saw lots of
eol tabs/spaces as well as some space stuffing on various lines.
diff -r 8087414481e8 -r 87b21007d0f9 pci/rme9652/hdsp.c
--- a/pci/rme9652/hdsp.c Sat Feb 23 11:34:12 2008 +0100
+++ b/pci/rme9652/hdsp.c Sat Feb 23 14:01:54 2008 -0500
@@ -90,12 +90,12 @@ MODULE_FIRMWARE("digiface_firmware_rev11
#define HDSP_inputBufferAddress 36
#define HDSP_controlRegister 64
#define HDSP_interruptConfirmation 96
-#define HDSP_outputEnable 128
+#define HDSP_outputEnable 128
#define HDSP_control2Reg 256
-#define HDSP_midiDataOut0 352
-#define HDSP_midiDataOut1 356
-#define HDSP_fifoData 368
-#define HDSP_inputEnable 384
+#define HDSP_midiDataOut0 352
+#define HDSP_midiDataOut1 356
+#define HDSP_fifoData 368
+#define HDSP_inputEnable 384
/* Read registers. These are defined as byte-offsets from the iobase value
*/
@@ -113,7 +113,7 @@ MODULE_FIRMWARE("digiface_firmware_rev11
/* the meters are regular i/o-mapped registers, but offset
considerably from the rest. the peak registers are reset
- when read; the least-significant 4 bits are full-scale counters;
+ when read; the least-significant 4 bits are full-scale counters;
the actual peak value is in the most-significant 24 bits.
*/
@@ -131,7 +131,7 @@ MODULE_FIRMWARE("digiface_firmware_rev11
26*3 values are read in ss mode
14*3 in ds mode, with no gap between values
*/
-#define HDSP_9652_peakBase 7164
+#define HDSP_9652_peakBase 7164
#define HDSP_9652_rmsBase 4096
/* c.f. the hdsp_9632_meters_t struct */
@@ -155,7 +155,7 @@ MODULE_FIRMWARE("digiface_firmware_rev11
#define HDSP_9652_ENABLE_MIXER 0x800
#define HDSP_TDO 0x10000000
-#define HDSP_S_PROGRAM (HDSP_PROGRAM|HDSP_CONFIG_MODE_0)
+#define HDSP_S_PROGRAM (HDSP_PROGRAM|HDSP_CONFIG_MODE_0)
#define HDSP_S_LOAD (HDSP_PROGRAM|HDSP_CONFIG_MODE_1)
/* Control Register bits */
@@ -173,12 +173,12 @@ MODULE_FIRMWARE("digiface_firmware_rev11
#define HDSP_SPDIFEmphasis (1<<10) /* 0=none, 1=on */
#define HDSP_SPDIFNonAudio (1<<11) /* 0=off, 1=on */
#define HDSP_SPDIFOpticalOut (1<<12) /* 1=use 1st ADAT connector for SPDIF, 0=do not */
-#define HDSP_SyncRef2 (1<<13)
-#define HDSP_SPDIFInputSelect0 (1<<14)
-#define HDSP_SPDIFInputSelect1 (1<<15)
-#define HDSP_SyncRef0 (1<<16)
+#define HDSP_SyncRef2 (1<<13)
+#define HDSP_SPDIFInputSelect0 (1<<14)
+#define HDSP_SPDIFInputSelect1 (1<<15)
+#define HDSP_SyncRef0 (1<<16)
#define HDSP_SyncRef1 (1<<17)
-#define HDSP_AnalogExtensionBoard (1<<18) /* For H9632 cards */
+#define HDSP_AnalogExtensionBoard (1<<18) /* For H9632 cards */
#define HDSP_XLRBreakoutCable (1<<20) /* For H9632 cards */
#define HDSP_Midi0InterruptEnable (1<<22)
#define HDSP_Midi1InterruptEnable (1<<23)
@@ -189,7 +189,7 @@ MODULE_FIRMWARE("digiface_firmware_rev11
#define HDSP_DAGain1 (1<<28)
#define HDSP_PhoneGain0 (1<<29)
#define HDSP_PhoneGain1 (1<<30)
-#define HDSP_QuadSpeed (1<<31)
+#define HDSP_QuadSpeed (1<<31)
#define HDSP_ADGainMask (HDSP_ADGain0|HDSP_ADGain1)
#define HDSP_ADGainMinus10dBV HDSP_ADGainMask
@@ -312,9 +312,9 @@ MODULE_FIRMWARE("digiface_firmware_rev11
#define HDSP_SPDIFErrorFlag (1<<25)
#define HDSP_BufferID (1<<26)
#define HDSP_TimecodeSync (1<<27)
-#define HDSP_AEBO (1<<28) /* H9632 specific Analog Extension Boards */
+#define HDSP_AEBO (1<<28) /* H9632 specific Analog Extension Boards */
#define HDSP_AEBI (1<<29) /* 0 = present, 1 = absent */
-#define HDSP_midi0IRQPending (1<<30)
+#define HDSP_midi0IRQPending (1<<30)
#define HDSP_midi1IRQPending (1<<31)
#define HDSP_spdifFrequencyMask (HDSP_spdifFrequency0|HDSP_spdifFrequency1|HDSP_spdifFrequency2)
@@ -391,7 +391,7 @@ MODULE_FIRMWARE("digiface_firmware_rev11
#define HDSP_CHANNEL_BUFFER_BYTES (4*HDSP_CHANNEL_BUFFER_SAMPLES)
/* the size of the area we need to allocate for DMA transfers. the
- size is the same regardless of the number of channels - the
+ size is the same regardless of the number of channels - the
Multiface still uses the same memory area.
Note that we allocate 1 more channel than is apparently needed
@@ -441,7 +441,7 @@ struct hdsp {
spinlock_t lock;
struct snd_pcm_substream *capture_substream;
struct snd_pcm_substream *playback_substream;
- struct hdsp_midi midi[2];
+ struct hdsp_midi midi[2];
struct tasklet_struct midi_tasklet;
int use_midi_tasklet;
int precise_ptr;
@@ -452,15 +452,15 @@ struct hdsp {
int clock_source_locked;
char *card_name; /* digiface/multiface */
enum HDSP_IO_Type io_type; /* ditto, but for code use */
- unsigned short firmware_rev;
+ unsigned short firmware_rev;
unsigned short state; /* stores state bits */
u32 firmware_cache[24413]; /* this helps recover from accidental iobox power failure */
- size_t period_bytes; /* guess what this is */
+ size_t period_bytes; /* guess what this is */
unsigned char max_channels;
unsigned char qs_in_channels; /* quad speed mode for H9632 */
unsigned char ds_in_channels;
unsigned char ss_in_channels; /* different for multiface/digiface */
- unsigned char qs_out_channels;
+ unsigned char qs_out_channels;
unsigned char ds_out_channels;
unsigned char ss_out_channels;
@@ -477,13 +477,13 @@ struct hdsp {
int dev;
int irq;
unsigned long port;
- void __iomem *iobase;
+ void __iomem *iobase;
struct snd_card *card;
struct snd_pcm *pcm;
struct snd_hwdep *hwdep;
struct pci_dev *pci;
struct snd_kcontrol *spdif_ctl;
- unsigned short mixer_matrix[HDSP_MATRIX_MIXER_SIZE];
+ unsigned short mixer_matrix[HDSP_MATRIX_MIXER_SIZE];
unsigned int dds_value; /* last value written to freq register */
};
@@ -502,9 +502,9 @@ static char channel_map_df_ss[HDSP_MAX_C
static char channel_map_mf_ss[HDSP_MAX_CHANNELS] = { /* Multiface */
/* Analog */
- 0, 1, 2, 3, 4, 5, 6, 7,
+ 0, 1, 2, 3, 4, 5, 6, 7,
/* ADAT 2 */
- 16, 17, 18, 19, 20, 21, 22, 23,
+ 16, 17, 18, 19, 20, 21, 22, 23,
/* SPDIF */
24, 25,
-1, -1, -1, -1, -1, -1, -1, -1
@@ -525,11 +525,11 @@ static char channel_map_H9632_ss[HDSP_MA
/* SPDIF */
8, 9,
/* Analog */
- 10, 11,
+ 10, 11,
/* AO4S-192 and AI4S-192 extension boards */
12, 13, 14, 15,
/* others don't exist */
- -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1
};
@@ -539,7 +539,7 @@ static char channel_map_H9632_ds[HDSP_MA
/* SPDIF */
8, 9,
/* Analog */
- 10, 11,
+ 10, 11,
/* AO4S-192 and AI4S-192 extension boards */
12, 13, 14, 15,
/* others don't exist */
@@ -587,7 +587,7 @@ static struct pci_device_id snd_hdsp_ids
static struct pci_device_id snd_hdsp_ids[] = {
{
.vendor = PCI_VENDOR_ID_XILINX,
- .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP,
+ .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP,
.subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID,
}, /* RME Hammerfall-DSP */
@@ -670,19 +670,19 @@ static int snd_hdsp_load_firmware_from_c
unsigned long flags;
if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) {
-
+
snd_printk ("Hammerfall-DSP: loading firmware\n");
hdsp_write (hdsp, HDSP_control2Reg, HDSP_S_PROGRAM);
hdsp_write (hdsp, HDSP_fifoData, 0);
-
+
if (hdsp_fifo_wait (hdsp, 0, HDSP_LONG_WAIT)) {
snd_printk ("Hammerfall-DSP: timeout waiting for download preparation\n");
return -EIO;
}
-
+
hdsp_write (hdsp, HDSP_control2Reg, HDSP_S_LOAD);
-
+
for (i = 0; i < 24413; ++i) {
hdsp_write(hdsp, HDSP_fifoData, hdsp->firmware_cache[i]);
if (hdsp_fifo_wait (hdsp, 127, HDSP_LONG_WAIT)) {
@@ -692,10 +692,10 @@ static int snd_hdsp_load_firmware_from_c
}
ssleep(3);
-
+
if (hdsp_fifo_wait (hdsp, 0, HDSP_LONG_WAIT)) {
snd_printk ("Hammerfall-DSP: timeout at end of firmware loading\n");
- return -EIO;
+ return -EIO;
}
#ifdef SNDRV_BIG_ENDIAN
@@ -705,15 +705,15 @@ static int snd_hdsp_load_firmware_from_c
#endif
hdsp_write (hdsp, HDSP_control2Reg, hdsp->control2_register);
snd_printk ("Hammerfall-DSP: finished firmware loading\n");
-
+
}
if (hdsp->state & HDSP_InitializationComplete) {
snd_printk(KERN_INFO "Hammerfall-DSP: firmware loaded from cache, restoring defaults\n");
spin_lock_irqsave(&hdsp->lock, flags);
snd_hdsp_set_defaults(hdsp);
- spin_unlock_irqrestore(&hdsp->lock, flags);
- }
-
+ spin_unlock_irqrestore(&hdsp->lock, flags);
+ }
+
hdsp->state |= HDSP_FirmwareLoaded;
return 0;
@@ -722,7 +722,7 @@ static int hdsp_get_iobox_version (struc
static int hdsp_get_iobox_version (struct hdsp *hdsp)
{
if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) {
-
+
hdsp_write (hdsp, HDSP_control2Reg, HDSP_PROGRAM);
hdsp_write (hdsp, HDSP_fifoData, 0);
if (hdsp_fifo_wait (hdsp, 0, HDSP_SHORT_WAIT) < 0)
@@ -738,7 +738,7 @@ static int hdsp_get_iobox_version (struc
hdsp_fifo_wait (hdsp, 0, HDSP_SHORT_WAIT);
} else {
hdsp->io_type = Digiface;
- }
+ }
} else {
/* firmware was already loaded, get iobox type */
if (hdsp_read(hdsp, HDSP_status2Register) & HDSP_version1)
@@ -786,13 +786,13 @@ static int hdsp_check_for_firmware (stru
static int hdsp_fifo_wait(struct hdsp *hdsp, int count, int timeout)
-{
+{
int i;
/* the fifoStatus registers reports on how many words
are available in the command FIFO.
*/
-
+
for (i = 0; i < timeout; i++) {
if ((int)(hdsp_read (hdsp, HDSP_fifoStatus) & 0xff) <= count)
@@ -824,11 +824,11 @@ static int hdsp_write_gain(struct hdsp *
if (addr >= HDSP_MATRIX_MIXER_SIZE)
return -1;
-
+
if (hdsp->io_type == H9652 || hdsp->io_type == H9632) {
/* from martin bjornsen:
-
+
"You can only write dwords to the
mixer memory which contain two
mixer values in the low and high
@@ -847,7 +847,7 @@ static int hdsp_write_gain(struct hdsp *
hdsp->mixer_matrix[addr] = data;
-
+
/* `addr' addresses a 16-bit wide address, but
the address space accessed via hdsp_write
uses byte offsets. put another way, addr
@@ -856,17 +856,17 @@ static int hdsp_write_gain(struct hdsp *
to access 0 to 2703 ...
*/
ad = addr/2;
-
- hdsp_write (hdsp, 4096 + (ad*4),
- (hdsp->mixer_matrix[(addr&0x7fe)+1] << 16) +
+
+ hdsp_write (hdsp, 4096 + (ad*4),
+ (hdsp->mixer_matrix[(addr&0x7fe)+1] << 16) +
hdsp->mixer_matrix[addr&0x7fe]);
-
+
return 0;
} else {
ad = (addr << 16) + data;
-
+
if (hdsp_fifo_wait(hdsp, 127, HDSP_LONG_WAIT))
return -1;
@@ -902,7 +902,7 @@ static int hdsp_spdif_sample_rate(struct
if (status & HDSP_SPDIFErrorFlag)
return 0;
-
+
switch (rate_bits) {
case HDSP_spdifFrequency32KHz: return 32000;
case HDSP_spdifFrequency44_1KHz: return 44100;
@@ -910,13 +910,13 @@ static int hdsp_spdif_sample_rate(struct
case HDSP_spdifFrequency64KHz: return 64000;
case HDSP_spdifFrequency88_2KHz: return 88200;
case HDSP_spdifFrequency96KHz: return 96000;
- case HDSP_spdifFrequency128KHz:
+ case HDSP_spdifFrequency128KHz:
if (hdsp->io_type == H9632) return 128000;
break;
- case HDSP_spdifFrequency176_4KHz:
+ case HDSP_spdifFrequency176_4KHz:
if (hdsp->io_type == H9632) return 176400;
break;
- case HDSP_spdifFrequency192KHz:
+ case HDSP_spdifFrequency192KHz:
if (hdsp->io_type == H9632) return 192000;
break;
default:
@@ -1027,7 +1027,7 @@ static void hdsp_set_dds_value(struct hd
{
u64 n;
u32 r;
-
+
if (rate >= 112000)
rate /= 4;
else if (rate >= 56000)
@@ -1053,35 +1053,35 @@ static int hdsp_set_rate(struct hdsp *hd
there is no need for it (e.g. during module
initialization).
*/
-
- if (!(hdsp->control_register & HDSP_ClockModeMaster)) {
+
+ if (!(hdsp->control_register & HDSP_ClockModeMaster)) {
if (called_internally) {
/* request from ctl or card initialization */
snd_printk(KERN_ERR "Hammerfall-DSP: device is not running as a clock master: cannot set sample rate.\n");
return -1;
- } else {
+ } else {
/* hw_param request while in AutoSync mode */
int external_freq = hdsp_external_sample_rate(hdsp);
int spdif_freq = hdsp_spdif_sample_rate(hdsp);
-
+
if ((spdif_freq == external_freq*2) && (hdsp_autosync_ref(hdsp) >= HDSP_AUTOSYNC_FROM_ADAT1))
snd_printk(KERN_INFO "Hammerfall-DSP: Detected ADAT in double speed mode\n");
else if (hdsp->io_type == H9632 && (spdif_freq == external_freq*4) && (hdsp_autosync_ref(hdsp) >= HDSP_AUTOSYNC_FROM_ADAT1))
- snd_printk(KERN_INFO "Hammerfall-DSP: Detected ADAT in quad speed mode\n");
+ snd_printk(KERN_INFO "Hammerfall-DSP: Detected ADAT in quad speed mode\n");
else if (rate != external_freq) {
snd_printk(KERN_INFO "Hammerfall-DSP: No AutoSync source for requested rate\n");
return -1;
- }
- }
+ }
+ }
}
current_rate = hdsp->system_sample_rate;
/* Changing from a "single speed" to a "double speed" rate is
not allowed if any substreams are open. This is because
- such a change causes a shift in the location of
+ such a change causes a shift in the location of
the DMA buffers and a reduction in the number of available
- buffers.
+ buffers.
Note that a similar but essentially insoluble problem
exists for externally-driven rate changes. All we can do
@@ -1089,7 +1089,7 @@ static int hdsp_set_rate(struct hdsp *hd
if (rate > 96000 && hdsp->io_type != H9632)
return -EINVAL;
-
+
switch (rate) {
case 32000:
if (current_rate > 48000)
@@ -1179,7 +1179,7 @@ static int hdsp_set_rate(struct hdsp *hd
break;
}
}
-
+
hdsp->system_sample_rate = rate;
return 0;
@@ -1245,16 +1245,16 @@ static int snd_hdsp_midi_output_write (s
unsigned char buf[128];
/* Output is not interrupt driven */
-
+
spin_lock_irqsave (&hmidi->lock, flags);
if (hmidi->output) {
if (!snd_rawmidi_transmit_empty (hmidi->output)) {
if ((n_pending = snd_hdsp_midi_output_possible (hmidi->hdsp, hmidi->id)) > 0) {
if (n_pending > (int)sizeof (buf))
n_pending = sizeof (buf);
-
+
if ((to_write = snd_rawmidi_transmit (hmidi->output, buf, n_pending)) > 0) {
- for (i = 0; i < to_write; ++i)
+ for (i = 0; i < to_write; ++i)
snd_hdsp_midi_write_byte (hmidi->hdsp, hmidi->id, buf[i]);
}
}
@@ -1325,14 +1325,14 @@ static void snd_hdsp_midi_output_timer(u
{
struct hdsp_midi *hmidi = (struct hdsp_midi *) data;
unsigned long flags;
-
+
snd_hdsp_midi_output_write(hmidi);
spin_lock_irqsave (&hmidi->lock, flags);
/* this does not bump hmidi->istimer, because the
kernel automatically removed the timer when it
expired, and we are now adding it back, thus
- leaving istimer wherever it was set before.
+ leaving istimer wherever it was set before.
*/
if (hmidi->istimer) {
@@ -1501,7 +1501,7 @@ static int snd_hdsp_control_spdif_get(st
static int snd_hdsp_control_spdif_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
snd_hdsp_convert_to_aes(&ucontrol->value.iec958, hdsp->creg_spdif);
return 0;
}
@@ -1511,7 +1511,7 @@ static int snd_hdsp_control_spdif_put(st
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
u32 val;
-
+
val = snd_hdsp_convert_from_aes(&ucontrol->value.iec958);
spin_lock_irq(&hdsp->lock);
change = val != hdsp->creg_spdif;
@@ -1530,7 +1530,7 @@ static int snd_hdsp_control_spdif_stream
static int snd_hdsp_control_spdif_stream_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
snd_hdsp_convert_to_aes(&ucontrol->value.iec958, hdsp->creg_spdif_stream);
return 0;
}
@@ -1540,7 +1540,7 @@ static int snd_hdsp_control_spdif_stream
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
u32 val;
-
+
val = snd_hdsp_convert_from_aes(&ucontrol->value.iec958);
spin_lock_irq(&hdsp->lock);
change = val != hdsp->creg_spdif_stream;
@@ -1602,7 +1602,7 @@ static int snd_hdsp_get_spdif_in(struct
static int snd_hdsp_get_spdif_in(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_spdif_in(hdsp);
return 0;
}
@@ -1612,7 +1612,7 @@ static int snd_hdsp_put_spdif_in(struct
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.enumerated.item[0] % ((hdsp->io_type == H9632) ? 4 : 3);
@@ -1649,7 +1649,7 @@ static int snd_hdsp_get_spdif_out(struct
static int snd_hdsp_get_spdif_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.integer.value[0] = hdsp_spdif_out(hdsp);
return 0;
}
@@ -1659,7 +1659,7 @@ static int snd_hdsp_put_spdif_out(struct
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -1693,7 +1693,7 @@ static int snd_hdsp_get_spdif_profession
static int snd_hdsp_get_spdif_professional(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.integer.value[0] = hdsp_spdif_professional(hdsp);
return 0;
}
@@ -1703,7 +1703,7 @@ static int snd_hdsp_put_spdif_profession
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -1737,7 +1737,7 @@ static int snd_hdsp_get_spdif_emphasis(s
static int snd_hdsp_get_spdif_emphasis(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.integer.value[0] = hdsp_spdif_emphasis(hdsp);
return 0;
}
@@ -1747,7 +1747,7 @@ static int snd_hdsp_put_spdif_emphasis(s
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -1781,7 +1781,7 @@ static int snd_hdsp_get_spdif_nonaudio(s
static int snd_hdsp_get_spdif_nonaudio(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.integer.value[0] = hdsp_spdif_nonaudio(hdsp);
return 0;
}
@@ -1791,7 +1791,7 @@ static int snd_hdsp_put_spdif_nonaudio(s
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -1828,7 +1828,7 @@ static int snd_hdsp_get_spdif_sample_rat
static int snd_hdsp_get_spdif_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
switch (hdsp_spdif_sample_rate(hdsp)) {
case 32000:
ucontrol->value.enumerated.item[0] = 0;
@@ -1858,7 +1858,7 @@ static int snd_hdsp_get_spdif_sample_rat
ucontrol->value.enumerated.item[0] = 9;
break;
default:
- ucontrol->value.enumerated.item[0] = 6;
+ ucontrol->value.enumerated.item[0] = 6;
}
return 0;
}
@@ -1882,7 +1882,7 @@ static int snd_hdsp_get_system_sample_ra
static int snd_hdsp_get_system_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp->system_sample_rate;
return 0;
}
@@ -1899,7 +1899,7 @@ static int snd_hdsp_info_autosync_sample
static int snd_hdsp_info_autosync_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
- static char *texts[] = {"32000", "44100", "48000", "64000", "88200", "96000", "None", "128000", "176400", "192000"};
+ static char *texts[] = {"32000", "44100", "48000", "64000", "88200", "96000", "None", "128000", "176400", "192000"};
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = (hdsp->io_type == H9632) ? 10 : 7 ;
@@ -1912,7 +1912,7 @@ static int snd_hdsp_get_autosync_sample_
static int snd_hdsp_get_autosync_sample_rate(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
switch (hdsp_external_sample_rate(hdsp)) {
case 32000:
ucontrol->value.enumerated.item[0] = 0;
@@ -1940,9 +1940,9 @@ static int snd_hdsp_get_autosync_sample_
break;
case 192000:
ucontrol->value.enumerated.item[0] = 9;
- break;
+ break;
default:
- ucontrol->value.enumerated.item[0] = 6;
+ ucontrol->value.enumerated.item[0] = 6;
}
return 0;
}
@@ -1968,7 +1968,7 @@ static int snd_hdsp_info_system_clock_mo
static int snd_hdsp_info_system_clock_mode(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
static char *texts[] = {"Master", "Slave" };
-
+
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = 2;
@@ -1981,7 +1981,7 @@ static int snd_hdsp_get_system_clock_mod
static int snd_hdsp_get_system_clock_mode(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_system_clock_mode(hdsp);
return 0;
}
@@ -2018,7 +2018,7 @@ static int hdsp_clock_source(struct hdsp
case 192000:
return 9;
default:
- return 3;
+ return 3;
}
} else {
return 0;
@@ -2032,7 +2032,7 @@ static int hdsp_set_clock_source(struct
case HDSP_CLOCK_SOURCE_AUTOSYNC:
if (hdsp_external_sample_rate(hdsp) != 0) {
if (!hdsp_set_rate(hdsp, hdsp_external_sample_rate(hdsp), 1)) {
- hdsp->control_register &= ~HDSP_ClockModeMaster;
+ hdsp->control_register &= ~HDSP_ClockModeMaster;
hdsp_write(hdsp, HDSP_controlRegister, hdsp->control_register);
return 0;
}
@@ -2043,7 +2043,7 @@ static int hdsp_set_clock_source(struct
break;
case HDSP_CLOCK_SOURCE_INTERNAL_44_1KHZ:
rate = 44100;
- break;
+ break;
case HDSP_CLOCK_SOURCE_INTERNAL_48KHZ:
rate = 48000;
break;
@@ -2078,13 +2078,13 @@ static int snd_hdsp_info_clock_source(st
{
static char *texts[] = {"AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz", "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz", "Internal 96.0 kHz", "Internal 128 kHz", "Internal 176.4 kHz", "Internal 192.0 KHz" };
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
if (hdsp->io_type == H9632)
uinfo->value.enumerated.items = 10;
else
- uinfo->value.enumerated.items = 7;
+ uinfo->value.enumerated.items = 7;
if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
@@ -2094,7 +2094,7 @@ static int snd_hdsp_get_clock_source(str
static int snd_hdsp_get_clock_source(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_clock_source(hdsp);
return 0;
}
@@ -2104,7 +2104,7 @@ static int snd_hdsp_put_clock_source(str
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.enumerated.item[0];
@@ -2130,7 +2130,7 @@ static int snd_hdsp_get_clock_source_loc
static int snd_hdsp_get_clock_source_lock(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.integer.value[0] = hdsp->clock_source_locked;
return 0;
}
@@ -2165,7 +2165,7 @@ static int hdsp_da_gain(struct hdsp *hds
case HDSP_DAGainMinus10dBV:
return 2;
default:
- return 1;
+ return 1;
}
}
@@ -2180,8 +2180,8 @@ static int hdsp_set_da_gain(struct hdsp
hdsp->control_register |= HDSP_DAGainPlus4dBu;
break;
case 2:
- hdsp->control_register |= HDSP_DAGainMinus10dBV;
- break;
+ hdsp->control_register |= HDSP_DAGainMinus10dBV;
+ break;
default:
return -1;
@@ -2193,7 +2193,7 @@ static int snd_hdsp_info_da_gain(struct
static int snd_hdsp_info_da_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
static char *texts[] = {"Hi Gain", "+4 dBu", "-10 dbV"};
-
+
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = 3;
@@ -2206,7 +2206,7 @@ static int snd_hdsp_get_da_gain(struct s
static int snd_hdsp_get_da_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_da_gain(hdsp);
return 0;
}
@@ -2216,7 +2216,7 @@ static int snd_hdsp_put_da_gain(struct s
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.enumerated.item[0];
@@ -2250,7 +2250,7 @@ static int hdsp_ad_gain(struct hdsp *hds
case HDSP_ADGainLowGain:
return 2;
default:
- return 1;
+ return 1;
}
}
@@ -2262,11 +2262,11 @@ static int hdsp_set_ad_gain(struct hdsp
hdsp->control_register |= HDSP_ADGainMinus10dBV;
break;
case 1:
- hdsp->control_register |= HDSP_ADGainPlus4dBu;
+ hdsp->control_register |= HDSP_ADGainPlus4dBu;
break;
case 2:
- hdsp->control_register |= HDSP_ADGainLowGain;
- break;
+ hdsp->control_register |= HDSP_ADGainLowGain;
+ break;
default:
return -1;
@@ -2278,7 +2278,7 @@ static int snd_hdsp_info_ad_gain(struct
static int snd_hdsp_info_ad_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
static char *texts[] = {"-10 dBV", "+4 dBu", "Lo Gain"};
-
+
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = 3;
@@ -2291,7 +2291,7 @@ static int snd_hdsp_get_ad_gain(struct s
static int snd_hdsp_get_ad_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_ad_gain(hdsp);
return 0;
}
@@ -2301,7 +2301,7 @@ static int snd_hdsp_put_ad_gain(struct s
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.enumerated.item[0];
@@ -2335,7 +2335,7 @@ static int hdsp_phone_gain(struct hdsp *
case HDSP_PhoneGainMinus12dB:
return 2;
default:
- return 0;
+ return 0;
}
}
@@ -2347,11 +2347,11 @@ static int hdsp_set_phone_gain(struct hd
hdsp->control_register |= HDSP_PhoneGain0dB;
break;
case 1:
- hdsp->control_register |= HDSP_PhoneGainMinus6dB;
+ hdsp->control_register |= HDSP_PhoneGainMinus6dB;
break;
case 2:
- hdsp->control_register |= HDSP_PhoneGainMinus12dB;
- break;
+ hdsp->control_register |= HDSP_PhoneGainMinus12dB;
+ break;
default:
return -1;
@@ -2363,7 +2363,7 @@ static int snd_hdsp_info_phone_gain(stru
static int snd_hdsp_info_phone_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
static char *texts[] = {"0 dB", "-6 dB", "-12 dB"};
-
+
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = 3;
@@ -2376,7 +2376,7 @@ static int snd_hdsp_get_phone_gain(struc
static int snd_hdsp_get_phone_gain(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_phone_gain(hdsp);
return 0;
}
@@ -2386,7 +2386,7 @@ static int snd_hdsp_put_phone_gain(struc
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.enumerated.item[0];
@@ -2432,7 +2432,7 @@ static int snd_hdsp_get_xlr_breakout_cab
static int snd_hdsp_get_xlr_breakout_cable(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_xlr_breakout_cable(hdsp);
return 0;
}
@@ -2442,7 +2442,7 @@ static int snd_hdsp_put_xlr_breakout_cab
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -2488,7 +2488,7 @@ static int snd_hdsp_get_aeb(struct snd_k
static int snd_hdsp_get_aeb(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_aeb(hdsp);
return 0;
}
@@ -2498,7 +2498,7 @@ static int snd_hdsp_put_aeb(struct snd_k
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -2576,7 +2576,7 @@ static int snd_hdsp_info_pref_sync_ref(s
{
static char *texts[] = {"Word", "IEC958", "ADAT1", "ADAT Sync", "ADAT2", "ADAT3" };
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
@@ -2595,7 +2595,7 @@ static int snd_hdsp_info_pref_sync_ref(s
uinfo->value.enumerated.items = 0;
break;
}
-
+
if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
@@ -2605,7 +2605,7 @@ static int snd_hdsp_get_pref_sync_ref(st
static int snd_hdsp_get_pref_sync_ref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_pref_sync_ref(hdsp);
return 0;
}
@@ -2615,7 +2615,7 @@ static int snd_hdsp_put_pref_sync_ref(st
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change, max;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
@@ -2664,7 +2664,7 @@ static int hdsp_autosync_ref(struct hdsp
case HDSP_SelSyncRef_SPDIF:
return HDSP_AUTOSYNC_FROM_SPDIF;
case HDSP_SelSyncRefMask:
- return HDSP_AUTOSYNC_FROM_NONE;
+ return HDSP_AUTOSYNC_FROM_NONE;
case HDSP_SelSyncRef_ADAT1:
return HDSP_AUTOSYNC_FROM_ADAT1;
case HDSP_SelSyncRef_ADAT2:
@@ -2680,7 +2680,7 @@ static int snd_hdsp_info_autosync_ref(st
static int snd_hdsp_info_autosync_ref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
static char *texts[] = {"Word", "ADAT Sync", "IEC958", "None", "ADAT1", "ADAT2", "ADAT3" };
-
+
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = 7;
@@ -2693,7 +2693,7 @@ static int snd_hdsp_get_autosync_ref(str
static int snd_hdsp_get_autosync_ref(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_autosync_ref(hdsp);
return 0;
}
@@ -2727,7 +2727,7 @@ static int snd_hdsp_get_line_out(struct
static int snd_hdsp_get_line_out(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
spin_lock_irq(&hdsp->lock);
ucontrol->value.integer.value[0] = hdsp_line_out(hdsp);
spin_unlock_irq(&hdsp->lock);
@@ -2739,7 +2739,7 @@ static int snd_hdsp_put_line_out(struct
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -2773,7 +2773,7 @@ static int snd_hdsp_get_precise_pointer(
static int snd_hdsp_get_precise_pointer(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
spin_lock_irq(&hdsp->lock);
ucontrol->value.integer.value[0] = hdsp->precise_ptr;
spin_unlock_irq(&hdsp->lock);
@@ -2785,7 +2785,7 @@ static int snd_hdsp_put_precise_pointer(
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -2819,7 +2819,7 @@ static int snd_hdsp_get_use_midi_tasklet
static int snd_hdsp_get_use_midi_tasklet(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
spin_lock_irq(&hdsp->lock);
ucontrol->value.integer.value[0] = hdsp->use_midi_tasklet;
spin_unlock_irq(&hdsp->lock);
@@ -2831,7 +2831,7 @@ static int snd_hdsp_put_use_midi_tasklet
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
unsigned int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.integer.value[0] & 1;
@@ -2873,12 +2873,12 @@ static int snd_hdsp_get_mixer(struct snd
source = ucontrol->value.integer.value[0];
destination = ucontrol->value.integer.value[1];
-
+
if (source >= hdsp->max_channels)
addr = hdsp_playback_to_output_key(hdsp,source-hdsp->max_channels,destination);
else
addr = hdsp_input_to_output_key(hdsp,source, destination);
-
+
spin_lock_irq(&hdsp->lock);
ucontrol->value.integer.value[2] = hdsp_read_gain (hdsp, addr);
spin_unlock_irq(&hdsp->lock);
@@ -2926,7 +2926,7 @@ static int snd_hdsp_put_mixer(struct snd
static int snd_hdsp_info_sync_check(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
- static char *texts[] = {"No Lock", "Lock", "Sync" };
+ static char *texts[] = {"No Lock", "Lock", "Sync" };
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = 3;
@@ -2971,7 +2971,7 @@ static int hdsp_spdif_sync_check(struct
int status = hdsp_read(hdsp, HDSP_statusRegister);
if (status & HDSP_SPDIFErrorFlag)
return 0;
- else {
+ else {
if (status & HDSP_SPDIFSync)
return 2;
else
@@ -3007,7 +3007,7 @@ static int hdsp_adatsync_sync_check(stru
return 1;
} else
return 0;
-}
+}
static int snd_hdsp_get_adatsync_sync_check(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
@@ -3025,17 +3025,17 @@ static int snd_hdsp_get_adatsync_sync_ch
}
static int hdsp_adat_sync_check(struct hdsp *hdsp, int idx)
-{
+{
int status = hdsp_read(hdsp, HDSP_statusRegister);
-
+
if (status & (HDSP_Lock0>>idx)) {
if (status & (HDSP_Sync0>>idx))
return 2;
else
- return 1;
+ return 1;
} else
return 0;
-}
+}
static int snd_hdsp_get_adat_sync_check(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
@@ -3053,7 +3053,7 @@ static int snd_hdsp_get_adat_sync_check(
break;
case Multiface:
case H9632:
- if (offset >= 1)
+ if (offset >= 1)
return -EINVAL;
break;
default:
@@ -3115,7 +3115,7 @@ static int snd_hdsp_get_dds_offset(struc
static int snd_hdsp_get_dds_offset(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
-
+
ucontrol->value.enumerated.item[0] = hdsp_dds_offset(hdsp);
return 0;
}
@@ -3125,7 +3125,7 @@ static int snd_hdsp_put_dds_offset(struc
struct hdsp *hdsp = snd_kcontrol_chip(kcontrol);
int change;
int val;
-
+
if (!snd_hdsp_use_is_exclusive(hdsp))
return -EBUSY;
val = ucontrol->value.enumerated.item[0];
@@ -3169,8 +3169,8 @@ static struct snd_kcontrol_new snd_hdsp_
.info = snd_hdsp_control_spdif_mask_info,
.get = snd_hdsp_control_spdif_mask_get,
.private_value = IEC958_AES0_NONAUDIO |
- IEC958_AES0_PROFESSIONAL |
- IEC958_AES0_CON_EMPHASIS,
+ IEC958_AES0_PROFESSIONAL |
+ IEC958_AES0_CON_EMPHASIS,
},
{
.access = SNDRV_CTL_ELEM_ACCESS_READ,
@@ -3188,7 +3188,7 @@ HDSP_SPDIF_PROFESSIONAL("IEC958 Professi
HDSP_SPDIF_PROFESSIONAL("IEC958 Professional Bit", 0),
HDSP_SPDIF_EMPHASIS("IEC958 Emphasis Bit", 0),
HDSP_SPDIF_NON_AUDIO("IEC958 Non-audio Bit", 0),
-/* 'Sample Clock Source' complies with the alsa control naming scheme */
+/* 'Sample Clock Source' complies with the alsa control naming scheme */
HDSP_CLOCK_SOURCE("Sample Clock Source", 0),
{
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@@ -3240,7 +3240,7 @@ static int snd_hdsp_create_controls(stru
return err;
}
}
-
+
/* DA, AD and Phone gain and XLR breakout cable controls for H9632 cards */
if (hdsp->io_type == H9632) {
for (idx = 0; idx < ARRAY_SIZE(snd_hdsp_9632_controls); idx++) {
@@ -3259,7 +3259,7 @@ static int snd_hdsp_create_controls(stru
}
/*------------------------------------------------------------
- /proc interface
+ /proc interface
------------------------------------------------------------*/
static void
@@ -3277,7 +3277,7 @@ snd_hdsp_proc_read(struct snd_info_entry
if (hdsp_check_for_iobox (hdsp)) {
snd_iprintf(buffer, "No I/O box connected.\nPlease connect one and upload firmware.\n");
return;
- }
+ }
if (hdsp_check_for_firmware(hdsp, 0)) {
if (hdsp->state & HDSP_FirmwareCached) {
@@ -3298,7 +3298,7 @@ snd_hdsp_proc_read(struct snd_info_entry
}
}
}
-
+
status = hdsp_read(hdsp, HDSP_statusRegister);
status2 = hdsp_read(hdsp, HDSP_status2Register);
@@ -3362,17 +3362,17 @@ snd_hdsp_proc_read(struct snd_info_entry
break;
case HDSP_CLOCK_SOURCE_INTERNAL_192KHZ:
clock_source = "Internal 192 kHz";
- break;
+ break;
default:
- clock_source = "Error";
+ clock_source = "Error";
}
snd_iprintf (buffer, "Sample Clock Source: %s\n", clock_source);
-
+
if (hdsp_system_clock_mode(hdsp))
system_clock_mode = "Slave";
else
system_clock_mode = "Master";
-
+
switch (hdsp_pref_sync_ref (hdsp)) {
case HDSP_SYNC_FROM_WORD:
pref_sync_ref = "Word Clock";
@@ -3397,7 +3397,7 @@ snd_hdsp_proc_read(struct snd_info_entry
break;
}
snd_iprintf (buffer, "Preferred Sync Reference: %s\n", pref_sync_ref);
-
+
switch (hdsp_autosync_ref (hdsp)) {
case HDSP_AUTOSYNC_FROM_WORD:
autosync_ref = "Word Clock";
@@ -3410,7 +3410,7 @@ snd_hdsp_proc_read(struct snd_info_entry
break;
case HDSP_AUTOSYNC_FROM_NONE:
autosync_ref = "None";
- break;
+ break;
case HDSP_AUTOSYNC_FROM_ADAT1:
autosync_ref = "ADAT1";
break;
@@ -3425,14 +3425,14 @@ snd_hdsp_proc_read(struct snd_info_entry
break;
}
snd_iprintf (buffer, "AutoSync Reference: %s\n", autosync_ref);
-
+
snd_iprintf (buffer, "AutoSync Frequency: %d\n", hdsp_external_sample_rate(hdsp));
-
+
snd_iprintf (buffer, "System Clock Mode: %s\n", system_clock_mode);
snd_iprintf (buffer, "System Clock Frequency: %d\n", hdsp->system_sample_rate);
snd_iprintf (buffer, "System Clock Locked: %s\n", hdsp->clock_source_locked ? "Yes" : "No");
-
+
snd_iprintf(buffer, "\n");
switch (hdsp_spdif_in(hdsp)) {
@@ -3452,7 +3452,7 @@ snd_hdsp_proc_read(struct snd_info_entry
snd_iprintf(buffer, "IEC958 input: ???\n");
break;
}
-
+
if (hdsp->control_register & HDSP_SPDIFOpticalOut)
snd_iprintf(buffer, "IEC958 output: Coaxial & ADAT1\n");
else
@@ -3510,13 +3510,13 @@ snd_hdsp_proc_read(struct snd_info_entry
snd_iprintf (buffer, "SPDIF: No Lock\n");
else
snd_iprintf (buffer, "SPDIF: %s\n", x ? "Sync" : "Lock");
-
+
x = status2 & HDSP_wc_sync;
if (status2 & HDSP_wc_lock)
snd_iprintf (buffer, "Word Clock: %s\n", x ? "Sync" : "Lock");
else
snd_iprintf (buffer, "Word Clock: No Lock\n");
-
+
x = status & HDSP_TimecodeSync;
if (status & HDSP_TimecodeLock)
snd_iprintf(buffer, "ADAT Sync: %s\n", x ? "Sync" : "Lock");
@@ -3524,11 +3524,11 @@ snd_hdsp_proc_read(struct snd_info_entry
snd_iprintf(buffer, "ADAT Sync: No Lock\n");
snd_iprintf(buffer, "\n");
-
+
/* Informations about H9632 specific controls */
if (hdsp->io_type == H9632) {
char *tmp;
-
+
switch (hdsp_ad_gain(hdsp)) {
case 0:
tmp = "-10 dBV";
@@ -3554,7 +3554,7 @@ snd_hdsp_proc_read(struct snd_info_entry
break;
}
snd_iprintf(buffer, "DA Gain : %s\n", tmp);
-
+
switch (hdsp_phone_gain(hdsp)) {
case 0:
tmp = "0 dB";
@@ -3568,8 +3568,8 @@ snd_hdsp_proc_read(struct snd_info_entry
}
snd_iprintf(buffer, "Phones Gain : %s\n", tmp);
- snd_iprintf(buffer, "XLR Breakout Cable : %s\n", hdsp_xlr_breakout_cable(hdsp) ? "yes" : "no");
-
+ snd_iprintf(buffer, "XLR Breakout Cable : %s\n", hdsp_xlr_breakout_cable(hdsp) ? "yes" : "no");
+
if (hdsp->control_register & HDSP_AnalogExtensionBoard)
snd_iprintf(buffer, "AEB : on (ADAT1 internal)\n");
else
@@ -3632,18 +3632,18 @@ static int snd_hdsp_set_defaults(struct
/* set defaults:
- SPDIF Input via Coax
+ SPDIF Input via Coax
Master clock mode
maximum latency (7 => 2^7 = 8192 samples, 64Kbyte buffer,
which implies 2 4096 sample, 32Kbyte periods).
- Enable line out.
+ Enable line out.
*/
- hdsp->control_register = HDSP_ClockModeMaster |
- HDSP_SPDIFInputCoaxial |
- hdsp_encode_latency(7) |
+ hdsp->control_register = HDSP_ClockModeMaster |
+ HDSP_SPDIFInputCoaxial |
+ hdsp_encode_latency(7) |
HDSP_LineOut;
-
+
hdsp_write(hdsp, HDSP_controlRegister, hdsp->control_register);
@@ -3661,7 +3661,7 @@ static int snd_hdsp_set_defaults(struct
hdsp_compute_period_size(hdsp);
/* silence everything */
-
+
for (i = 0; i < HDSP_MATRIX_MIXER_SIZE; ++i)
hdsp->mixer_matrix[i] = MINUS_INFINITY_GAIN;
@@ -3669,7 +3669,7 @@ static int snd_hdsp_set_defaults(struct
if (hdsp_write_gain (hdsp, i, MINUS_INFINITY_GAIN))
return -EIO;
}
-
+
/* H9632 specific defaults */
if (hdsp->io_type == H9632) {
hdsp->control_register |= (HDSP_DAGainPlus4dBu | HDSP_ADGainPlus4dBu | HDSP_PhoneGain0dB);
@@ -3687,12 +3687,12 @@ static void hdsp_midi_tasklet(unsigned l
static void hdsp_midi_tasklet(unsigned long arg)
{
struct hdsp *hdsp = (struct hdsp *)arg;
-
+
if (hdsp->midi[0].pending)
snd_hdsp_midi_input_read (&hdsp->midi[0]);
if (hdsp->midi[1].pending)
snd_hdsp_midi_input_read (&hdsp->midi[1]);
-}
+}
static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id)
{
@@ -3704,7 +3704,7 @@ static irqreturn_t snd_hdsp_interrupt(in
unsigned int midi0status;
unsigned int midi1status;
int schedule = 0;
-
+
status = hdsp_read(hdsp, HDSP_statusRegister);
audio = status & HDSP_audioIRQPending;
@@ -3718,15 +3718,15 @@ static irqreturn_t snd_hdsp_interrupt(in
midi0status = hdsp_read (hdsp, HDSP_midiStatusIn0) & 0xff;
midi1status = hdsp_read (hdsp, HDSP_midiStatusIn1) & 0xff;
-
+
if (audio) {
if (hdsp->capture_substream)
snd_pcm_period_elapsed(hdsp->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream);
-
+
if (hdsp->playback_substream)
snd_pcm_period_elapsed(hdsp->pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream);
}
-
+
if (midi0 && midi0status) {
if (hdsp->use_midi_tasklet) {
/* we disable interrupts for this input until processing is done */
@@ -3767,11 +3767,11 @@ static char *hdsp_channel_buffer_locatio
{
int mapped_channel;
- snd_assert(channel >= 0 && channel < hdsp->max_channels, return NULL);
-
+ snd_assert(channel >= 0 && channel < hdsp->max_channels, return NULL);
+
if ((mapped_channel = hdsp->channel_map[channel]) < 0)
return NULL;
-
+
if (stream == SNDRV_PCM_STREAM_CAPTURE)
return hdsp->capture_buffer + (mapped_channel * HDSP_CHANNEL_BUFFER_BYTES);
else
@@ -3894,7 +3894,7 @@ static int snd_hdsp_hw_params(struct snd
/* We're fine. */
spin_unlock_irq(&hdsp->lock);
- return 0;
+ return 0;
} else {
spin_unlock_irq(&hdsp->lock);
@@ -3958,7 +3958,7 @@ static int snd_hdsp_trigger(struct snd_p
struct hdsp *hdsp = snd_pcm_substream_chip(substream);
struct snd_pcm_substream *other;
int running;
-
+
if (hdsp_check_for_iobox (hdsp))
return -EIO;
@@ -4052,10 +4052,10 @@ static struct snd_pcm_hardware snd_hdsp_
.formats = SNDRV_PCM_FMTBIT_S32_LE,
#endif
.rates = (SNDRV_PCM_RATE_32000 |
- SNDRV_PCM_RATE_44100 |
- SNDRV_PCM_RATE_48000 |
- SNDRV_PCM_RATE_64000 |
- SNDRV_PCM_RATE_88200 |
+ SNDRV_PCM_RATE_44100 |
+ SNDRV_PCM_RATE_48000 |
+ SNDRV_PCM_RATE_64000 |
+ SNDRV_PCM_RATE_88200 |
SNDRV_PCM_RATE_96000),
.rate_min = 32000,
.rate_max = 96000,
@@ -4081,10 +4081,10 @@ static struct snd_pcm_hardware snd_hdsp_
.formats = SNDRV_PCM_FMTBIT_S32_LE,
#endif
.rates = (SNDRV_PCM_RATE_32000 |
- SNDRV_PCM_RATE_44100 |
- SNDRV_PCM_RATE_48000 |
- SNDRV_PCM_RATE_64000 |
- SNDRV_PCM_RATE_88200 |
+ SNDRV_PCM_RATE_44100 |
+ SNDRV_PCM_RATE_48000 |
+ SNDRV_PCM_RATE_64000 |
+ SNDRV_PCM_RATE_88200 |
SNDRV_PCM_RATE_96000),
.rate_min = 32000,
.rate_max = 96000,
@@ -4163,7 +4163,7 @@ static int snd_hdsp_hw_rule_in_channels_
.max = hdsp->qs_in_channels,
.integer = 1,
};
- return snd_interval_refine(c, &t);
+ return snd_interval_refine(c, &t);
} else if (r->min > 48000 && r->max <= 96000) {
struct snd_interval t = {
.min = hdsp->ds_in_channels,
@@ -4194,7 +4194,7 @@ static int snd_hdsp_hw_rule_out_channels
.max = hdsp->qs_out_channels,
.integer = 1,
};
- return snd_interval_refine(c, &t);
+ return snd_interval_refine(c, &t);
} else if (r->min > 48000 && r->max <= 96000) {
struct snd_interval t = {
.min = hdsp->ds_out_channels,
@@ -4290,7 +4290,7 @@ static int snd_hdsp_playback_open(struct
snd_pcm_set_sync(substream);
- runtime->hw = snd_hdsp_playback_subinfo;
+ runtime->hw = snd_hdsp_playback_subinfo;
runtime->dma_area = hdsp->playback_buffer;
runtime->dma_bytes = HDSP_DMA_AREA_BYTES;
@@ -4311,8 +4311,8 @@ static int snd_hdsp_playback_open(struct
if (hdsp->io_type == H9632) {
runtime->hw.channels_min = hdsp->qs_out_channels;
runtime->hw.channels_max = hdsp->ss_out_channels;
- }
-
+ }
+
snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS,
snd_hdsp_hw_rule_out_channels, hdsp,
SNDRV_PCM_HW_PARAM_CHANNELS, -1);
@@ -4529,7 +4529,7 @@ static int hdsp_get_peak(struct hdsp *hd
hdsp->iobase + HDSP_playbackRmsLevel + i * 8 + 4,
hdsp->iobase + HDSP_playbackRmsLevel + i * 8))
return -EFAULT;
- if (copy_u64_le(&peak_rms->input_rms[i],
+ if (copy_u64_le(&peak_rms->input_rms[i],
hdsp->iobase + HDSP_inputRmsLevel + i * 8 + 4,
hdsp->iobase + HDSP_inputRmsLevel + i * 8))
return -EFAULT;
@@ -4539,7 +4539,7 @@ static int hdsp_get_peak(struct hdsp *hd
static int snd_hdsp_hwdep_ioctl(struct snd_hwdep *hw, struct file *file, unsigned int cmd, unsigned long arg)
{
- struct hdsp *hdsp = (struct hdsp *)hw->private_data;
+ struct hdsp *hdsp = (struct hdsp *)hw->private_data;
void __user *argp = (void __user *)arg;
switch (cmd) {
@@ -4564,9 +4564,9 @@ static int snd_hdsp_hwdep_ioctl(struct s
struct hdsp_config_info info;
unsigned long flags;
int i;
-
+
if (!(hdsp->state & HDSP_FirmwareLoaded)) {
- snd_printk(KERN_ERR "Hammerfall-DSP: Firmware needs to be uploaded to the card.\n");
+ snd_printk(KERN_ERR "Hammerfall-DSP: Firmware needs to be uploaded to the card.\n");
return -EINVAL;
}
spin_lock_irqsave(&hdsp->lock, flags);
@@ -4594,7 +4594,7 @@ static int snd_hdsp_hwdep_ioctl(struct s
info.ad_gain = (unsigned char)hdsp_ad_gain(hdsp);
info.phone_gain = (unsigned char)hdsp_phone_gain(hdsp);
info.xlr_breakout_cable = (unsigned char)hdsp_xlr_breakout_cable(hdsp);
-
+
}
if (hdsp->io_type == H9632 || hdsp->io_type == H9652)
info.analog_extension_board = (unsigned char)hdsp_aeb(hdsp);
@@ -4605,7 +4605,7 @@ static int snd_hdsp_hwdep_ioctl(struct s
}
case SNDRV_HDSP_IOCTL_GET_9632_AEB: {
struct hdsp_9632_aeb h9632_aeb;
-
+
if (hdsp->io_type != H9632) return -EINVAL;
h9632_aeb.aebi = hdsp->ss_in_channels - H9632_SS_CHANNELS;
h9632_aeb.aebo = hdsp->ss_out_channels - H9632_SS_CHANNELS;
@@ -4616,7 +4616,7 @@ static int snd_hdsp_hwdep_ioctl(struct s
case SNDRV_HDSP_IOCTL_GET_VERSION: {
struct hdsp_version hdsp_version;
int err;
-
+
if (hdsp->io_type == H9652 || hdsp->io_type == H9632) return -EINVAL;
if (hdsp->io_type == Undefined) {
if ((err = hdsp_get_iobox_version(hdsp)) < 0)
@@ -4625,14 +4625,14 @@ static int snd_hdsp_hwdep_ioctl(struct s
hdsp_version.io_type = hdsp->io_type;
hdsp_version.firmware_rev = hdsp->firmware_rev;
if ((err = copy_to_user(argp, &hdsp_version, sizeof(hdsp_version))))
- return -EFAULT;
+ return -EFAULT;
break;
}
case SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE: {
struct hdsp_firmware __user *firmware;
u32 __user *firmware_data;
int err;
-
+
if (hdsp->io_type == H9652 || hdsp->io_type == H9632) return -EINVAL;
/* SNDRV_HDSP_IOCTL_GET_VERSION must have been called */
if (hdsp->io_type == Undefined) return -EINVAL;
@@ -4645,25 +4645,25 @@ static int snd_hdsp_hwdep_ioctl(struct s
if (get_user(firmware_data, &firmware->firmware_data))
return -EFAULT;
-
+
if (hdsp_check_for_iobox (hdsp))
return -EIO;
if (copy_from_user(hdsp->firmware_cache, firmware_data, sizeof(hdsp->firmware_cache)) != 0)
return -EFAULT;
-
+
hdsp->state |= HDSP_FirmwareCached;
if ((err = snd_hdsp_load_firmware_from_cache(hdsp)) < 0)
return err;
-
+
if (!(hdsp->state & HDSP_InitializationComplete)) {
if ((err = snd_hdsp_enable_io(hdsp)) < 0)
return err;
-
- snd_hdsp_initialize_channels(hdsp);
+
+ snd_hdsp_initialize_channels(hdsp);
snd_hdsp_initialize_midi_flush(hdsp);
-
+
if ((err = snd_hdsp_create_alsa_devices(hdsp->card, hdsp)) < 0) {
snd_printk(KERN_ERR "Hammerfall-DSP: error creating alsa devices\n");
return err;
@@ -4710,10 +4710,10 @@ static int snd_hdsp_create_hwdep(struct
{
struct snd_hwdep *hw;
int err;
-
+
if ((err = snd_hwdep_new(card, "HDSP hwdep", 0, &hw)) < 0)
return err;
-
+
hdsp->hwdep = hw;
hw->private_data = hdsp;
strcpy(hw->name, "HDSP hwdep interface");
@@ -4721,7 +4721,7 @@ static int snd_hdsp_create_hwdep(struct
hw->ops.open = snd_hdsp_hwdep_dummy_op;
hw->ops.ioctl = snd_hdsp_hwdep_ioctl;
hw->ops.release = snd_hdsp_hwdep_dummy_op;
-
+
return 0;
}
@@ -4747,31 +4747,31 @@ static int snd_hdsp_create_pcm(struct sn
static void snd_hdsp_9652_enable_mixer (struct hdsp *hdsp)
{
- hdsp->control2_register |= HDSP_9652_ENABLE_MIXER;
+ hdsp->control2_register |= HDSP_9652_ENABLE_MIXER;
hdsp_write (hdsp, HDSP_control2Reg, hdsp->control2_register);
}
static int snd_hdsp_enable_io (struct hdsp *hdsp)
{
int i;
-
+
if (hdsp_fifo_wait (hdsp, 0, 100)) {
snd_printk(KERN_ERR "Hammerfall-DSP: enable_io fifo_wait failed\n");
return -EIO;
}
-
+
for (i = 0; i < hdsp->max_channels; ++i) {
hdsp_write (hdsp, HDSP_inputEnable + (4 * i), 1);
hdsp_write (hdsp, HDSP_outputEnable + (4 * i), 1);
}
-
+
return 0;
}
static void snd_hdsp_initialize_channels(struct hdsp *hdsp)
{
int status, aebi_channels, aebo_channels;
-
+
switch (hdsp->io_type) {
case Digiface:
hdsp->card_name = "RME Hammerfall DSP + Digiface";
@@ -4784,7 +4784,7 @@ static void snd_hdsp_initialize_channels
hdsp->ss_in_channels = hdsp->ss_out_channels = H9652_SS_CHANNELS;
hdsp->ds_in_channels = hdsp->ds_out_channels = H9652_DS_CHANNELS;
break;
-
+
case H9632:
status = hdsp_read(hdsp, HDSP_statusRegister);
/* HDSP_AEBx bits are low when AEB are connected */
@@ -4804,9 +4804,9 @@ static void snd_hdsp_initialize_channels
hdsp->ss_in_channels = hdsp->ss_out_channels = MULTIFACE_SS_CHANNELS;
hdsp->ds_in_channels = hdsp->ds_out_channels = MULTIFACE_DS_CHANNELS;
break;
-
+
default:
- /* should never get here */
+ /* should never get here */
break;
}
}
@@ -4820,12 +4820,12 @@ static int snd_hdsp_create_alsa_devices(
static int snd_hdsp_create_alsa_devices(struct snd_card *card, struct hdsp *hdsp)
{
int err;
-
+
if ((err = snd_hdsp_create_pcm(card, hdsp)) < 0) {
snd_printk(KERN_ERR "Hammerfall-DSP: Error creating pcm interface\n");
return err;
}
-
+
if ((err = snd_hdsp_create_midi(card, hdsp, 0)) < 0) {
snd_printk(KERN_ERR "Hammerfall-DSP: Error creating first midi interface\n");
@@ -4856,19 +4856,19 @@ static int snd_hdsp_create_alsa_devices(
snd_printk(KERN_ERR "Hammerfall-DSP: Error setting default values\n");
return err;
}
-
+
if (!(hdsp->state & HDSP_InitializationComplete)) {
strcpy(card->shortname, "Hammerfall DSP");
- sprintf(card->longname, "%s at 0x%lx, irq %d", hdsp->card_name,
+ sprintf(card->longname, "%s at 0x%lx, irq %d", hdsp->card_name,
hdsp->port, hdsp->irq);
-
+
if ((err = snd_card_register(card)) < 0) {
snd_printk(KERN_ERR "Hammerfall-DSP: error registering card\n");
return err;
}
hdsp->state |= HDSP_InitializationComplete;
}
-
+
return 0;
}
@@ -4879,7 +4879,7 @@ static int hdsp_request_fw_loader(struct
const char *fwfile;
const struct firmware *fw;
int err;
-
+
if (hdsp->io_type == H9652 || hdsp->io_type == H9632)
return 0;
if (hdsp->io_type == Undefined) {
@@ -4888,7 +4888,7 @@ static int hdsp_request_fw_loader(struct
if (hdsp->io_type == H9652 || hdsp->io_type == H9632)
return 0;
}
-
+
/* caution: max length of firmware filename is 30! */
switch (hdsp->io_type) {
case Multiface:
@@ -4922,12 +4922,12 @@ static int hdsp_request_fw_loader(struct
memcpy(hdsp->firmware_cache, fw->data, sizeof(hdsp->firmware_cache));
release_firmware(fw);
-
+
hdsp->state |= HDSP_FirmwareCached;
if ((err = snd_hdsp_load_firmware_from_cache(hdsp)) < 0)
return err;
-
+
if (!(hdsp->state & HDSP_InitializationComplete)) {
if ((err = snd_hdsp_enable_io(hdsp)) < 0)
return err;
@@ -4974,14 +4974,14 @@ static int __devinit snd_hdsp_create(str
hdsp->max_channels = 26;
hdsp->card = card;
-
+
spin_lock_init(&hdsp->lock);
tasklet_init(&hdsp->midi_tasklet, hdsp_midi_tasklet, (unsigned long)hdsp);
-
+
pci_read_config_word(hdsp->pci, PCI_CLASS_REVISION, &hdsp->firmware_rev);
hdsp->firmware_rev &= 0xff;
-
+
/* From Martin Bjoernsen :
"It is important that the card's latency timer register in
the PCI configuration space is set to a value much larger
@@ -4990,7 +4990,7 @@ static int __devinit snd_hdsp_create(str
to its maximum 255 to avoid problems with some computers."
*/
pci_write_config_byte(hdsp->pci, PCI_LATENCY_TIMER, 0xFF);
-
+
strcpy(card->driver, "H-DSP");
strcpy(card->mixername, "Xilinx FPGA");
@@ -5004,7 +5004,7 @@ static int __devinit snd_hdsp_create(str
} else {
hdsp->card_name = "RME HDSP 9632";
hdsp->max_channels = 16;
- is_9632 = 1;
+ is_9632 = 1;
}
if ((err = pci_enable_device(pci)) < 0)
@@ -5033,7 +5033,7 @@ static int __devinit snd_hdsp_create(str
if ((err = snd_hdsp_initialize_memory(hdsp)) < 0)
return err;
-
+
if (!is_9652 && !is_9632) {
/* we wait 2 seconds to let freshly inserted cardbus cards do their hardware init */
ssleep(2);
@@ -5056,35 +5056,35 @@ static int __devinit snd_hdsp_create(str
return err;
return 0;
} else {
- snd_printk(KERN_INFO "Hammerfall-DSP: Firmware already present, initializing card.\n");
+ snd_printk(KERN_INFO "Hammerfall-DSP: Firmware already present, initializing card.\n");
if (hdsp_read(hdsp, HDSP_status2Register) & HDSP_version1)
hdsp->io_type = Multiface;
- else
+ else
hdsp->io_type = Digiface;
}
}
-
+
if ((err = snd_hdsp_enable_io(hdsp)) != 0)
return err;
-
+
if (is_9652)
hdsp->io_type = H9652;
-
+
if (is_9632)
hdsp->io_type = H9632;
if ((err = snd_hdsp_create_hwdep(card, hdsp)) < 0)
return err;
-
+
snd_hdsp_initialize_channels(hdsp);
snd_hdsp_initialize_midi_flush(hdsp);
- hdsp->state |= HDSP_FirmwareLoaded;
+ hdsp->state |= HDSP_FirmwareLoaded;
if ((err = snd_hdsp_create_alsa_devices(card, hdsp)) < 0)
return err;
- return 0;
+ return 0;
}
static int snd_hdsp_free(struct hdsp *hdsp)
@@ -5100,13 +5100,13 @@ static int snd_hdsp_free(struct hdsp *hd
free_irq(hdsp->irq, (void *)hdsp);
snd_hdsp_free_buffers(hdsp);
-
+
if (hdsp->iobase)
iounmap(hdsp->iobase);
if (hdsp->port)
pci_release_regions(hdsp->pci);
-
+
pci_disable_device(hdsp->pci);
return 0;
}
@@ -5149,7 +5149,7 @@ static int __devinit snd_hdsp_probe(stru
}
strcpy(card->shortname, "Hammerfall DSP");
- sprintf(card->longname, "%s at 0x%lx, irq %d", hdsp->card_name,
+ sprintf(card->longname, "%s at 0x%lx, irq %d", hdsp->card_name,
hdsp->port, hdsp->irq);
if ((err = snd_card_register(card)) < 0) {
3
5
The below patch should stop alsa-info.sh from running amixer on cards that
dont exist (ie, if the user has no card0, but has a card1)
I realise its a generally a rare case, and cards are _usually_ consecutive,
but we might aswell cover all bases if we can.
diff -r 7907cfbab11c alsa-info.sh
--- a/alsa-info.sh Mon Feb 18 12:13:23 2008 +0100
+++ b/alsa-info.sh Mon Feb 25 15:16:16 2008 +1000
@@ -1,6 +1,6 @@
#!/bin/bash
-SCRIPT_VERSION=0.4.37
+SCRIPT_VERSION=0.4.38
CHANGELOG="http://hg.alsa-project.org/alsa/log/tip/alsa-info.sh"
#################################################################################
@@ -98,7 +98,7 @@ withamixer() {
echo "!!Amixer output" >> $FILE
echo "!!-------------" >> $FILE
echo "" >> $FILE
- for i in `seq 0 $LAST_CARD`;do
+ for i in `grep "]: " /proc/asound/cards | awk -F ' ' '{ print $1} '` ; do
CARD_NAME=`grep "^ $i" /tmp/alsainfo/alsacards.tmp|awk {'print $2'}`
echo "!!-------Mixer controls for card $i $CARD_NAME]" >> $FILE
echo "" >>$FILE
--
Happiness is like peeing your pants. Everyone can see it, but only you can
feel its warmth
2
1
On Fri, Feb 22, 2008 at 05:39:54PM +0100, Alexandre BOUIN wrote:
> Using ASoC layer, I'd like to perform this example behaviour with my widgets
> :
> - 1 output mixer MIXOUT is connected to 2 outputs OUT1 and OUT2
> - OUT1 and OUT2 can be powered independently
> This seems easy, but atm while one is powered, the other is powered too.
I may be misunderstanding what you're doing here but I suspect that
you need to use snd_soc_dapm_set_endpoint() to mark the outputs that are
not in use as disconnected. If you do that then then DAPM will not
power up the relevant output path.
You can do this at any point at run time - see sound/soc/pxa/tosa.c for
an example of this.
2
1
25 Feb '08
STAC_DELL_BIOS quirks were setting the association value wrong for port 0x0f, which prevented it from
being included in hp_outs[].
Signed-off-by: Matthew Ranostay <mranostay(a)embeddedalley.com>
---
diff -r 30701aaf404c pci/hda/patch_sigmatel.c
--- a/pci/hda/patch_sigmatel.c Wed Feb 20 12:13:29 2008 +0100
+++ b/pci/hda/patch_sigmatel.c Wed Feb 20 15:01:35 2008 -0700
@@ -3630,7 +3630,7 @@ static int patch_stac927x(struct hda_cod
break;
case STAC_DELL_BIOS:
/* correct the front output jack as a hp out */
- stac92xx_set_config_reg(codec, 0x0f, 0x02270110);
+ stac92xx_set_config_reg(codec, 0x0f, 0x0227011f);
/* correct the front input jack as a mic */
stac92xx_set_config_reg(codec, 0x0e, 0x02a79130);
/* fallthru */
4
8
25 Feb '08
follow step-by-step instruction to compile everything.
I'm using debian lenny, for ubuntu should be the same
------- download patch for us-122l---------
mkdir /usr/src/us-122l
cd /usr/src/us-122l
wget -c http://cache.gmane.org//gmane/linux/alsa/devel/49344-001.bin -O
0001-Driver-for-the-US-122L-usb-soundcard.patch
wget -c http://cache.gmane.org//gmane/linux/alsa/devel/49344-002.bin -O
0001-Midi-in-support-for-the-US-122L-usb-soundcard.patch
wget -c http://cache.gmane.org//gmane/linux/alsa/devel/49344-003.bin -O
0001-usb-stream-for-isochrone-usb-i-o.patch
wget -c http://marc.info/?l=linux-usb-devel&m=119444869917392&q=raw -O
ehci-hcd_complete_iso_urbs_ASAP.patch
wget -c http://cache.gmane.org//gmane/linux/alsa/devel/49345-001.bin -O
jackd-usb_stream-driver.diff.bz2
-------recompile the kernel---------
apt-get install debhelper kernel-package libncurses5-dev fakeroot
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2
wget
http://www.kernel.org/pub/linux/kernel/projects/rt/older/patch-2.6.23.1-rt1….
this is only if u want lowlatency)
tar xjvf linux-2.6.23.1.tar.bz2
cd linux-2.6.23.1
bzcat ../patch-2.6.23.1-rt11.bz2 |patch -p1 (Nb. this is only if u want
lowlatency)
from
patch -p1 < ../us-122l/0001-Driver-for-the-US-122L-usb-soundcard.patch
patch -p1 < ../us-122l/0001-
Midi-in-support-for-the-US-122L-usb-soundcard.patch
patch -p1 < ../us-122l/0001-usb-stream-for-isochrone-usb-i-o.patch
patch -p1 < ../us-122l/ehci-hcd_complete_iso_urbs_ASAP.patch
make-kpkg clean
cp /boot/config-2.6.22-3-amd64 .config
make oldconfig
- say 'yes' when u found your hardware and 'no' for unnecessary driver or
press just enter if u r not sure
make menuconfig
- add driver for us-122l
Device Drivers -> Sound -> Advanced Linux Sound Architecture -> USB devices
-> Tascam US-122L USB driver
- add tweaks for Alsa low-latency, u can get from this howto
http://alsa-project.org/main/index.php/Low_latency_howto
fakeroot make-kpkg --append-to-version -lowlatency --revision=1 --initrd
kernel_image
dpkg -i ../linux-image-2.6.23.1-rt11-lowlatency_1_amd64.deb
update-initramfs -c -k 2.6.23.1-rt11-lowlatency
----------recompile jackd 0.103------------
apt-get install dh-buildinfo libasound2-dev libsndfile1-dev doxygen
libcap-dev libreadline5-
dev libraw1394-dev libfreebob0-dev chrpath cdbs type-handling
cd /usr/src
wget -c
http://ftp.de.debian.org/debian/pool/main/j/jack-audio-connection-kit/jack-…
wget -c
http://ftp.de.debian.org/debian/pool/main/j/jack-audio-connection-kit/jack-…
wget -c
http://ftp.de.debian.org/debian/pool/main/j/jack-audio-connection-kit/jack-…
cp ../us-122l/jackd-usb_stream-driver.diff.bz2
jack-audio-connection-kit-0.103.0/debian/patches/
dpkg-source -x jack-audio-connection-kit_0.103.0-6.dsc
cd jack-audio-connection-kit-0.103.0/
fakeroot dpkg-buildpackage -b -uc
dpkg -i ../*jack*.deb
----end
Unfortunately when i plug the interface i get some error in kernel log.
usbcore: registered new interface driver snd-usb-us122l
usb 5-4: USB disconnect, address 5
usb 5-4: new high speed USB device using ehci_hcd and address 6
usb 5-4: configuration #1 chosen from 1 choice
snd_us122l_probe:380:ffff810023435800:0
snd-usb-us122l: probe of 5-4:1.0 failed with error -5
snd_us122l_probe:380:ffff81002a9a3000:1
us122l_create_card:302
us122l_start:225
us122l_start:228
us122l_start:230
playback_prep_freqn:58 idle=-18 ul=1518 ps=1536
playback_prep_freqn:58 idle=0 ul=1554 ps=1536
i_capture_start:566: 0 0 0 30 36 36 30 36 30 36 30 36 30 36 30 36 30 36 30
36 30 36 30 36 30 36 30 36 30 36 30 36 30 36 36 36 30 36 30 36 30 36 30 36
30 36
playback_prep_freqn:58 idle=-12 ul=1524 ps=1536
playback_prep_freqn:58 idle=-30 ul=1518 ps=1536
stream_start:510 253 0
stream_start:510 254 0
i_capture_start:558
us122l_start error -14
snd-usb-us122l: probe of 5-4:1.1 failed with error -5
$ lsmod
Module Size Used by
nls_iso8859_1 9600 0
nls_cp437 11392 0
vfat 18176 0
fat 59056 1 vfat
mmc_block 18816 0
tifm_sd 16392 0
usb_storage 91424 0
snd_rtctimer 8400 0
snd_usb_us122l 23008 0
snd_usb_lib 22272 1 snd_usb_us122l
snd_seq_dummy 8452 2
snd_seq_oss 37568 0
snd_seq_midi 13376 0
snd_seq_midi_event 12416 2 snd_seq_oss,snd_seq_midi
snd_seq 59872 6
snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_rawmidi 31136 2 snd_usb_lib,snd_seq_midi
snd_seq_device 12948 5
snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq,snd_rawmidi
snd_hwdep 15240 1 snd_usb_us122l
i915 31744 2
drm 101928 3 i915
binfmt_misc 17676 1
rfcomm 50344 4
l2cap 33024 9 rfcomm
ppdev 13704 0
lp 17448 0
ipv6 301576 27
acpi_cpufreq 14224 1
cpufreq_powersave 6272 0
cpufreq_userspace 9604 0
cpufreq_stats 10384 0
cpufreq_ondemand 13328 0
freq_table 9600 3 acpi_cpufreq,cpufreq_stats,cpufreq_ondemand
cpufreq_conservative 12424 0
fuse 50608 1
tun 16384 0
usbserial 42704 0
loop 24324 0
wlan_scan_sta 18688 1
ath_rate_sample 17664 1
ath_pci 99760 0
wlan 206488 4 wlan_scan_sta,ath_rate_sample,ath_pci
ath_hal 223088 3 ath_rate_sample,ath_pci
snd_hda_intel 334756 1
irtty_sir 13312 0
sir_dev 22280 1 irtty_sir
joydev 15744 0
snd_pcm_oss 48928 0
pcmcia 47008 0
firmware_class 15744 1 pcmcia
snd_mixer_oss 21760 1 snd_pcm_oss
tsdev 13440 0
parport_pc 42408 1
snd_pcm 90888 2 snd_hda_intel,snd_pcm_oss
parport 45708 3 ppdev,lp,parport_pc
iTCO_wdt 17360 0
usbhid 34384 0
tifm_7xx1 12800 0
sdhci 23180 0
irda 202956 2 irtty_sir,sir_dev
hid 33408 1 usbhid
snd_timer 29704 3 snd_rtctimer,snd_seq,snd_pcm
tifm_core 16648 2 tifm_sd,tifm_7xx1
serio_raw 11908 0
yenta_socket 31628 2
rsrc_nonstatic 16000 1 yenta_socket
pcmcia_core 47268 3 pcmcia,yenta_socket,rsrc_nonstatic
crc_ccitt 6656 1 irda
mmc_core 37000 3 mmc_block,tifm_sd,sdhci
psmouse 45852 0
battery 18064 0
button 13856 0
container 9856 0
ac 10760 0
video 26004 0
output 8704 1 video
hci_usb 21532 2
bluetooth 68228 7 rfcomm,l2cap,hci_usb
snd 67000 13
snd_usb_us122l,snd_seq_oss,snd_seq,snd_rawmidi,snd_seq_device,snd_hwdep,snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore 13968 1 snd
intel_agp 31776 1
snd_page_alloc 15376 2 snd_hda_intel,snd_pcm
evdev 15360 6
ext3 137744 3
jbd 67152 1 ext3
mbcache 14336 1 ext3
dm_mirror 28544 0
dm_snapshot 22096 0
dm_mod 66168 9 dm_mirror,dm_snapshot
sd_mod 33792 3
generic 10372 0 [permanent]
ide_core 146832 2 usb_storage,generic
ata_piix 24452 2
ata_generic 13188 0
libata 131344 2 ata_piix,ata_generic
scsi_mod 164888 3 usb_storage,sd_mod,libata
ehci_hcd 38412 0
tg3 111876 0
uhci_hcd 30112 0
thermal 22304 0
processor 43592 2 acpi_cpufreq,thermal
fan 10120 0
Arch: Hp compaq nc4400 (amd64)
any idea? plz help!!
regards,
Federico
2
1
On 24-02-08 10:50, Rene Herman wrote:
> Not yet, but I confirm the bug. I'll try and see of I can locate
> anything. No ETA available.
Can you try if applying the attached makes things work as you'd expect with
respect to the recording levels? Over here it seems to, although I get the
feeling we might as well rename the control "Distortion Levels" as keeping
it at 0 is the only sensible thing.
Even if this works, it's not a final fix, just to confirm. Given that you
posted to alsa-user... if you're not setup to apply this patch (to any semi
recent source) and recompile the driver I hope someone can help.
With respect to the duplex issue -- there seem to be no docs for 688 and
1688 which is a bit of a problem.
Rene.
diff --git a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c
index 5c26d49..eb35267 100644
--- a/sound/isa/es1688/es1688_lib.c
+++ b/sound/isa/es1688/es1688_lib.c
@@ -368,9 +368,11 @@ static int snd_es1688_playback_prepare(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
unsigned int size = snd_pcm_lib_buffer_bytes(substream);
unsigned int count = snd_pcm_lib_period_bytes(substream);
+ int tmp;
chip->dma_size = size;
spin_lock_irqsave(&chip->reg_lock, flags);
+ tmp = snd_es1688_read(chip, 0xb4);
snd_es1688_reset(chip);
snd_es1688_set_rate(chip, substream);
snd_es1688_write(chip, 0xb8, 4); /* auto init DMA mode */
@@ -403,6 +405,7 @@ static int snd_es1688_playback_prepare(struct snd_pcm_substream *substream)
}
snd_es1688_write(chip, 0xb1, (snd_es1688_read(chip, 0xb1) & 0x0f) | 0x50);
snd_es1688_write(chip, 0xb2, (snd_es1688_read(chip, 0xb2) & 0x0f) | 0x50);
+ snd_es1688_write(chip, 0xb4, tmp);
snd_es1688_dsp_command(chip, ES1688_DSP_CMD_SPKON);
spin_unlock_irqrestore(&chip->reg_lock, flags);
/* --- */
@@ -429,9 +432,11 @@ static int snd_es1688_capture_prepare(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
unsigned int size = snd_pcm_lib_buffer_bytes(substream);
unsigned int count = snd_pcm_lib_period_bytes(substream);
+ int tmp;
chip->dma_size = size;
spin_lock_irqsave(&chip->reg_lock, flags);
+ tmp = snd_es1688_read(chip, 0xb4);
snd_es1688_reset(chip);
snd_es1688_set_rate(chip, substream);
snd_es1688_dsp_command(chip, ES1688_DSP_CMD_SPKOFF);
@@ -461,6 +466,7 @@ static int snd_es1688_capture_prepare(struct snd_pcm_substream *substream)
}
snd_es1688_write(chip, 0xb1, (snd_es1688_read(chip, 0xb1) & 0x0f) | 0x50);
snd_es1688_write(chip, 0xb2, (snd_es1688_read(chip, 0xb2) & 0x0f) | 0x50);
+ snd_es1688_write(chip, 0xb4, tmp);
spin_unlock_irqrestore(&chip->reg_lock, flags);
/* --- */
count = -count;
1
0
[alsa-devel] [PATCH] ALSA: update the Kconfig files to be easier to use
by Andrew Paprocki 24 Feb '08
by Andrew Paprocki 24 Feb '08
24 Feb '08
This update to the Kconfig files allows the ability to select/deselect
entire submenus, starting with the root "Sound device support" on the main
kernel configuration page. Inside sound support, ALSA/OSS can be easily
enabled/disabled. Inside ALSA, entire classes of devices can be easily
enabled/disabled at the ALSA menu (e.g. ISA, PCI, USB devices) without
having to manually disable individual cards within the submenus.
Modified menus: main, isa, pci, pcmcia, soc, spi, usb
Signed-off-by: Andrew Paprocki <andrew(a)ishiboo.com>
diff -r 39df17389b57 -r a60a39d8e6fe Kconfig
--- a/Kconfig Fri Feb 22 17:57:02 2008 +0100
+++ b/Kconfig Sat Feb 23 01:04:07 2008 -0500
@@ -1,11 +1,9 @@
# sound/Config.in
#
-menu "Sound"
+menuconfig SOUND
+ tristate "Sound device support"
depends on HAS_IOMEM
-
-config SOUND
- tristate "Sound card support"
help
If you have a sound card in your computer, i.e. if it can say more
than an occasional beep, say Y. Be sure to have all the information
@@ -33,21 +31,22 @@ config SOUND
Kernel patches and supporting utilities to do that are in the pcsp
package, available at <ftp://ftp.infradead.org/pub/pcsp/>.
+if SOUND
+
source "sound/oss/dmasound/Kconfig"
if !M68K
-menu "Advanced Linux Sound Architecture"
- depends on SOUND!=n
-
-config SND
- tristate "Advanced Linux Sound Architecture"
- depends on SOUND
- help
+menuconfig SND
+ tristate "Advanced Linux Sound Architecture"
+ depends on SOUND!=n
+ help
Say 'Y' or 'M' to enable ALSA (Advanced Linux Sound Architecture),
the new base sound system.
For more information, see <http://www.alsa-project.org/>
+
+if SND
source "sound/core/Kconfig"
@@ -63,9 +62,7 @@ source "sound/aoa/Kconfig"
source "sound/arm/Kconfig"
-if SPI
source "sound/spi/Kconfig"
-endif
source "sound/mips/Kconfig"
@@ -85,22 +82,21 @@ source "sound/parisc/Kconfig"
source "sound/soc/Kconfig"
-endmenu
+endif # SND
-menu "Open Sound System"
+menuconfig SOUND_PRIME
+ tristate "Open Sound System (DEPRECATED)"
depends on SOUND!=n
-
-config SOUND_PRIME
- tristate "Open Sound System (DEPRECATED)"
- depends on SOUND
help
Say 'Y' or 'M' to enable Open Sound System drivers.
+if SOUND_PRIME
+
source "sound/oss/Kconfig"
-endmenu
+endif # SOUND_PRIME
-endif
+endif # !M68K
config AC97_BUS
tristate
@@ -110,4 +106,4 @@ config AC97_BUS
sound although they're sharing the AC97 bus. Concerned drivers
should "select" this.
-endmenu
+endif # SOUND
diff -r 39df17389b57 -r a60a39d8e6fe isa/Kconfig
--- a/isa/Kconfig Fri Feb 22 17:57:02 2008 +0100
+++ b/isa/Kconfig Sat Feb 23 01:04:07 2008 -0500
@@ -1,4 +1,13 @@
# ALSA ISA drivers
+
+menuconfig SND_ISA
+ bool "ISA devices"
+ depends on SND!=n && ISA && ISA_DMA_API
+ default y
+ help
+ Support for sound devices connected via the ISA bus.
+
+if SND_ISA
config SND_AD1848_LIB
tristate
@@ -21,14 +30,10 @@ config SND_SB16_DSP
select SND_PCM
select SND_SB_COMMON
-menu "ISA devices"
- depends on SND!=n && ISA && ISA_DMA_API
-
config SND_ADLIB
tristate "AdLib FM card"
- depends on SND
- select SND_OPL3_LIB
- help
+ select SND_OPL3_LIB
+ ---help---
Say Y here to include support for AdLib FM cards.
To compile this driver as a module, choose M here: the module
@@ -36,12 +41,12 @@ config SND_ADLIB
config SND_AD1816A
tristate "Analog Devices SoundPort AD1816A"
- depends on SND && PNP && ISA
- select ISAPNP
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_PCM
- help
+ depends on PNP
+ select ISAPNP
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_PCM
+ ---help---
Say Y here to include support for Analog Devices SoundPort
AD1816A or compatible sound chips.
@@ -50,9 +55,8 @@ config SND_AD1816A
config SND_AD1848
tristate "Generic AD1848/CS4248 driver"
- depends on SND
- select SND_AD1848_LIB
- help
+ select SND_AD1848_LIB
+ ---help---
Say Y here to include support for AD1848 (Analog Devices) or
CS4248 (Cirrus Logic - Crystal Semiconductors) chips.
@@ -64,12 +68,12 @@ config SND_AD1848
config SND_ALS100
tristate "Avance Logic ALS100/ALS120"
- depends on SND && PNP && ISA
- select ISAPNP
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_SB16_DSP
- help
+ depends on PNP
+ select ISAPNP
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_SB16_DSP
+ ---help---
Say Y here to include support for soundcards based on Avance
Logic ALS100, ALS110, ALS120 and ALS200 chips.
@@ -78,12 +82,12 @@ config SND_ALS100
config SND_AZT2320
tristate "Aztech Systems AZT2320"
- depends on SND && PNP && ISA
- select ISAPNP
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_CS4231_LIB
- help
+ depends on PNP
+ select ISAPNP
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_CS4231_LIB
+ ---help---
Say Y here to include support for soundcards based on the
Aztech Systems AZT2320 chip.
@@ -92,10 +96,9 @@ config SND_AZT2320
config SND_CMI8330
tristate "C-Media CMI8330"
- depends on SND
- select SND_AD1848_LIB
- select SND_SB16_DSP
- help
+ select SND_AD1848_LIB
+ select SND_SB16_DSP
+ ---help---
Say Y here to include support for soundcards based on the
C-Media CMI8330 chip.
@@ -104,10 +107,9 @@ config SND_CMI8330
config SND_CS4231
tristate "Generic Cirrus Logic CS4231 driver"
- depends on SND
- select SND_MPU401_UART
- select SND_CS4231_LIB
- help
+ select SND_MPU401_UART
+ select SND_CS4231_LIB
+ ---help---
Say Y here to include support for CS4231 chips from Cirrus
Logic - Crystal Semiconductors.
@@ -116,11 +118,10 @@ config SND_CS4231
config SND_CS4232
tristate "Generic Cirrus Logic CS4232 driver"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_CS4231_LIB
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_CS4231_LIB
+ ---help---
Say Y here to include support for CS4232 chips from Cirrus
Logic - Crystal Semiconductors.
@@ -129,11 +130,10 @@ config SND_CS4232
config SND_CS4236
tristate "Generic Cirrus Logic CS4236+ driver"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_CS4231_LIB
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_CS4231_LIB
+ ---help---
Say Y to include support for CS4235,CS4236,CS4237B,CS4238B,
CS4239 chips from Cirrus Logic - Crystal Semiconductors.
@@ -142,12 +142,12 @@ config SND_CS4236
config SND_DT019X
tristate "Diamond Technologies DT-019X, Avance Logic ALS-007"
- depends on SND && PNP && ISA
- select ISAPNP
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_SB16_DSP
- help
+ depends on PNP
+ select ISAPNP
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_SB16_DSP
+ ---help---
Say Y here to include support for soundcards based on the
Diamond Technologies DT-019X or Avance Logic ALS-007 chips.
@@ -156,11 +156,11 @@ config SND_DT019X
config SND_ES968
tristate "Generic ESS ES968 driver"
- depends on SND && PNP && ISA
+ depends on PNP
select ISAPNP
select SND_MPU401_UART
select SND_SB8_DSP
- help
+ ---help---
Say Y here to include support for ESS AudioDrive ES968 chips.
To compile this driver as a module, choose M here: the module
@@ -168,11 +168,10 @@ config SND_ES968
config SND_ES1688
tristate "Generic ESS ES688/ES1688 driver"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_PCM
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_PCM
+ ---help---
Say Y here to include support for ESS AudioDrive ES688 or
ES1688 chips.
@@ -181,11 +180,10 @@ config SND_ES1688
config SND_ES18XX
tristate "Generic ESS ES18xx driver"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_PCM
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_PCM
+ ---help---
Say Y here to include support for ESS AudioDrive ES18xx chips.
To compile this driver as a module, choose M here: the module
@@ -193,11 +191,11 @@ config SND_ES18XX
config SND_SC6000
tristate "Gallant SC-6000, Audio Excel DSP 16"
- depends on SND && HAS_IOPORT
- select SND_AD1848_LIB
- select SND_OPL3_LIB
- select SND_MPU401_UART
- help
+ depends on HAS_IOPORT
+ select SND_AD1848_LIB
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ ---help---
Say Y here to include support for Gallant SC-6000 card and clones:
Audio Excel DSP 16 and Zoltrix AV302.
@@ -209,11 +207,10 @@ config SND_GUS_SYNTH
config SND_GUSCLASSIC
tristate "Gravis UltraSound Classic"
- depends on SND
- select SND_RAWMIDI
- select SND_PCM
- select SND_GUS_SYNTH
- help
+ select SND_RAWMIDI
+ select SND_PCM
+ select SND_GUS_SYNTH
+ ---help---
Say Y here to include support for Gravis UltraSound Classic
soundcards.
@@ -222,12 +219,11 @@ config SND_GUSCLASSIC
config SND_GUSEXTREME
tristate "Gravis UltraSound Extreme"
- depends on SND
select SND_HWDEP
select SND_MPU401_UART
select SND_PCM
select SND_GUS_SYNTH
- help
+ ---help---
Say Y here to include support for Gravis UltraSound Extreme
soundcards.
@@ -236,11 +232,10 @@ config SND_GUSEXTREME
config SND_GUSMAX
tristate "Gravis UltraSound MAX"
- depends on SND
- select SND_RAWMIDI
- select SND_CS4231_LIB
- select SND_GUS_SYNTH
- help
+ select SND_RAWMIDI
+ select SND_CS4231_LIB
+ select SND_GUS_SYNTH
+ ---help---
Say Y here to include support for Gravis UltraSound MAX
soundcards.
@@ -249,11 +244,11 @@ config SND_GUSMAX
config SND_INTERWAVE
tristate "AMD InterWave, Gravis UltraSound PnP"
- depends on SND && PNP && ISA
- select SND_RAWMIDI
- select SND_CS4231_LIB
- select SND_GUS_SYNTH
- help
+ depends on PNP
+ select SND_RAWMIDI
+ select SND_CS4231_LIB
+ select SND_GUS_SYNTH
+ ---help---
Say Y here to include support for AMD InterWave based
soundcards (Gravis UltraSound Plug & Play, STB SoundRage32,
MED3210, Dynasonic Pro, Panasonic PCA761AW).
@@ -263,11 +258,11 @@ config SND_INTERWAVE
config SND_INTERWAVE_STB
tristate "AMD InterWave + TEA6330T (UltraSound 32-Pro)"
- depends on SND && PNP && ISA
- select SND_RAWMIDI
- select SND_CS4231_LIB
- select SND_GUS_SYNTH
- help
+ depends on PNP
+ select SND_RAWMIDI
+ select SND_CS4231_LIB
+ select SND_GUS_SYNTH
+ ---help---
Say Y here to include support for AMD InterWave based
soundcards with a TEA6330T bass and treble regulator
(UltraSound 32-Pro).
@@ -277,11 +272,10 @@ config SND_INTERWAVE_STB
config SND_OPL3SA2
tristate "Yamaha OPL3-SA2/SA3"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_CS4231_LIB
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_CS4231_LIB
+ ---help---
Say Y here to include support for Yamaha OPL3-SA2 and OPL3-SA3
chips.
@@ -290,12 +284,11 @@ config SND_OPL3SA2
config SND_OPTI92X_AD1848
tristate "OPTi 82C92x - AD1848"
- depends on SND
select SND_OPL3_LIB
select SND_OPL4_LIB
select SND_MPU401_UART
select SND_AD1848_LIB
- help
+ ---help---
Say Y here to include support for soundcards based on Opti
82C92x or OTI-601 chips and using an AD1848 codec.
@@ -304,12 +297,11 @@ config SND_OPTI92X_AD1848
config SND_OPTI92X_CS4231
tristate "OPTi 82C92x - CS4231"
- depends on SND
select SND_OPL3_LIB
select SND_OPL4_LIB
select SND_MPU401_UART
select SND_CS4231_LIB
- help
+ ---help---
Say Y here to include support for soundcards based on Opti
82C92x chips and using a CS4231 codec.
@@ -318,11 +310,10 @@ config SND_OPTI92X_CS4231
config SND_OPTI93X
tristate "OPTi 82C93x"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_PCM
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_PCM
+ ---help---
Say Y here to include support for soundcards based on Opti
82C93x chips.
@@ -331,12 +322,11 @@ config SND_OPTI93X
config SND_MIRO
tristate "Miro miroSOUND PCM1pro/PCM12/PCM20radio driver"
- depends on SND
select SND_OPL4_LIB
select SND_CS4231_LIB
select SND_MPU401_UART
select SND_PCM
- help
+ ---help---
Say 'Y' or 'M' to include support for Miro miroSOUND PCM1 pro,
miroSOUND PCM12 and miroSOUND PCM20 Radio soundcards.
@@ -345,11 +335,10 @@ config SND_MIRO
config SND_SB8
tristate "Sound Blaster 1.0/2.0/Pro (8-bit)"
- depends on SND
select SND_OPL3_LIB
select SND_RAWMIDI
select SND_SB8_DSP
- help
+ ---help---
Say Y here to include support for Creative Sound Blaster 1.0/
2.0/Pro (8-bit) or 100% compatible soundcards.
@@ -358,11 +347,10 @@ config SND_SB8
config SND_SB16
tristate "Sound Blaster 16 (PnP)"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_SB16_DSP
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_SB16_DSP
+ ---help---
Say Y here to include support for Sound Blaster 16 soundcards
(including the Plug and Play version).
@@ -371,11 +359,10 @@ config SND_SB16
config SND_SBAWE
tristate "Sound Blaster AWE (32,64) (PnP)"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_SB16_DSP
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_SB16_DSP
+ ---help---
Say Y here to include support for Sound Blaster AWE soundcards
(including the Plug and Play version).
@@ -386,7 +373,7 @@ config SND_SB16_CSP
bool "Sound Blaster 16/AWE CSP support"
depends on (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)
select FW_LOADER if !SND_SB16_CSP_FIRMWARE_IN_KERNEL
- help
+ ---help---
Say Y here to include support for the CSP core. This special
coprocessor can do variable tasks like various compression and
decompression algorithms.
@@ -395,16 +382,15 @@ config SND_SB16_CSP_FIRMWARE_IN_KERNEL
bool "In-kernel firmware for SB16 CSP"
depends on SND_SB16_CSP
default y
- help
+ ---help---
Say Y here to include the static firmware built in the kernel
for the SB16 CSP controller. If you choose N here, you need
to install the firmware files from the alsa-firmware package.
config SND_SGALAXY
tristate "Aztech Sound Galaxy"
- depends on SND
- select SND_AD1848_LIB
- help
+ select SND_AD1848_LIB
+ ---help---
Say Y here to include support for Aztech Sound Galaxy
soundcards.
@@ -413,11 +399,10 @@ config SND_SGALAXY
config SND_SSCAPE
tristate "Ensoniq SoundScape PnP driver"
- depends on SND
select SND_HWDEP
select SND_MPU401_UART
select SND_CS4231_LIB
- help
+ ---help---
Say Y here to include support for Ensoniq SoundScape PnP
soundcards.
@@ -426,12 +411,11 @@ config SND_SSCAPE
config SND_WAVEFRONT
tristate "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
- depends on SND
select FW_LOADER
select SND_OPL3_LIB
select SND_MPU401_UART
select SND_CS4231_LIB
- help
+ ---help---
Say Y here to include support for Turtle Beach Maui, Tropez
and Tropez+ soundcards based on the Wavefront chip.
@@ -442,10 +426,10 @@ config SND_WAVEFRONT_FIRMWARE_IN_KERNEL
bool "In-kernel firmware for Wavefront"
depends on SND_WAVEFRONT
default y
- help
+ ---help---
Say Y here to include the static firmware for FX DSP built in
the kernel for the Wavefront driver. If you choose N here,
you need to install the firmware files from the
alsa-firmware package.
-endmenu
+endif # SND_ISA
diff -r 39df17389b57 -r a60a39d8e6fe pci/Kconfig
--- a/pci/Kconfig Fri Feb 22 17:57:02 2008 +0100
+++ b/pci/Kconfig Sat Feb 23 01:04:07 2008 -0500
@@ -1,13 +1,18 @@
# ALSA PCI drivers
-menu "PCI devices"
- depends on SND!=n && PCI
+menuconfig SND_PCI
+ bool "PCI devices"
+ depends on SND!=n && PCI
+ default y
+ help
+ Support for sound devices connected via the PCI bus.
+
+if SND_PCI
config SND_AD1889
tristate "Analog Devices AD1889"
- depends on SND
- select SND_AC97_CODEC
- help
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the integrated AC97 sound
device found in particular on the Hewlett-Packard [BCJ]-xxx0
class PA-RISC workstations, using the AD1819 codec.
@@ -17,11 +22,10 @@ config SND_AD1889
config SND_ALS300
tristate "Avance Logic ALS300/ALS300+"
- depends on SND
- select SND_PCM
- select SND_AC97_CODEC
- select SND_OPL3_LIB
- help
+ select SND_PCM
+ select SND_AC97_CODEC
+ select SND_OPL3_LIB
+ ---help---
Say 'Y' or 'M' to include support for Avance Logic ALS300/ALS300+
To compile this driver as a module, choose M here: the module
@@ -29,12 +33,12 @@ config SND_ALS300
config SND_ALS4000
tristate "Avance Logic ALS4000"
- depends on SND && ISA_DMA_API
+ depends on ISA_DMA_API
select SND_OPL3_LIB
select SND_MPU401_UART
select SND_PCM
select SND_SB_COMMON
- help
+ ---help---
Say Y here to include support for soundcards based on Avance Logic
ALS4000 chips.
@@ -43,10 +47,9 @@ config SND_ALS4000
config SND_ALI5451
tristate "ALi M5451 PCI Audio Controller"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the integrated AC97 sound
device on motherboards using the ALi M5451 Audio Controller
(M1535/M1535D/M1535+/M1535D+ south bridges). Newer chipsets
@@ -57,9 +60,8 @@ config SND_ALI5451
config SND_ATIIXP
tristate "ATI IXP AC97 Controller"
- depends on SND
- select SND_AC97_CODEC
- help
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the integrated AC97 sound
device on motherboards with ATI chipsets (ATI IXP 150/200/250/
300/400).
@@ -69,9 +71,8 @@ config SND_ATIIXP
config SND_ATIIXP_MODEM
tristate "ATI IXP Modem"
- depends on SND
- select SND_AC97_CODEC
- help
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the integrated MC97 modem on
motherboards with ATI chipsets (ATI IXP 150/200/250).
@@ -80,10 +81,9 @@ config SND_ATIIXP_MODEM
config SND_AU8810
tristate "Aureal Advantage"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for Aureal Advantage soundcards.
Supported features: Hardware Mixer, SRC, EQ and SPDIF output.
@@ -95,10 +95,9 @@ config SND_AU8810
config SND_AU8820
tristate "Aureal Vortex"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for Aureal Vortex soundcards.
Supported features: Hardware Mixer and SRC. For more info, email
@@ -109,10 +108,9 @@ config SND_AU8820
config SND_AU8830
tristate "Aureal Vortex 2"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for Aureal Vortex 2 soundcards.
Supported features: Hardware Mixer, SRC, EQ and SPDIF output.
@@ -124,8 +122,7 @@ config SND_AU8830
config SND_AW2
tristate "Emagic Audiowerk 2"
- depends on SND
- help
+ ---help---
Say Y here to include support for Emagic Audiowerk 2 soundcards.
Supported features: Analog and SPDIF output. Analog or SPDIF input.
@@ -139,11 +136,11 @@ config SND_AW2
config SND_AZT3328
tristate "Aztech AZF3328 / PCI168 (EXPERIMENTAL)"
- depends on SND && EXPERIMENTAL
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_PCM
- help
+ depends on EXPERIMENTAL
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_PCM
+ ---help---
Say Y here to include support for Aztech AZF3328 (PCI168)
soundcards.
@@ -152,9 +149,8 @@ config SND_AZT3328
config SND_BT87X
tristate "Bt87x Audio Capture"
- depends on SND
- select SND_PCM
- help
+ select SND_PCM
+ ---help---
If you want to record audio from TV cards based on
Brooktree Bt878/Bt879 chips, say Y here and read
<file:Documentation/sound/alsa/Bt87x.txt>.
@@ -165,7 +161,7 @@ config SND_BT87X_OVERCLOCK
config SND_BT87X_OVERCLOCK
bool "Bt87x Audio overclocking"
depends on SND_BT87X
- help
+ ---help---
Say Y here if 448000 Hz isn't enough for you and you want to
record from the analog input with up to 1792000 Hz.
@@ -174,11 +170,10 @@ config SND_BT87X_OVERCLOCK
config SND_CA0106
tristate "SB Audigy LS / Live 24bit"
- depends on SND
select SND_AC97_CODEC
select SND_RAWMIDI
select SND_VMASTER
- help
+ ---help---
Say Y here to include support for the Sound Blaster Audigy LS
and Live 24bit.
@@ -187,11 +182,10 @@ config SND_CA0106
config SND_CMIPCI
tristate "C-Media 8338, 8738, 8768, 8770"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_PCM
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_PCM
+ ---help---
If you want to use soundcards based on C-Media CMI8338, CMI8738,
CMI8768 or CMI8770 chips, say Y here and read
<file:Documentation/sound/alsa/CMIPCI.txt>.
@@ -201,15 +195,13 @@ config SND_CMIPCI
config SND_OXYGEN_LIB
tristate
- depends on SND
select SND_PCM
select SND_MPU401_UART
config SND_OXYGEN
tristate "C-Media 8788 (Oxygen)"
- depends on SND
select SND_OXYGEN_LIB
- help
+ ---help---
Say Y here to include support for sound cards based on the
C-Media CMI8788 (Oxygen HD Audio) chip:
* Asound A-8788
@@ -225,11 +217,10 @@ config SND_OXYGEN
config SND_CS4281
tristate "Cirrus Logic (Sound Fusion) CS4281"
- depends on SND
- select SND_OPL3_LIB
- select SND_RAWMIDI
- select SND_AC97_CODEC
- help
+ select SND_OPL3_LIB
+ select SND_RAWMIDI
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for Cirrus Logic CS4281 chips.
To compile this driver as a module, choose M here: the module
@@ -237,10 +228,9 @@ config SND_CS4281
config SND_CS46XX
tristate "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x"
- depends on SND
- select SND_RAWMIDI
- select SND_AC97_CODEC
- help
+ select SND_RAWMIDI
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for Cirrus Logic CS4610/CS4612/
CS4614/CS4615/CS4622/CS4624/CS4630/CS4280 chips.
@@ -251,16 +241,16 @@ config SND_CS46XX_NEW_DSP
bool "Cirrus Logic (Sound Fusion) New DSP support"
depends on SND_CS46XX
default y
- help
+ ---help---
Say Y here to use a new DSP image for SPDIF and dual codecs.
This works better than the old code, so say Y.
config SND_CS5530
tristate "CS5530 Audio"
- depends on SND && ISA_DMA_API
+ depends on ISA_DMA_API
select SND_SB16_DSP
- help
+ ---help---
Say Y here to include support for audio on Cyrix/NatSemi CS5530 chips.
To compile this driver as a module, choose M here: the module
@@ -268,10 +258,10 @@ config SND_CS5530
config SND_CS5535AUDIO
tristate "CS5535/CS5536 Audio"
- depends on SND && X86 && !X86_64
- select SND_PCM
- select SND_AC97_CODEC
- help
+ depends on X86 && !X86_64
+ select SND_PCM
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for audio on CS5535 chips. It is
referred to as NS CS5535 IO or AMD CS5535 IO companion in
various literature. This driver also supports the CS5536 audio
@@ -286,10 +276,9 @@ config SND_CS5535AUDIO
config SND_DARLA20
tristate "(Echoaudio) Darla20"
- depends on SND
- select FW_LOADER
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Darla.
To compile this driver as a module, choose M here: the module
@@ -297,10 +286,9 @@ config SND_DARLA20
config SND_GINA20
tristate "(Echoaudio) Gina20"
- depends on SND
- select FW_LOADER
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Gina.
To compile this driver as a module, choose M here: the module
@@ -308,11 +296,10 @@ config SND_GINA20
config SND_LAYLA20
tristate "(Echoaudio) Layla20"
- depends on SND
- select FW_LOADER
- select SND_RAWMIDI
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_RAWMIDI
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Layla.
To compile this driver as a module, choose M here: the module
@@ -320,10 +307,9 @@ config SND_LAYLA20
config SND_DARLA24
tristate "(Echoaudio) Darla24"
- depends on SND
- select FW_LOADER
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Darla24.
To compile this driver as a module, choose M here: the module
@@ -331,10 +317,9 @@ config SND_DARLA24
config SND_GINA24
tristate "(Echoaudio) Gina24"
- depends on SND
- select FW_LOADER
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Gina24.
To compile this driver as a module, choose M here: the module
@@ -342,11 +327,10 @@ config SND_GINA24
config SND_LAYLA24
tristate "(Echoaudio) Layla24"
- depends on SND
- select FW_LOADER
- select SND_RAWMIDI
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_RAWMIDI
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Layla24.
To compile this driver as a module, choose M here: the module
@@ -354,11 +338,10 @@ config SND_LAYLA24
config SND_MONA
tristate "(Echoaudio) Mona"
- depends on SND
- select FW_LOADER
- select SND_RAWMIDI
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_RAWMIDI
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Mona.
To compile this driver as a module, choose M here: the module
@@ -366,11 +349,10 @@ config SND_MONA
config SND_MIA
tristate "(Echoaudio) Mia"
- depends on SND
- select FW_LOADER
- select SND_RAWMIDI
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_RAWMIDI
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Mia and Mia-midi.
To compile this driver as a module, choose M here: the module
@@ -378,11 +360,10 @@ config SND_MIA
config SND_ECHO3G
tristate "(Echoaudio) 3G cards"
- depends on SND
- select FW_LOADER
- select SND_RAWMIDI
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_RAWMIDI
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Gina3G and Layla3G.
To compile this driver as a module, choose M here: the module
@@ -390,10 +371,9 @@ config SND_ECHO3G
config SND_INDIGO
tristate "(Echoaudio) Indigo"
- depends on SND
- select FW_LOADER
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Indigo.
To compile this driver as a module, choose M here: the module
@@ -401,10 +381,9 @@ config SND_INDIGO
config SND_INDIGOIO
tristate "(Echoaudio) Indigo IO"
- depends on SND
- select FW_LOADER
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Indigo IO.
To compile this driver as a module, choose M here: the module
@@ -412,10 +391,9 @@ config SND_INDIGOIO
config SND_INDIGODJ
tristate "(Echoaudio) Indigo DJ"
- depends on SND
- select FW_LOADER
- select SND_PCM
- help
+ select FW_LOADER
+ select SND_PCM
+ ---help---
Say 'Y' or 'M' to include support for Echoaudio Indigo DJ.
To compile this driver as a module, choose M here: the module
@@ -423,12 +401,11 @@ config SND_INDIGODJ
config SND_EMU10K1
tristate "Emu10k1 (SB Live!, Audigy, E-mu APS)"
- depends on SND
select FW_LOADER
select SND_HWDEP
select SND_RAWMIDI
select SND_AC97_CODEC
- help
+ ---help---
Say Y to include support for Sound Blaster PCI 512, Live!,
Audigy and E-mu APS (partially supported) soundcards.
@@ -441,10 +418,9 @@ config SND_EMU10K1
config SND_EMU10K1X
tristate "Emu10k1X (Dell OEM Version)"
- depends on SND
- select SND_AC97_CODEC
- select SND_RAWMIDI
- help
+ select SND_AC97_CODEC
+ select SND_RAWMIDI
+ ---help---
Say Y here to include support for the Dell OEM version of the
Sound Blaster Live!.
@@ -453,10 +429,9 @@ config SND_EMU10K1X
config SND_ENS1370
tristate "(Creative) Ensoniq AudioPCI 1370"
- depends on SND
- select SND_RAWMIDI
- select SND_PCM
- help
+ select SND_RAWMIDI
+ select SND_PCM
+ ---help---
Say Y here to include support for Ensoniq AudioPCI ES1370 chips.
To compile this driver as a module, choose M here: the module
@@ -464,10 +439,9 @@ config SND_ENS1370
config SND_ENS1371
tristate "(Creative) Ensoniq AudioPCI 1371/1373"
- depends on SND
- select SND_RAWMIDI
- select SND_AC97_CODEC
- help
+ select SND_RAWMIDI
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for Ensoniq AudioPCI ES1371 chips and
Sound Blaster PCI 64 or 128 soundcards.
@@ -476,11 +450,10 @@ config SND_ENS1371
config SND_ES1938
tristate "ESS ES1938/1946/1969 (Solo-1)"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for soundcards based on ESS Solo-1
(ES1938, ES1946, ES1969) chips.
@@ -489,10 +462,9 @@ config SND_ES1938
config SND_ES1968
tristate "ESS ES1968/1978 (Maestro-1/2/2E)"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for soundcards based on ESS Maestro
1/2/2E chips.
@@ -501,11 +473,10 @@ config SND_ES1968
config SND_FM801
tristate "ForteMedia FM801"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for soundcards based on the ForteMedia
FM801 chip.
@@ -515,7 +486,7 @@ config SND_FM801_TEA575X_BOOL
config SND_FM801_TEA575X_BOOL
bool "ForteMedia FM801 + TEA5757 tuner"
depends on SND_FM801
- help
+ ---help---
Say Y here to include support for soundcards based on the ForteMedia
FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media
Forte SF256-PCS-02) into the snd-fm801 driver.
@@ -531,10 +502,9 @@ config SND_FM801_TEA575X
config SND_HDA_INTEL
tristate "Intel HD Audio"
- depends on SND
select SND_PCM
select SND_VMASTER
- help
+ ---help---
Say Y here to include support for Intel "High Definition
Audio" (Azalia) motherboard devices.
@@ -545,7 +515,7 @@ config SND_HDA_HWDEP
bool "Build hwdep interface for HD-audio driver"
depends on SND_HDA_INTEL
select SND_HWDEP
- help
+ ---help---
Say Y here to build a hwdep interface for HD-audio driver.
This interface can be used for out-of-band communication
with codecs for debugging purposes.
@@ -554,7 +524,7 @@ config SND_HDA_CODEC_REALTEK
bool "Build Realtek HD-audio codec support"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to include Realtek HD-audio codec support in
snd-hda-intel driver, such as ALC880.
@@ -562,7 +532,7 @@ config SND_HDA_CODEC_ANALOG
bool "Build Analog Device HD-audio codec support"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to include Analog Device HD-audio codec support in
snd-hda-intel driver, such as AD1986A.
@@ -570,7 +540,7 @@ config SND_HDA_CODEC_SIGMATEL
bool "Build IDT/Sigmatel HD-audio codec support"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to include IDT (Sigmatel) HD-audio codec support in
snd-hda-intel driver, such as STAC9200.
@@ -578,7 +548,7 @@ config SND_HDA_CODEC_VIA
bool "Build VIA HD-audio codec support"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to include VIA HD-audio codec support in
snd-hda-intel driver, such as VT1708.
@@ -586,7 +556,7 @@ config SND_HDA_CODEC_ATIHDMI
bool "Build ATI HDMI HD-audio codec support"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to include ATI HDMI HD-audio codec support in
snd-hda-intel driver, such as ATI RS600 HDMI.
@@ -594,7 +564,7 @@ config SND_HDA_CODEC_CONEXANT
bool "Build Conexant HD-audio codec support"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to include Conexant HD-audio codec support in
snd-hda-intel driver, such as CX20549.
@@ -602,7 +572,7 @@ config SND_HDA_CODEC_CMEDIA
bool "Build C-Media HD-audio codec support"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to include C-Media HD-audio codec support in
snd-hda-intel driver, such as CMI9880.
@@ -610,7 +580,7 @@ config SND_HDA_CODEC_SI3054
bool "Build Silicon Labs 3054 HD-modem codec support"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to include Silicon Labs 3054 HD-modem codec
(and compatibles) support in snd-hda-intel driver.
@@ -618,14 +588,14 @@ config SND_HDA_GENERIC
bool "Enable generic HD-audio codec parser"
depends on SND_HDA_INTEL
default y
- help
+ ---help---
Say Y here to enable the generic HD-audio codec parser
in snd-hda-intel driver.
config SND_HDA_POWER_SAVE
bool "Aggressive power-saving on HD-audio"
depends on SND_HDA_INTEL && EXPERIMENTAL
- help
+ ---help---
Say Y here to enable more aggressive power-saving mode on
HD-audio driver. The power-saving timeout can be configured
via power_save option or over sysfs on-the-fly.
@@ -634,17 +604,16 @@ config SND_HDA_POWER_SAVE_DEFAULT
int "Default time-out for HD-audio power-save mode"
depends on SND_HDA_POWER_SAVE
default 0
- help
+ ---help---
The default time-out value in seconds for HD-audio automatic
power-save mode. 0 means to disable the power-save mode.
config SND_HDSP
tristate "RME Hammerfall DSP Audio"
- depends on SND
select SND_HWDEP
select SND_RAWMIDI
select SND_PCM
- help
+ ---help---
Say Y here to include support for RME Hammerfall DSP Audio
soundcards.
@@ -653,11 +622,10 @@ config SND_HDSP
config SND_HDSPM
tristate "RME Hammerfall DSP MADI"
- depends on SND
select SND_HWDEP
select SND_RAWMIDI
select SND_PCM
- help
+ ---help---
Say Y here to include support for RME Hammerfall DSP MADI
soundcards.
@@ -666,9 +634,8 @@ config SND_HDSPM
config SND_HIFIER
tristate "TempoTec HiFier Fantasia"
- depends on SND
select SND_OXYGEN_LIB
- help
+ ---help---
Say Y here to include support for the MediaTek/TempoTec HiFier
Fantasia sound card.
@@ -677,10 +644,9 @@ config SND_HIFIER
config SND_ICE1712
tristate "ICEnsemble ICE1712 (Envy24)"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for soundcards based on the
ICE1712 (Envy24) chip.
@@ -694,10 +660,9 @@ config SND_ICE1712
config SND_ICE1724
tristate "ICE/VT1724/1720 (Envy24HT/PT)"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for soundcards based on
ICE/VT1724/1720 (Envy24HT/PT) chips.
@@ -711,9 +676,8 @@ config SND_ICE1724
config SND_INTEL8X0
tristate "Intel/SiS/nVidia/AMD/ALi AC97 Controller"
- depends on SND
- select SND_AC97_CODEC
- help
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the integrated AC97 sound
device on motherboards with Intel/SiS/nVidia/AMD chipsets, or
ALi chipsets using the M5455 Audio Controller. (There is a
@@ -724,9 +688,8 @@ config SND_INTEL8X0
config SND_INTEL8X0M
tristate "Intel/SiS/nVidia/AMD MC97 Modem"
- depends on SND
- select SND_AC97_CODEC
- help
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the integrated MC97 modem on
motherboards with Intel/SiS/nVidia/AMD chipsets.
@@ -735,10 +698,9 @@ config SND_INTEL8X0M
config SND_KORG1212
tristate "Korg 1212 IO"
- depends on SND
select FW_LOADER if !SND_KORG1212_FIRMWARE_IN_KERNEL
select SND_PCM
- help
+ ---help---
Say Y here to include support for Korg 1212IO soundcards.
To compile this driver as a module, choose M here: the module
@@ -748,17 +710,16 @@ config SND_KORG1212_FIRMWARE_IN_KERNEL
bool "In-kernel firmware for Korg1212 driver"
depends on SND_KORG1212
default y
- help
+ ---help---
Say Y here to include the static firmware built in the kernel
for the Korg1212 driver. If you choose N here, you need to
install the firmware files from the alsa-firmware package.
config SND_MAESTRO3
tristate "ESS Allegro/Maestro3"
- depends on SND
select FW_LOADER if !SND_MAESTRO3_FIRMWARE_IN_KERNEL
select SND_AC97_CODEC
- help
+ ---help---
Say Y here to include support for soundcards based on ESS Maestro 3
(Allegro) chips.
@@ -769,17 +730,16 @@ config SND_MAESTRO3_FIRMWARE_IN_KERNEL
bool "In-kernel firmware for Maestro3 driver"
depends on SND_MAESTRO3
default y
- help
+ ---help---
Say Y here to include the static firmware built in the kernel
for the Maestro3 driver. If you choose N here, you need to
install the firmware files from the alsa-firmware package.
config SND_MIXART
tristate "Digigram miXart"
- depends on SND
select SND_HWDEP
select SND_PCM
- help
+ ---help---
If you want to use Digigram miXart soundcards, say Y here and
read <file:Documentation/sound/alsa/MIXART.txt>.
@@ -788,9 +748,8 @@ config SND_MIXART
config SND_NM256
tristate "NeoMagic NM256AV/ZX"
- depends on SND
- select SND_AC97_CODEC
- help
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for NeoMagic NM256AV/ZX chips.
To compile this driver as a module, choose M here: the module
@@ -798,10 +757,9 @@ config SND_NM256
config SND_PCXHR
tristate "Digigram PCXHR"
- depends on SND
select SND_PCM
select SND_HWDEP
- help
+ ---help---
Say Y here to include support for Digigram PCXHR boards.
To compile this driver as a module, choose M here: the module
@@ -809,12 +767,11 @@ config SND_PCXHR
config SND_RIPTIDE
tristate "Conexant Riptide"
- depends on SND
- select FW_LOADER
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select FW_LOADER
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say 'Y' or 'M' to include support for Conexant Riptide chip.
To compile this driver as a module, choose M here: the module
@@ -822,9 +779,8 @@ config SND_RIPTIDE
config SND_RME32
tristate "RME Digi32, 32/8, 32 PRO"
- depends on SND
- select SND_PCM
- help
+ select SND_PCM
+ ---help---
Say Y to include support for RME Digi32, Digi32 PRO and
Digi32/8 (Sek'd Prodif32, Prodif96 and Prodif Gold) audio
devices.
@@ -834,9 +790,8 @@ config SND_RME32
config SND_RME96
tristate "RME Digi96, 96/8, 96/8 PRO"
- depends on SND
- select SND_PCM
- help
+ select SND_PCM
+ ---help---
Say Y here to include support for RME Digi96, Digi96/8 and
Digi96/8 PRO/PAD/PST soundcards.
@@ -845,9 +800,8 @@ config SND_RME96
config SND_RME9652
tristate "RME Digi9652 (Hammerfall)"
- depends on SND
- select SND_PCM
- help
+ select SND_PCM
+ ---help---
Say Y here to include support for RME Hammerfall (RME
Digi9652/Digi9636) soundcards.
@@ -856,9 +810,9 @@ config SND_RME9652
config SND_SIS7019
tristate "SiS 7019 Audio Accelerator"
- depends on SND && X86 && !X86_64
- select SND_AC97_CODEC
- help
+ depends on X86 && !X86_64
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the SiS 7019 Audio Accelerator.
To compile this driver as a module, choose M here: the module
@@ -866,11 +820,10 @@ config SND_SIS7019
config SND_SONICVIBES
tristate "S3 SonicVibes"
- depends on SND
- select SND_OPL3_LIB
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_OPL3_LIB
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for soundcards based on the S3
SonicVibes chip.
@@ -879,10 +832,9 @@ config SND_SONICVIBES
config SND_TRIDENT
tristate "Trident 4D-Wave DX/NX; SiS 7018"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for soundcards based on Trident
4D-Wave DX/NX or SiS 7018 chips.
@@ -891,10 +843,9 @@ config SND_TRIDENT
config SND_VIA82XX
tristate "VIA 82C686A/B, 8233/8235 AC97 Controller"
- depends on SND
- select SND_MPU401_UART
- select SND_AC97_CODEC
- help
+ select SND_MPU401_UART
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the integrated AC97 sound
device on motherboards with VIA chipsets.
@@ -903,9 +854,8 @@ config SND_VIA82XX
config SND_VIA82XX_MODEM
tristate "VIA 82C686A/B, 8233 based Modems"
- depends on SND
- select SND_AC97_CODEC
- help
+ select SND_AC97_CODEC
+ ---help---
Say Y here to include support for the integrated MC97 modem on
motherboards with VIA chipsets.
@@ -914,9 +864,8 @@ config SND_VIA82XX_MODEM
config SND_VIRTUOSO
tristate "Asus Virtuoso 200 (Xonar)"
- depends on SND
select SND_OXYGEN_LIB
- help
+ ---help---
Say Y here to include support for sound cards based on the
Asus AV200 chip, i.e., Xonar D2 and Xonar D2X.
@@ -925,9 +874,8 @@ config SND_VIRTUOSO
config SND_VX222
tristate "Digigram VX222"
- depends on SND
select SND_VX_LIB
- help
+ ---help---
Say Y here to include support for Digigram VX222 soundcards.
To compile this driver as a module, choose M here: the module
@@ -935,12 +883,11 @@ config SND_VX222
config SND_YMFPCI
tristate "Yamaha YMF724/740/744/754"
- depends on SND
select FW_LOADER if !SND_YMFPCI_FIRMWARE_IN_KERNEL
select SND_OPL3_LIB
select SND_MPU401_UART
select SND_AC97_CODEC
- help
+ ---help---
Say Y here to include support for Yamaha PCI audio chips -
YMF724, YMF724F, YMF740, YMF740C, YMF744, YMF754.
@@ -951,7 +898,7 @@ config SND_YMFPCI_FIRMWARE_IN_KERNEL
bool "In-kernel firmware for YMFPCI driver"
depends on SND_YMFPCI
default y
- help
+ ---help---
Say Y here to include the static firmware built in the kernel
for the YMFPCI driver. If you choose N here, you need to
install the firmware files from the alsa-firmware package.
@@ -960,7 +907,7 @@ config SND_AC97_POWER_SAVE
bool "AC97 Power-Saving Mode"
depends on SND_AC97_CODEC && EXPERIMENTAL
default n
- help
+ ---help---
Say Y here to enable the aggressive power-saving support of
AC97 codecs. In this mode, the power-mode is dynamically
controlled at each open/close.
@@ -973,8 +920,8 @@ config SND_AC97_POWER_SAVE_DEFAULT
int "Default time-out for AC97 power-save mode"
depends on SND_AC97_POWER_SAVE
default 0
- help
+ ---help---
The default time-out value in seconds for AC97 automatic
power-save mode. 0 means to disable the power-save mode.
-endmenu
+endif # SND_PCI
diff -r 39df17389b57 -r a60a39d8e6fe pcmcia/Kconfig
--- a/pcmcia/Kconfig Fri Feb 22 17:57:02 2008 +0100
+++ b/pcmcia/Kconfig Sat Feb 23 01:04:07 2008 -0500
@@ -1,11 +1,16 @@
# ALSA PCMCIA drivers
-menu "PCMCIA devices"
+menuconfig SND_PCMCIA
+ bool "PCMCIA devices"
depends on SND!=n && PCMCIA
+ default y
+ help
+ Support for sound devices connected via a PCMCIA interface.
+
+if SND_PCMCIA
config SND_VXPOCKET
tristate "Digigram VXpocket"
- depends on SND && PCMCIA
select SND_VX_LIB
help
Say Y here to include support for Digigram VXpocket and
@@ -16,7 +21,6 @@ config SND_VXPOCKET
config SND_PDAUDIOCF
tristate "Sound Core PDAudioCF"
- depends on SND && PCMCIA
select SND_PCM
help
Say Y here to include support for Sound Core PDAudioCF
@@ -25,4 +29,4 @@ config SND_PDAUDIOCF
To compile this driver as a module, choose M here: the module
will be called snd-pdaudiocf.
-endmenu
+endif # SND_PCMCIA
diff -r 39df17389b57 -r a60a39d8e6fe soc/Kconfig
--- a/soc/Kconfig Fri Feb 22 17:57:02 2008 +0100
+++ b/soc/Kconfig Sat Feb 23 01:04:07 2008 -0500
@@ -1,27 +1,24 @@
-#
-# SoC audio configuration
-#
+# ALSA SoC audio configuration
-menu "System on Chip audio support"
- depends on SND!=n
+menuconfig SND_SOC
+ tristate "SoC (System on Chip) devices"
+ depends on SND!=n
+ select SND_PCM
+ help
+ If you want ASoC support, you should say Y here and also to the
+ specific driver for your SoC platform below.
+
+ ASoC provides power efficient ALSA support for embedded battery
+ powered SoC based systems like PDAs, phones and personal media
+ players.
+
+ This ASoC audio support can also be built as a module. If so, the
+ module will be called snd-soc-core.
+
+if SND_SOC
config SND_SOC_AC97_BUS
bool
-
-config SND_SOC
- tristate "ALSA for SoC audio support"
- depends on SND
- select SND_PCM
- ---help---
-
- If you want ASoC support, you should say Y here and also to the
- specific driver for your SoC platform below.
-
- ASoC provides power efficient ALSA support for embedded battery powered
- SoC based systems like PDA's, Phones and Personal Media Players.
-
- This ASoC audio support can also be built as a module. If so, the module
- will be called snd-soc-core.
# All the supported Soc's
source "sound/soc/at91/Kconfig"
@@ -34,4 +31,4 @@ source "sound/soc/davinci/Kconfig"
# Supported codecs
source "sound/soc/codecs/Kconfig"
-endmenu
+endif # SND_SOC
diff -r 39df17389b57 -r a60a39d8e6fe spi/Kconfig
--- a/spi/Kconfig Fri Feb 22 17:57:02 2008 +0100
+++ b/spi/Kconfig Sat Feb 23 01:04:07 2008 -0500
@@ -1,13 +1,19 @@
-#SPI drivers
+# ALSA SPI drivers
-menu "SPI devices"
- depends on SND != n
+menuconfig SND_SPI
+ bool "SPI devices"
+ depends on SND!=n && SPI
+ default y
+ help
+ Support for sound devices connected via the SPI bus.
+
+if SND_SPI
config SND_AT73C213
tristate "Atmel AT73C213 DAC driver"
depends on ATMEL_SSC
select SND_PCM
- help
+ ---help---
Say Y here if you want to use the Atmel AT73C213 external DAC. This
DAC can be found on Atmel development boards.
@@ -22,10 +28,10 @@ config SND_AT73C213_TARGET_BITRATE
depends on SND_AT73C213
default "48000"
range 8000 50000
- help
+ ---help---
Sets the target bitrate for the bitrate calculator in the driver.
Limited by hardware to be between 8000 Hz and 50000 Hz.
Set to 48000 Hz by default.
-endmenu
+endif # SND_SPI
diff -r 39df17389b57 -r a60a39d8e6fe usb/Kconfig
--- a/usb/Kconfig Fri Feb 22 17:57:02 2008 +0100
+++ b/usb/Kconfig Sat Feb 23 01:04:07 2008 -0500
@@ -1,15 +1,20 @@
# ALSA USB drivers
-menu "USB devices"
- depends on SND!=n && USB!=n
+menuconfig SND_USB
+ bool "USB devices"
+ depends on SND!=n && USB!=n
+ default y
+ help
+ Support for sound devices connected via the USB bus.
+
+if SND_USB
config SND_USB_AUDIO
tristate "USB Audio/MIDI driver"
- depends on SND && USB
select SND_HWDEP
select SND_RAWMIDI
select SND_PCM
- help
+ ---help---
Say Y here to include support for USB audio and USB MIDI
devices.
@@ -18,11 +23,11 @@ config SND_USB_AUDIO
config SND_USB_USX2Y
tristate "Tascam US-122, US-224 and US-428 USB driver"
- depends on SND && USB && (X86 || PPC || ALPHA)
+ depends on (X86 || PPC || ALPHA)
select SND_HWDEP
select SND_RAWMIDI
select SND_PCM
- help
+ ---help---
Say Y here to include support for Tascam USB Audio/MIDI
interfaces or controllers US-122, US-224 and US-428.
@@ -31,11 +36,10 @@ config SND_USB_USX2Y
config SND_USB_CAIAQ
tristate "Native Instruments USB audio devices"
- depends on SND && USB
select SND_HWDEP
select SND_RAWMIDI
select SND_PCM
- help
+ ---help---
Say Y here to include support for caiaq USB audio interfaces,
namely:
@@ -50,10 +54,10 @@ config SND_USB_CAIAQ
will be called snd-usb-caiaq.
config SND_USB_CAIAQ_INPUT
- bool "enable input device for controllers"
+ bool "Enable input device for controllers"
depends on SND_USB_CAIAQ
depends on INPUT=y || INPUT=SND_USB_CAIAQ
- help
+ ---help---
Say Y here to support input controllers like buttons, knobs,
alpha dials and analog pedals on the following products:
@@ -63,5 +67,4 @@ config SND_USB_CAIAQ_INPUT
* Native Instruments Kore Controller 2
* Native Instruments Audio Kontrol 1
-endmenu
-
+endif # SND_USB
2
4
Greetings all,
I am very new to ALSA developing, some times I found my program get
a "snd_pcm_open with device 'default': Device or resource busy" error
if some other applications was using ALSA at the mean time (for
example virtualbox), but totem player can co-exist with the ALSA-using
application very well, what is the reason?
I tried play a wav file when there is another ALSA-using application
such as totem :
aplay -D default test.wav
everything went fine, but with "-D hw:0,0", "-D plughw:0,0", the
device will be busy, with "-D hw:0,1" or "-D plughw:0,1", the device
won't be busy but you can hear nothing, the documentation explains:
"The default device is equal to plug plugin with hw plugin as slave.",
so why "-D plughw:0,0" won't work? Thanks very much!
Cheers,
Deephay
1
0
[alsa-devel] Adapt eeepc p710 mixer for virtual master control
by Herton Ronaldo Krzesinski 23 Feb '08
by Herton Ronaldo Krzesinski 23 Feb '08
23 Feb '08
Adapt eeepc p710 mixer for virtual master control
Currently eeepc p710 mixer doesn't define any slave volume control. This
is incompatible with current virtual master control code, that will return
-ENOENT in this case.
Signed-off-by: Herton Ronaldo Krzesinski <herton(a)mandriva.com>
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 6f7dd96..bda09ad 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -12989,8 +12989,8 @@ static struct snd_kcontrol_new alc662_lenovo_101e_mixer[] = {
static struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = {
HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT),
- HDA_CODEC_VOLUME("LineOut Playback Volume", 0x02, 0x0, HDA_OUTPUT),
- HDA_CODEC_MUTE("LineOut Playback Switch", 0x1b, 0x0, HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Line-Out Playback Volume", 0x02, 0x0, HDA_OUTPUT),
+ HDA_CODEC_MUTE("Line-Out Playback Switch", 0x1b, 0x0, HDA_OUTPUT),
HDA_CODEC_VOLUME("e-Mic Boost", 0x18, 0, HDA_INPUT),
HDA_CODEC_VOLUME("e-Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
I'll explain the issue a bit more: after commit 2134ea4f37d36addbe86d4901f6c67a22a5db006
"[ALSA] hda-codec - Add virtual master controls", alsamixer for example doesn't
work anymore on eeepc p710:
"alsamixer: function snd_mixer_load failed: No such file or directory"
I figured out that the problem was with the virtual master controls code and the
eeepc p710 mixer that doesn't have any slave volume control. Given eeepc
hardware and my understading in reality this virtual master doesn't seem much
useful (you have only one playback source - LineOut Playback), only for master
switch it is useful as you have Speaker and HeadPhone switches (Headphone is
name LineOut Playback Switch in this case) as slave switches. But as only
master switch doesn't seem good (it would be strange change vmaster
code to accept only a master switch) and I didn't want to refactor the eeepc
mixer, this patch seemed a good solution, please comment on it, what do you
think?
I also thought of making code to just disable vmaster for this model, I don't
know what could be the better solution.
Something should be done also for the other eeepc ep20 model mixer, it will not
suffer the same bug, but the way its mixer is currently seems to conflict with the
virtual master control idea (may be "MuteCtrl" would be obsoleted).
--
[]'s
Herton
2
2