Skip to content

Commit

Permalink
Merge master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
Browse files Browse the repository at this point in the history
* master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa:
  [ALSA] echoaudio - Remove kfree_nocheck()
  [ALSA] echoaudio - Fix Makefile
  [ALSA] Add Intel D965 board support
  [ALSA] Fix/add support of Realtek ALC883 / ALC888 and ALC861 codecs
  [ALSA] Fix a typo in echoaudio/midi.c
  [ALSA] snd-aoa: enable dual-edge in GPIOs
  [ALSA] snd-aoa: support iMac G5 iSight
  [ALSA] snd-aoa: not experimental
  [ALSA] Add echoaudio sound drivers
  [ALSA] ak4xxx-adda - Code clean-up
  [ALSA] Remove CONFIG_EXPERIMENTAL from intel8x0m driver
  [ALSA] Stereo controls for M-Audio Revolution cards
  [ALSA] Fix misuse of __list_add() in seq_ports.c
  [ALSA] hda-codec - Add model entry for Samsung X60 Chane
  [ALSA] make CONFIG_SND_DYNAMIC_MINORS non-experimental
  [ALSA] Fix wrong dependencies of snd-aoa driver
  [ALSA] fix build failure due to snd-aoa
  [ALSA] AD1888 mixer controls for DC mode
  [ALSA] Suppress irq handler mismatch messages in ALSA ISA drivers
  [ALSA] usb-audio support for Turtle Beach Roadie
  • Loading branch information
Linus Torvalds committed Jun 29, 2006
2 parents 3aa590c + 8caf7aa commit 0950c35
Show file tree
Hide file tree
Showing 53 changed files with 11,431 additions and 248 deletions.
106 changes: 104 additions & 2 deletions Documentation/sound/alsa/ALSA-Configuration.txt
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,22 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

The power-management is supported.

Module snd-darla20
------------------

Module for Echoaudio Darla20

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-darla24
------------------

Module for Echoaudio Darla24

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-dt019x
-----------------

Expand Down Expand Up @@ -499,6 +515,14 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

The power-management is supported.

Module snd-echo3g
-----------------

Module for Echoaudio 3G cards (Gina3G/Layla3G)

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-emu10k1
------------------

Expand Down Expand Up @@ -657,6 +681,22 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

The power-management is supported.

Module snd-gina20
-----------------

Module for Echoaudio Gina20

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-gina24
-----------------

Module for Echoaudio Gina24

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-gusclassic
---------------------

Expand Down Expand Up @@ -760,12 +800,18 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
basic fixed pin assignment w/o SPDIF
auto auto-config reading BIOS (default)

ALC882/883/885
ALC882/885
3stack-dig 3-jack with SPDIF I/O
6stck-dig 6-jack digital with SPDIF I/O
auto auto-config reading BIOS (default)

ALC861
ALC883/888
3stack-dig 3-jack with SPDIF I/O
6stack-dig 6-jack digital with SPDIF I/O
6stack-dig-demo 6-stack digital for Intel demo board
auto auto-config reading BIOS (default)

ALC861/660
3stack 3-jack
3stack-dig 3-jack with SPDIF I/O
6stack-dig 6-jack with SPDIF I/O
Expand Down Expand Up @@ -937,6 +983,30 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
driver isn't configured properly or you want to try another
type for testing.

Module snd-indigo
-----------------

Module for Echoaudio Indigo

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-indigodj
-------------------

Module for Echoaudio Indigo DJ

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-indigoio
-------------------

Module for Echoaudio Indigo IO

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-intel8x0
-------------------

Expand Down Expand Up @@ -1036,6 +1106,22 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

This module supports multiple cards.

Module snd-layla20
------------------

Module for Echoaudio Layla20

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-layla24
------------------

Module for Echoaudio Layla24

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-maestro3
-------------------

Expand All @@ -1056,6 +1142,14 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

The power-management is supported.

Module snd-mia
---------------

Module for Echoaudio Mia

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-miro
---------------

Expand Down Expand Up @@ -1088,6 +1182,14 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
When no hotplug fw loader is available, you need to load the
firmware via mixartloader utility in alsa-tools package.

Module snd-mona
---------------

Module for Echoaudio Mona

This module supports multiple cards.
The driver requires the firmware loader support on kernel.

Module snd-mpu401
-----------------

Expand Down
1 change: 1 addition & 0 deletions include/sound/ac97_codec.h
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@

/* specific - Analog Devices */
#define AC97_AD_TEST 0x5a /* test register */
#define AC97_AD_TEST2 0x5c /* undocumented test register 2 */
#define AC97_AD_CODEC_CFG 0x70 /* codec configuration */
#define AC97_AD_JACK_SPDIF 0x72 /* Jack Sense & S/PDIF */
#define AC97_AD_SERIAL_CFG 0x74 /* Serial Configuration */
Expand Down
35 changes: 23 additions & 12 deletions include/sound/ak4xxx-adda.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,38 +32,49 @@ struct snd_akm4xxx;
struct snd_ak4xxx_ops {
void (*lock)(struct snd_akm4xxx *ak, int chip);
void (*unlock)(struct snd_akm4xxx *ak, int chip);
void (*write)(struct snd_akm4xxx *ak, int chip, unsigned char reg, unsigned char val);
// unsigned char (*read)(struct snd_akm4xxx *ak, int chip, unsigned char reg);
void (*write)(struct snd_akm4xxx *ak, int chip, unsigned char reg,
unsigned char val);
void (*set_rate_val)(struct snd_akm4xxx *ak, unsigned int rate);
};

#define AK4XXX_IMAGE_SIZE (AK4XXX_MAX_CHIPS * 16) /* 64 bytes */

struct snd_akm4xxx {
struct snd_card *card;
unsigned int num_adcs; /* AK4524 or AK4528 ADCs */
unsigned int num_dacs; /* AK4524 or AK4528 DACs */
unsigned char images[AK4XXX_IMAGE_SIZE]; /* saved register image */
unsigned char ipga_gain[AK4XXX_MAX_CHIPS][2]; /* saved register image for IPGA (AK4528) */
unsigned int num_adcs; /* AK4524 or AK4528 ADCs */
unsigned int num_dacs; /* AK4524 or AK4528 DACs */
unsigned char images[AK4XXX_IMAGE_SIZE]; /* saved register image */
unsigned char ipga_gain[AK4XXX_MAX_CHIPS][2]; /* saved register image
* for IPGA (AK4528)
*/
unsigned long private_value[AK4XXX_MAX_CHIPS]; /* helper for driver */
void *private_data[AK4XXX_MAX_CHIPS]; /* helper for driver */
/* template should fill the following fields */
unsigned int idx_offset; /* control index offset */
unsigned int idx_offset; /* control index offset */
enum {
SND_AK4524, SND_AK4528, SND_AK4529,
SND_AK4355, SND_AK4358, SND_AK4381
} type;
unsigned int *num_stereo; /* array of combined counts
* for the mixer
*/
char **channel_names; /* array of mixer channel names */
struct snd_ak4xxx_ops ops;
};

void snd_akm4xxx_write(struct snd_akm4xxx *ak, int chip, unsigned char reg, unsigned char val);
void snd_akm4xxx_write(struct snd_akm4xxx *ak, int chip, unsigned char reg,
unsigned char val);
void snd_akm4xxx_reset(struct snd_akm4xxx *ak, int state);
void snd_akm4xxx_init(struct snd_akm4xxx *ak);
int snd_akm4xxx_build_controls(struct snd_akm4xxx *ak);

#define snd_akm4xxx_get(ak,chip,reg) (ak)->images[(chip) * 16 + (reg)]
#define snd_akm4xxx_set(ak,chip,reg,val) ((ak)->images[(chip) * 16 + (reg)] = (val))
#define snd_akm4xxx_get_ipga(ak,chip,reg) (ak)->ipga_gain[chip][(reg)-4]
#define snd_akm4xxx_set_ipga(ak,chip,reg,val) ((ak)->ipga_gain[chip][(reg)-4] = (val))
#define snd_akm4xxx_get(ak,chip,reg) \
(ak)->images[(chip) * 16 + (reg)]
#define snd_akm4xxx_set(ak,chip,reg,val) \
((ak)->images[(chip) * 16 + (reg)] = (val))
#define snd_akm4xxx_get_ipga(ak,chip,reg) \
(ak)->ipga_gain[chip][(reg)-4]
#define snd_akm4xxx_set_ipga(ak,chip,reg,val) \
((ak)->ipga_gain[chip][(reg)-4] = (val))

#endif /* __SOUND_AK4XXX_ADDA_H */
3 changes: 2 additions & 1 deletion include/sound/initval.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ static int snd_legacy_find_free_irq(int *irq_table)
{
while (*irq_table != -1) {
if (!request_irq(*irq_table, snd_legacy_empty_irq_handler,
SA_INTERRUPT, "ALSA Test IRQ", (void *) irq_table)) {
SA_INTERRUPT | SA_PROBEIRQ, "ALSA Test IRQ",
(void *) irq_table)) {
free_irq(*irq_table, (void *) irq_table);
return *irq_table;
}
Expand Down
3 changes: 2 additions & 1 deletion sound/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
obj-$(CONFIG_SOUND) += soundcore.o
obj-$(CONFIG_SOUND_PRIME) += oss/
obj-$(CONFIG_DMASOUND) += oss/
obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ synth/ usb/ sparc/ parisc/ pcmcia/ mips/ aoa/
obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ synth/ usb/ sparc/ parisc/ pcmcia/ mips/
obj-$(CONFIG_SND_AOA) += aoa/

ifeq ($(CONFIG_SND),y)
obj-y += last.o
Expand Down
3 changes: 2 additions & 1 deletion sound/aoa/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ menu "Apple Onboard Audio driver"

config SND_AOA
tristate "Apple Onboard Audio driver"
depends on SOUND && SND_PCM
depends on SND
select SND_PCM
---help---
This option enables the new driver for the various
Apple Onboard Audio components.
Expand Down
15 changes: 15 additions & 0 deletions sound/aoa/core/snd-aoa-gpio-feature.c
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,17 @@ static void ftr_handle_notify(void *data)
mutex_unlock(&notif->mutex);
}

static void gpio_enable_dual_edge(int gpio)
{
int v;

if (gpio == -1)
return;
v = pmac_call_feature(PMAC_FTR_READ_GPIO, NULL, gpio, 0);
v |= 0x80; /* enable dual edge */
pmac_call_feature(PMAC_FTR_WRITE_GPIO, NULL, gpio, v);
}

static void ftr_gpio_init(struct gpio_runtime *rt)
{
get_gpio("headphone-mute", NULL,
Expand Down Expand Up @@ -234,6 +245,10 @@ static void ftr_gpio_init(struct gpio_runtime *rt)
&linein_detect_gpio,
&linein_detect_gpio_activestate);

gpio_enable_dual_edge(headphone_detect_gpio);
gpio_enable_dual_edge(lineout_detect_gpio);
gpio_enable_dual_edge(linein_detect_gpio);

get_irq(headphone_detect_node, &headphone_detect_irq);
get_irq(lineout_detect_node, &lineout_detect_irq);
get_irq(linein_detect_node, &linein_detect_irq);
Expand Down
14 changes: 8 additions & 6 deletions sound/aoa/fabrics/snd-aoa-fabric-layout.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ MODULE_ALIAS("sound-layout-82");
MODULE_ALIAS("sound-layout-84");
MODULE_ALIAS("sound-layout-86");
MODULE_ALIAS("sound-layout-92");
MODULE_ALIAS("sound-layout-96");

/* onyx with all but microphone connected */
static struct codec_connection onyx_connections_nomic[] = {
Expand Down Expand Up @@ -381,6 +382,13 @@ static struct layout layouts[] = {
.connections = toonie_connections,
},
},
{
.layout_id = 96,
.codecs[0] = {
.name = "onyx",
.connections = onyx_connections_noheadphones,
},
},
/* unknown, untested, but this comes from Apple */
{ .layout_id = 41,
.codecs[0] = {
Expand Down Expand Up @@ -479,12 +487,6 @@ static struct layout layouts[] = {
.connections = onyx_connections_noheadphones,
},
},
{ .layout_id = 96,
.codecs[0] = {
.name = "onyx",
.connections = onyx_connections_noheadphones,
},
},
{ .layout_id = 98,
.codecs[0] = {
.name = "toonie",
Expand Down
3 changes: 2 additions & 1 deletion sound/aoa/soundbus/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
config SND_AOA_SOUNDBUS
tristate "Apple Soundbus support"
depends on SOUND && SND_PCM && EXPERIMENTAL
depends on SOUND
select SND_PCM
---help---
This option enables the generic driver for the soundbus
support on Apple machines.
Expand Down
4 changes: 2 additions & 2 deletions sound/core/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ config SND_SEQ_RTCTIMER_DEFAULT
If in doubt, say Y.

config SND_DYNAMIC_MINORS
bool "Dynamic device file minor numbers (EXPERIMENTAL)"
depends on SND && EXPERIMENTAL
bool "Dynamic device file minor numbers"
depends on SND
help
If you say Y here, the minor numbers of ALSA device files in
/dev/snd/ are allocated dynamically. This allows you to have
Expand Down
6 changes: 2 additions & 4 deletions sound/core/seq/seq_ports.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,10 +322,8 @@ int snd_seq_delete_all_ports(struct snd_seq_client *client)
mutex_lock(&client->ports_mutex);
write_lock_irqsave(&client->ports_lock, flags);
if (! list_empty(&client->ports_list_head)) {
__list_add(&deleted_list,
client->ports_list_head.prev,
client->ports_list_head.next);
INIT_LIST_HEAD(&client->ports_list_head);
list_add(&deleted_list, &client->ports_list_head);
list_del_init(&client->ports_list_head);
} else {
INIT_LIST_HEAD(&deleted_list);
}
Expand Down
Loading

0 comments on commit 0950c35

Please sign in to comment.