Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 101e4d91 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa

* 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa:
  [ALSA] version 1.0.15
  [ALSA] hda-codec - Fix possible array overflow
  [ALSA] sound/core/control.c: hard-irq-safe -> hard-irq-unsafe lock warning
  [ALSA] usb-audio: Another USB mic quirk for Logitech Communicator webcam
  [ALSA] hda-codec - Fix build without CONFIG_SND_HDA_GENERIC
  [ALSA] hda-codec - Fix Conexant 5045 volumes
  [ALSA] hda-codec - Fix conflict of Master volume in STAC92xx codec
  [ALSA] snd-bt87x: Make the load_all option work correctly
  [ALSA] protect Dreamcast PCM driver (AICA) from G2 bus effects
  [ALSA] bt87x - Fix section mismatch
  [ALSA] hda-codec - Fix AD1986A Lenovo auto-mute
  [ALSA] This simplifies and fixes waiting loops of the mce_down()
parents 2f2c2679 9efbf95f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
/* include/version.h.  Generated by alsa/ksync script.  */
#define CONFIG_SND_VERSION "1.0.15"
#define CONFIG_SND_DATE " (Tue Oct 16 14:57:44 2007 UTC)"
#define CONFIG_SND_DATE " (Tue Oct 23 06:09:18 2007 UTC)"
+3 −2
Original line number Diff line number Diff line
@@ -93,15 +93,16 @@ static int snd_ctl_open(struct inode *inode, struct file *file)

static void snd_ctl_empty_read_queue(struct snd_ctl_file * ctl)
{
	unsigned long flags;
	struct snd_kctl_event *cread;
	
	spin_lock(&ctl->read_lock);
	spin_lock_irqsave(&ctl->read_lock, flags);
	while (!list_empty(&ctl->events)) {
		cread = snd_kctl_event(ctl->events.next);
		list_del(&cread->list);
		kfree(cread);
	}
	spin_unlock(&ctl->read_lock);
	spin_unlock_irqrestore(&ctl->read_lock, flags);
}

static int snd_ctl_release(struct inode *inode, struct file *file)
+2 −2
Original line number Diff line number Diff line
@@ -165,7 +165,7 @@ struct snd_bt87x_board {
	unsigned no_digital:1;	/* No digital input */
};

static const __devinitdata struct snd_bt87x_board snd_bt87x_boards[] = {
static __devinitdata struct snd_bt87x_board snd_bt87x_boards[] = {
	[SND_BT87X_BOARD_UNKNOWN] = {
		.dig_rate = 32000, /* just a guess */
	},
@@ -848,7 +848,7 @@ static int __devinit snd_bt87x_detect_card(struct pci_dev *pci)
	int i;
	const struct pci_device_id *supported;

	supported = pci_match_device(&driver, pci);
	supported = pci_match_id(snd_bt87x_ids, pci);
	if (supported && supported->driver_data > 0)
		return supported->driver_data;

+2 −7
Original line number Diff line number Diff line
@@ -626,24 +626,19 @@ int __devinit snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr,
		snd_hda_get_codec_name(codec, bus->card->mixername,
				       sizeof(bus->card->mixername));

#ifdef CONFIG_SND_HDA_GENERIC
	if (is_generic_config(codec)) {
		err = snd_hda_parse_generic_codec(codec);
		goto patched;
	}
#endif
	if (codec->preset && codec->preset->patch) {
		err = codec->preset->patch(codec);
		goto patched;
	}

	/* call the default parser */
#ifdef CONFIG_SND_HDA_GENERIC
	err = snd_hda_parse_generic_codec(codec);
#else
	if (err < 0)
		printk(KERN_ERR "hda-codec: No codec parser is available\n");
	err = -ENODEV;
#endif

 patched:
	if (err < 0) {
+13 −5
Original line number Diff line number Diff line
@@ -245,7 +245,14 @@ int snd_hda_multi_out_analog_cleanup(struct hda_codec *codec,
/*
 * generic codec parser
 */
#ifdef CONFIG_SND_HDA_GENERIC
int snd_hda_parse_generic_codec(struct hda_codec *codec);
#else
static inline int snd_hda_parse_generic_codec(struct hda_codec *codec)
{
	return -ENODEV;
}
#endif

/*
 * generic proc interface
@@ -303,16 +310,17 @@ enum {

extern const char *auto_pin_cfg_labels[AUTO_PIN_LAST];

#define AUTO_CFG_MAX_OUTS	5

struct auto_pin_cfg {
	int line_outs;
	hda_nid_t line_out_pins[5]; /* sorted in the order of
				     * Front/Surr/CLFE/Side
				     */
	/* sorted in the order of Front/Surr/CLFE/Side */
	hda_nid_t line_out_pins[AUTO_CFG_MAX_OUTS];
	int speaker_outs;
	hda_nid_t speaker_pins[5];
	hda_nid_t speaker_pins[AUTO_CFG_MAX_OUTS];
	int hp_outs;
	int line_out_type;	/* AUTO_PIN_XXX_OUT */
	hda_nid_t hp_pins[5];
	hda_nid_t hp_pins[AUTO_CFG_MAX_OUTS];
	hda_nid_t input_pins[AUTO_PIN_LAST];
	hda_nid_t dig_out_pin;
	hda_nid_t dig_in_pin;
Loading