From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
Clemens Ladisch <clemens@ladisch.de>,
Takashi Iwai <tiwai@suse.de>
Subject: [patch 08/10] sound: oxygen: work around MCE when changing volume
Date: Wed, 16 Sep 2009 15:13:28 -0700 [thread overview]
Message-ID: <20090916221506.761243734@mini.kroah.org> (raw)
In-Reply-To: <20090916221529.GA28162@kroah.com>
[-- Attachment #1: sound-oxygen-work-around-mce-when-changing-volume.patch --]
[-- Type: text/plain, Size: 1598 bytes --]
2.6.27-stable review patch. If anyone has any objections, please let us know.
------------------
From: Clemens Ladisch <clemens@ladisch.de>
commit f1bc07af9a9edc5c1d4bdd971f7099316ed2e405 upstream.
When the volume is changed continuously (e.g., when the user drags a
volume slider with the mouse), the driver does lots of I2C writes.
Apparently, the sound chip can get confused when we poll the I2C status
register too much, and fails to complete a read from it. On the PCI-E
models, the PCI-E/PCI bridge gets upset by this and generates a machine
check exception.
To avoid this, this patch replaces the polling with an unconditional
wait that is guaranteed to be long enough.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Tested-by: Johann Messner <johann.messner at jku.at>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
sound/pci/oxygen/oxygen_io.c | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
--- a/sound/pci/oxygen/oxygen_io.c
+++ b/sound/pci/oxygen/oxygen_io.c
@@ -214,17 +214,8 @@ EXPORT_SYMBOL(oxygen_write_spi);
void oxygen_write_i2c(struct oxygen *chip, u8 device, u8 map, u8 data)
{
- unsigned long timeout;
-
/* should not need more than about 300 us */
- timeout = jiffies + msecs_to_jiffies(1);
- do {
- if (!(oxygen_read16(chip, OXYGEN_2WIRE_BUS_STATUS)
- & OXYGEN_2WIRE_BUSY))
- break;
- udelay(1);
- cond_resched();
- } while (time_after_eq(timeout, jiffies));
+ msleep(1);
oxygen_write8(chip, OXYGEN_2WIRE_MAP, map);
oxygen_write8(chip, OXYGEN_2WIRE_DATA, data);
next prev parent reply other threads:[~2009-09-16 22:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20090916221320.283781925@mini.kroah.org>
2009-09-16 22:15 ` [patch 00/10] 2.6.27.35-stable review Greg KH
2009-09-16 22:13 ` [patch 01/10] binfmt_elf: fix PT_INTERP bss handling Greg KH
2009-09-16 22:13 ` [patch 02/10] powerpc/ps3: Workaround for flash memory I/O error Greg KH
2009-09-16 22:13 ` [patch 03/10] TPM: Fixup boot probe timeout for tpm_tis driver Greg KH
2009-09-16 22:13 ` [patch 04/10] udf: Use device size when drive reported bogus number of written blocks Greg KH
2009-09-16 22:13 ` [patch 05/10] ALSA: cs46xx - Fix minimum period size Greg KH
2009-09-16 22:13 ` [patch 06/10] libata: fix off-by-one error in ata_tf_read_block() Greg KH
2009-09-16 22:13 ` [patch 07/10] powerpc/pseries: Fix to handle slb resize across migration Greg KH
2009-09-16 22:13 ` Greg KH [this message]
2009-09-16 22:13 ` [patch 09/10] Short write in nfsd becomes a full write to the client Greg KH
2009-09-16 22:13 ` [patch 10/10] nfsd: fix hung up of nfs client while sync write data to nfs server Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090916221506.761243734@mini.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=clemens@ladisch.de \
--cc=linux-kernel@vger.kernel.org \
--cc=stable-review@kernel.org \
--cc=stable@kernel.org \
--cc=tiwai@suse.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox