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

Commit 88501ce1 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge remote branch 'alsa/devel' into topic/misc

parents 408bffd0 d1db38c0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1948,7 +1948,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
  -------------------

    Module for sound cards based on the Asus AV100/AV200 chips,
    i.e., Xonar D1, DX, D2, D2X, HDAV1.3 (Deluxe), Essence ST
    i.e., Xonar D1, DX, D2, D2X, DS, HDAV1.3 (Deluxe), Essence ST
    (Deluxe) and Essence STX.

    This module supports autoprobe and multiple cards.
+13 −14
Original line number Diff line number Diff line
@@ -33,22 +33,21 @@

#define SKEW_BASE	0x10000	/* 16bit shift */

static void snd_seq_timer_set_tick_resolution(struct snd_seq_timer_tick *tick,
					      int tempo, int ppq)
static void snd_seq_timer_set_tick_resolution(struct snd_seq_timer *tmr)
{
	if (tempo < 1000000)
		tick->resolution = (tempo * 1000) / ppq;
	if (tmr->tempo < 1000000)
		tmr->tick.resolution = (tmr->tempo * 1000) / tmr->ppq;
	else {
		/* might overflow.. */
		unsigned int s;
		s = tempo % ppq;
		s = (s * 1000) / ppq;
		tick->resolution = (tempo / ppq) * 1000;
		tick->resolution += s;
		s = tmr->tempo % tmr->ppq;
		s = (s * 1000) / tmr->ppq;
		tmr->tick.resolution = (tmr->tempo / tmr->ppq) * 1000;
		tmr->tick.resolution += s;
	}
	if (tick->resolution <= 0)
		tick->resolution = 1;
	snd_seq_timer_update_tick(tick, 0);
	if (tmr->tick.resolution <= 0)
		tmr->tick.resolution = 1;
	snd_seq_timer_update_tick(&tmr->tick, 0);
}

/* create new timer (constructor) */
@@ -96,7 +95,7 @@ void snd_seq_timer_defaults(struct snd_seq_timer * tmr)
	/* setup defaults */
	tmr->ppq = 96;		/* 96 PPQ */
	tmr->tempo = 500000;	/* 120 BPM */
	snd_seq_timer_set_tick_resolution(&tmr->tick, tmr->tempo, tmr->ppq);
	snd_seq_timer_set_tick_resolution(tmr);
	tmr->running = 0;

	tmr->type = SNDRV_SEQ_TIMER_ALSA;
@@ -180,7 +179,7 @@ int snd_seq_timer_set_tempo(struct snd_seq_timer * tmr, int tempo)
	spin_lock_irqsave(&tmr->lock, flags);
	if ((unsigned int)tempo != tmr->tempo) {
		tmr->tempo = tempo;
		snd_seq_timer_set_tick_resolution(&tmr->tick, tmr->tempo, tmr->ppq);
		snd_seq_timer_set_tick_resolution(tmr);
	}
	spin_unlock_irqrestore(&tmr->lock, flags);
	return 0;
@@ -205,7 +204,7 @@ int snd_seq_timer_set_ppq(struct snd_seq_timer * tmr, int ppq)
	}

	tmr->ppq = ppq;
	snd_seq_timer_set_tick_resolution(&tmr->tick, tmr->tempo, tmr->ppq);
	snd_seq_timer_set_tick_resolution(tmr);
	spin_unlock_irqrestore(&tmr->lock, flags);
	return 0;
}
+1 −0
Original line number Diff line number Diff line
@@ -789,6 +789,7 @@ config SND_VIRTUOSO
	  Say Y here to include support for sound cards based on the
	  Asus AV100/AV200 chips, i.e., Xonar D1, DX, D2, D2X,
	  Essence ST (Deluxe), and Essence STX.
	  Support for the DS is experimental.
	  Support for the HDAV1.3 (Deluxe) is very experimental.

	  To compile this driver as a module, choose M here: the module
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ snd-oxygen-lib-objs := oxygen_io.o oxygen_lib.o oxygen_mixer.o oxygen_pcm.o
snd-hifier-objs := hifier.o
snd-oxygen-objs := oxygen.o
snd-virtuoso-objs := virtuoso.o xonar_lib.o \
	xonar_pcm179x.o xonar_cs43xx.o xonar_hdmi.o
	xonar_pcm179x.o xonar_cs43xx.o xonar_wm87x6.o xonar_hdmi.o

obj-$(CONFIG_SND_OXYGEN_LIB) += snd-oxygen-lib.o
obj-$(CONFIG_SND_HIFIER) += snd-hifier.o
+3 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ static struct pci_device_id xonar_ids[] __devinitdata = {
	{ OXYGEN_PCI_SUBID(0x1043, 0x834f) },
	{ OXYGEN_PCI_SUBID(0x1043, 0x835c) },
	{ OXYGEN_PCI_SUBID(0x1043, 0x835d) },
	{ OXYGEN_PCI_SUBID(0x1043, 0x838e) },
	{ OXYGEN_PCI_SUBID_BROKEN_EEPROM },
	{ }
};
@@ -61,6 +62,8 @@ static int __devinit get_xonar_model(struct oxygen *chip,
		return 0;
	if (get_xonar_cs43xx_model(chip, id) >= 0)
		return 0;
	if (get_xonar_wm87x6_model(chip, id) >= 0)
		return 0;
	return -EINVAL;
}

Loading