[kernel] r17807 - in dists/trunk/linux-2.6/debian: . patches/bugfix/all patches/series

Maximilian Attems maks at alioth.debian.org
Tue Jul 5 07:37:11 UTC 2011


Author: maks
Date: Tue Jul  5 07:37:09 2011
New Revision: 17807

Log:
add some alsa patches from linux-next to make intel hda suck less

X220 tested.

Added:
   dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-HDMI-fix-ELD-monitor-name-length.patch
   dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-hda-Handle-1-as-invalid-position-too.patch
   dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-hda-Judge-playback-stream-from-stream-id-in-azx.patch
Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches/series/base

Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog	Tue Jul  5 04:58:22 2011	(r17806)
+++ dists/trunk/linux-2.6/debian/changelog	Tue Jul  5 07:37:09 2011	(r17807)
@@ -14,6 +14,9 @@
   * [thinkpad]: Add KEY_MICMUTE and enable it on Lenovo X220.
   * [m68k]: resources: Add lookup_resource().
   * m68k/atari: Reserve some ST-RAM early on for device buffer use.
+  * ALSA: hda - Handle -1 as invalid position, too
+  * ALSA: hda - Judge playback stream from stream id in azx_via_get_position()
+  * ALSA: HDMI - fix ELD monitor name length
 
   [ Ben Hutchings ]
   * [x86] Enable SCSI_ISCI as module

Added: dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-HDMI-fix-ELD-monitor-name-length.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-HDMI-fix-ELD-monitor-name-length.patch	Tue Jul  5 07:37:09 2011	(r17807)
@@ -0,0 +1,37 @@
+From f5b2d0ef631bb0647ae8ed1752d2127b8fb6da70 Mon Sep 17 00:00:00 2001
+From: Wu Fengguang <fengguang.wu at intel.com>
+Date: Wed, 29 Jun 2011 14:26:07 +0800
+Subject: [PATCH] ALSA: HDMI - fix ELD monitor name length
+
+I noticed that the last character of the ELD monitor name is lost,
+this fixes the issue.
+
+This fix should be confirming to the HDA spec, and works together with
+the DRM part of the ELD patch.
+
+The HDA spec does not mention that Monitor_Name_String is an '\0'
+ending string, and it allows NML to be 1, which is only valid when MNL
+does not count the possible ending '\0'.
+
+Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ sound/pci/hda/hda_eld.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/sound/pci/hda/hda_eld.c b/sound/pci/hda/hda_eld.c
+index b05f7be..e3e8531 100644
+--- a/sound/pci/hda/hda_eld.c
++++ b/sound/pci/hda/hda_eld.c
+@@ -294,7 +294,7 @@ static int hdmi_update_eld(struct hdmi_eld *e,
+ 		snd_printd(KERN_INFO "HDMI: out of range MNL %d\n", mnl);
+ 		goto out_fail;
+ 	} else
+-		strlcpy(e->monitor_name, buf + ELD_FIXED_BYTES, mnl);
++		strlcpy(e->monitor_name, buf + ELD_FIXED_BYTES, mnl + 1);
+ 
+ 	for (i = 0; i < e->sad_count; i++) {
+ 		if (ELD_FIXED_BYTES + mnl + 3 * (i + 1) > size) {
+-- 
+1.7.2.5
+

Added: dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-hda-Handle-1-as-invalid-position-too.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-hda-Handle-1-as-invalid-position-too.patch	Tue Jul  5 07:37:09 2011	(r17807)
@@ -0,0 +1,55 @@
+From a810364a0424c297242c6c66071a42f7675a5568 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai at suse.de>
+Date: Tue, 7 Jun 2011 12:23:23 +0200
+Subject: [PATCH] ALSA: hda - Handle -1 as invalid position, too
+
+When reading from the position-buffer results in -1, handle as it's
+invalid and falls back to LPIB mode as well as 0.
+
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ sound/pci/hda/hda_intel.c |   21 +++++++++++----------
+ 1 files changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 966f401..45cd02f 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -1930,6 +1930,17 @@ static unsigned int azx_get_position(struct azx *chip,
+ 	default:
+ 		/* use the position buffer */
+ 		pos = le32_to_cpu(*azx_dev->posbuf);
++		if (chip->position_fix[stream] == POS_FIX_AUTO) {
++			if (!pos || pos == (u32)-1) {
++				printk(KERN_WARNING
++				       "hda-intel: Invalid position buffer, "
++				       "using LPIB read method instead.\n");
++				chip->position_fix[stream] = POS_FIX_LPIB;
++				pos = azx_sd_readl(azx_dev, SD_LPIB);
++			} else
++				chip->position_fix[stream] = POS_FIX_POSBUF;
++		}
++		break;
+ 	}
+ 
+ 	if (pos >= azx_dev->bufsize)
+@@ -1967,16 +1978,6 @@ static int azx_position_ok(struct azx *chip, struct azx_dev *azx_dev)
+ 
+ 	stream = azx_dev->substream->stream;
+ 	pos = azx_get_position(chip, azx_dev);
+-	if (chip->position_fix[stream] == POS_FIX_AUTO) {
+-		if (!pos) {
+-			printk(KERN_WARNING
+-			       "hda-intel: Invalid position buffer, "
+-			       "using LPIB read method instead.\n");
+-			chip->position_fix[stream] = POS_FIX_LPIB;
+-			pos = azx_get_position(chip, azx_dev);
+-		} else
+-			chip->position_fix[stream] = POS_FIX_POSBUF;
+-	}
+ 
+ 	if (WARN_ONCE(!azx_dev->period_bytes,
+ 		      "hda-intel: zero azx_dev->period_bytes"))
+-- 
+1.7.2.5
+

Added: dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-hda-Judge-playback-stream-from-stream-id-in-azx.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/all/ALSA-hda-Judge-playback-stream-from-stream-id-in-azx.patch	Tue Jul  5 07:37:09 2011	(r17807)
@@ -0,0 +1,29 @@
+From b4a655e81d4d1d12abc92d29dfb7550e66a08799 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai at suse.de>
+Date: Tue, 7 Jun 2011 12:26:56 +0200
+Subject: [PATCH] ALSA: hda - Judge playback stream from stream id in azx_via_get_position()
+
+Instead of checking the azx_dev index with a fixed number (4), check
+the stream direction of the assigned substream.
+
+Signed-off-by: Takashi Iwai <tiwai at suse.de>
+---
+ sound/pci/hda/hda_intel.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 45cd02f..5f2d05a 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -1866,7 +1866,7 @@ static unsigned int azx_via_get_position(struct azx *chip,
+ 	unsigned int fifo_size;
+ 
+ 	link_pos = azx_sd_readl(azx_dev, SD_LPIB);
+-	if (azx_dev->index >= 4) {
++	if (azx_dev->substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+ 		/* Playback, no problem using link position */
+ 		return link_pos;
+ 	}
+-- 
+1.7.2.5
+

Modified: dists/trunk/linux-2.6/debian/patches/series/base
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/base	Tue Jul  5 04:58:22 2011	(r17806)
+++ dists/trunk/linux-2.6/debian/patches/series/base	Tue Jul  5 07:37:09 2011	(r17807)
@@ -48,4 +48,6 @@
 + bugfix/all/Add-KEY_MICMUTE-and-enable-it-on-Lenovo-X220.patch
 + bugfix/all/resources-Add-lookup_resource.patch
 + bugfix/all/m68k-atari-Reserve-some-ST-RAM-early-on-for-device-b.patch
-
++ bugfix/all/ALSA-hda-Handle-1-as-invalid-position-too.patch
++ bugfix/all/ALSA-hda-Judge-playback-stream-from-stream-id-in-azx.patch
++ bugfix/all/ALSA-HDMI-fix-ELD-monitor-name-length.patch



More information about the Kernel-svn-changes mailing list