Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] miscellaneous patches for 3.18
@ 2014-09-07 19:42 Clemens Ladisch
  2014-09-07 19:43 ` [PATCH 1/5] ALSA: pcm: snd_interval_step: drop the min parameter Clemens Ladisch
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Clemens Ladisch @ 2014-09-07 19:42 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

 sound/core/pcm_lib.c             |   10 ++++++----
 sound/pci/oxygen/xonar_pcm179x.c |   33 +++++++++++++++++++++++----------
 sound/usb/midi.c                 |   11 +++++++++++
 3 files changed, 40 insertions(+), 14 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/5] ALSA: pcm: snd_interval_step: drop the min parameter
  2014-09-07 19:42 [PATCH 0/5] miscellaneous patches for 3.18 Clemens Ladisch
@ 2014-09-07 19:43 ` Clemens Ladisch
  2014-09-07 19:43 ` [PATCH 0/5] ALSA: pcm: snd_interval_step: fix changes of open intervals Clemens Ladisch
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Clemens Ladisch @ 2014-09-07 19:43 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

The min parameter was not used by any caller.  And if it were used,
underflows in the calculations could lead to incorrect results.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
---
 sound/core/pcm_lib.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index 9acc77e..6fd5e1c 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -1113,16 +1113,16 @@ int snd_interval_list(struct snd_interval *i, unsigned int count,

 EXPORT_SYMBOL(snd_interval_list);

-static int snd_interval_step(struct snd_interval *i, unsigned int min, unsigned int step)
+static int snd_interval_step(struct snd_interval *i, unsigned int step)
 {
 	unsigned int n;
 	int changed = 0;
-	n = (i->min - min) % step;
+	n = i->min % step;
 	if (n != 0 || i->openmin) {
 		i->min += step - n;
 		changed = 1;
 	}
-	n = (i->max - min) % step;
+	n = i->max % step;
 	if (n != 0 || i->openmax) {
 		i->max -= n;
 		changed = 1;
@@ -1427,7 +1427,7 @@ static int snd_pcm_hw_rule_step(struct snd_pcm_hw_params *params,
 				struct snd_pcm_hw_rule *rule)
 {
 	unsigned long step = (unsigned long) rule->private;
-	return snd_interval_step(hw_param_interval(params, rule->var), 0, step);
+	return snd_interval_step(hw_param_interval(params, rule->var), step);
 }

 /**

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/5] ALSA: pcm: snd_interval_step: fix changes of open intervals
  2014-09-07 19:42 [PATCH 0/5] miscellaneous patches for 3.18 Clemens Ladisch
  2014-09-07 19:43 ` [PATCH 1/5] ALSA: pcm: snd_interval_step: drop the min parameter Clemens Ladisch
@ 2014-09-07 19:43 ` Clemens Ladisch
  2014-09-07 19:44 ` [PATCH 3/5] ALSA: usb-audio: add MIDI port names for the Yamaha MOTIF XF Clemens Ladisch
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Clemens Ladisch @ 2014-09-07 19:43 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Changing an interval boundary to a multiple of the step size makes that
boundary exact.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
---
 sound/core/pcm_lib.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index 6fd5e1c..b03c7ae 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -1120,11 +1120,13 @@ static int snd_interval_step(struct snd_interval *i, unsigned int step)
 	n = i->min % step;
 	if (n != 0 || i->openmin) {
 		i->min += step - n;
+		i->openmin = 0;
 		changed = 1;
 	}
 	n = i->max % step;
 	if (n != 0 || i->openmax) {
 		i->max -= n;
+		i->openmax = 0;
 		changed = 1;
 	}
 	if (snd_interval_checkempty(i)) {

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/5] ALSA: usb-audio: add MIDI port names for the Yamaha MOTIF XF
  2014-09-07 19:42 [PATCH 0/5] miscellaneous patches for 3.18 Clemens Ladisch
  2014-09-07 19:43 ` [PATCH 1/5] ALSA: pcm: snd_interval_step: drop the min parameter Clemens Ladisch
  2014-09-07 19:43 ` [PATCH 0/5] ALSA: pcm: snd_interval_step: fix changes of open intervals Clemens Ladisch
@ 2014-09-07 19:44 ` Clemens Ladisch
  2014-09-07 19:45 ` [PATCH 4/5] ALSA: virtuoso: add one more headphone impedance setting Clemens Ladisch
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Clemens Ladisch @ 2014-09-07 19:44 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
---
 sound/usb/midi.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/sound/usb/midi.c b/sound/usb/midi.c
index 7b166c2..69e93a9 100644
--- a/sound/usb/midi.c
+++ b/sound/usb/midi.c
@@ -1506,6 +1506,12 @@ static struct port_info {
 	PORT_INFO(vendor, product, num, name, 0, \
 		  SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | \
 		  SNDRV_SEQ_PORT_TYPE_HARDWARE)
+#define GM_SYNTH_PORT(vendor, product, num, name, voices) \
+	PORT_INFO(vendor, product, num, name, voices, \
+		  SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | \
+		  SNDRV_SEQ_PORT_TYPE_MIDI_GM | \
+		  SNDRV_SEQ_PORT_TYPE_HARDWARE | \
+		  SNDRV_SEQ_PORT_TYPE_SYNTHESIZER)
 #define ROLAND_SYNTH_PORT(vendor, product, num, name, voices) \
 	PORT_INFO(vendor, product, num, name, voices, \
 		  SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | \
@@ -1525,6 +1531,11 @@ static struct port_info {
 		  SNDRV_SEQ_PORT_TYPE_MIDI_MT32 | \
 		  SNDRV_SEQ_PORT_TYPE_HARDWARE | \
 		  SNDRV_SEQ_PORT_TYPE_SYNTHESIZER)
+	/* Yamaha MOTIF XF */
+	GM_SYNTH_PORT(0x0499, 0x105c, 0, "%s Tone Generator", 128),
+	CONTROL_PORT(0x0499, 0x105c, 1, "%s Remote Control"),
+	EXTERNAL_PORT(0x0499, 0x105c, 2, "%s Thru"),
+	CONTROL_PORT(0x0499, 0x105c, 3, "%s Editor"),
 	/* Roland UA-100 */
 	CONTROL_PORT(0x0582, 0x0000, 2, "%s Control"),
 	/* Roland SC-8850 */

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/5] ALSA: virtuoso: add one more headphone impedance setting
  2014-09-07 19:42 [PATCH 0/5] miscellaneous patches for 3.18 Clemens Ladisch
                   ` (2 preceding siblings ...)
  2014-09-07 19:44 ` [PATCH 3/5] ALSA: usb-audio: add MIDI port names for the Yamaha MOTIF XF Clemens Ladisch
@ 2014-09-07 19:45 ` Clemens Ladisch
  2014-09-07 19:47 ` [PATCH 5/5] ALSA: virtuoso: add Xonar Essence STX II daughterboard support Clemens Ladisch
  2014-09-08  9:00 ` [PATCH 0/5] miscellaneous patches for 3.18 Takashi Iwai
  5 siblings, 0 replies; 7+ messages in thread
From: Clemens Ladisch @ 2014-09-07 19:45 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Add one more option to the "Headphones Impedance" control to synchronize
with recent versions of the Windows driver.

Tested-by: fugazzi® <fugazzi99@gmail.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
---
 sound/pci/oxygen/xonar_pcm179x.c |   18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c
index e026059..3c0a679 100644
--- a/sound/pci/oxygen/xonar_pcm179x.c
+++ b/sound/pci/oxygen/xonar_pcm179x.c
@@ -795,11 +795,11 @@ static int st_output_switch_put(struct snd_kcontrol *ctl,
 static int st_hp_volume_offset_info(struct snd_kcontrol *ctl,
 				    struct snd_ctl_elem_info *info)
 {
-	static const char *const names[3] = {
-		"< 64 ohms", "64-300 ohms", "300-600 ohms"
+	static const char *const names[4] = {
+		"< 32 ohms", "32-64 ohms", "64-300 ohms", "300-600 ohms"
 	};

-	return snd_ctl_enum_info(info, 1, 3, names);
+	return snd_ctl_enum_info(info, 1, 4, names);
 }

 static int st_hp_volume_offset_get(struct snd_kcontrol *ctl,
@@ -809,12 +809,14 @@ static int st_hp_volume_offset_get(struct snd_kcontrol *ctl,
 	struct xonar_pcm179x *data = chip->model_data;

 	mutex_lock(&chip->mutex);
-	if (data->hp_gain_offset < 2*-6)
+	if (data->hp_gain_offset < 2*-12)
 		value->value.enumerated.item[0] = 0;
-	else if (data->hp_gain_offset < 0)
+	else if (data->hp_gain_offset < 2*-6)
 		value->value.enumerated.item[0] = 1;
-	else
+	else if (data->hp_gain_offset < 0)
 		value->value.enumerated.item[0] = 2;
+	else
+		value->value.enumerated.item[0] = 3;
 	mutex_unlock(&chip->mutex);
 	return 0;
 }
@@ -823,13 +825,13 @@ static int st_hp_volume_offset_get(struct snd_kcontrol *ctl,
 static int st_hp_volume_offset_put(struct snd_kcontrol *ctl,
 				   struct snd_ctl_elem_value *value)
 {
-	static const s8 offsets[] = { 2*-18, 2*-6, 0 };
+	static const s8 offsets[] = { 2*-18, 2*-12, 2*-6, 0 };
 	struct oxygen *chip = ctl->private_data;
 	struct xonar_pcm179x *data = chip->model_data;
 	s8 offset;
 	int changed;

-	if (value->value.enumerated.item[0] > 2)
+	if (value->value.enumerated.item[0] > 3)
 		return -EINVAL;
 	offset = offsets[value->value.enumerated.item[0]];
 	mutex_lock(&chip->mutex);
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 5/5] ALSA: virtuoso: add Xonar Essence STX II daughterboard support
  2014-09-07 19:42 [PATCH 0/5] miscellaneous patches for 3.18 Clemens Ladisch
                   ` (3 preceding siblings ...)
  2014-09-07 19:45 ` [PATCH 4/5] ALSA: virtuoso: add one more headphone impedance setting Clemens Ladisch
@ 2014-09-07 19:47 ` Clemens Ladisch
  2014-09-08  9:00 ` [PATCH 0/5] miscellaneous patches for 3.18 Takashi Iwai
  5 siblings, 0 replies; 7+ messages in thread
From: Clemens Ladisch @ 2014-09-07 19:47 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

Detect and handle the H6 daughterboard; it works the same as with the
ST, except that there is no conflict with the CS2000 chip.

Tested-by: Andreas Allacher <andreas.allacher@gmx.at>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
---
 sound/pci/oxygen/xonar_pcm179x.c |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c
index 3c0a679..0d6a805 100644
--- a/sound/pci/oxygen/xonar_pcm179x.c
+++ b/sound/pci/oxygen/xonar_pcm179x.c
@@ -419,6 +419,7 @@ static void xonar_st_init_common(struct oxygen *chip)

 	data->generic.output_enable_bit = GPIO_ST_OUTPUT_ENABLE;
 	data->dacs = chip->model.dac_channels_mixer / 2;
+	data->h6 = chip->model.dac_channels_mixer > 2;
 	data->hp_gain_offset = 2*-18;

 	pcm1796_init(chip);
@@ -1142,8 +1143,18 @@ int get_xonar_pcm179x_model(struct oxygen *chip,
 		break;
 	case 0x85f4:
 		chip->model = model_xonar_st;
-		/* TODO: daughterboard support */
-		chip->model.shortname = "Xonar STX II";
+		oxygen_clear_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_DB_MASK);
+		switch (oxygen_read16(chip, OXYGEN_GPIO_DATA) & GPIO_DB_MASK) {
+		default:
+			chip->model.shortname = "Xonar STX II";
+			break;
+		case GPIO_DB_H6:
+			chip->model.shortname = "Xonar STX II+H6";
+			chip->model.dac_channels_pcm = 8;
+			chip->model.dac_channels_mixer = 8;
+			chip->model.dac_mclks = OXYGEN_MCLKS(256, 128, 128);
+			break;
+		}
 		chip->model.init = xonar_stx_init;
 		chip->model.resume = xonar_stx_resume;
 		chip->model.set_dac_params = set_pcm1796_params;

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/5] miscellaneous patches for 3.18
  2014-09-07 19:42 [PATCH 0/5] miscellaneous patches for 3.18 Clemens Ladisch
                   ` (4 preceding siblings ...)
  2014-09-07 19:47 ` [PATCH 5/5] ALSA: virtuoso: add Xonar Essence STX II daughterboard support Clemens Ladisch
@ 2014-09-08  9:00 ` Takashi Iwai
  5 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2014-09-08  9:00 UTC (permalink / raw)
  To: Clemens Ladisch; +Cc: alsa-devel

At Sun, 07 Sep 2014 21:42:24 +0200,
Clemens Ladisch wrote:
> 
>  sound/core/pcm_lib.c             |   10 ++++++----
>  sound/pci/oxygen/xonar_pcm179x.c |   33 +++++++++++++++++++++++----------
>  sound/usb/midi.c                 |   11 +++++++++++
>  3 files changed, 40 insertions(+), 14 deletions(-)

All applied.  Thanks.


Takashi

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-09-08  9:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-07 19:42 [PATCH 0/5] miscellaneous patches for 3.18 Clemens Ladisch
2014-09-07 19:43 ` [PATCH 1/5] ALSA: pcm: snd_interval_step: drop the min parameter Clemens Ladisch
2014-09-07 19:43 ` [PATCH 0/5] ALSA: pcm: snd_interval_step: fix changes of open intervals Clemens Ladisch
2014-09-07 19:44 ` [PATCH 3/5] ALSA: usb-audio: add MIDI port names for the Yamaha MOTIF XF Clemens Ladisch
2014-09-07 19:45 ` [PATCH 4/5] ALSA: virtuoso: add one more headphone impedance setting Clemens Ladisch
2014-09-07 19:47 ` [PATCH 5/5] ALSA: virtuoso: add Xonar Essence STX II daughterboard support Clemens Ladisch
2014-09-08  9:00 ` [PATCH 0/5] miscellaneous patches for 3.18 Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox