summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
authorThomas Bächler <thomas@archlinux.org>2009-07-04 01:06:48 +0200
committerThomas Bächler <thomas@archlinux.org>2009-07-04 01:06:48 +0200
commitd08c8dba1e21b0d935905a7422e16f465a032224 (patch)
tree7f2fd1b2cc7de80379f0dff99736585f4da60e3a /patches
parent92339027dfed0093254ebc40cc7195222c363511 (diff)
Update to 2.6.30.1
Diffstat (limited to 'patches')
-rw-r--r--patches/sound-skipping-regression-introduced-in-2.6.30-rc8.patch61
1 files changed, 0 insertions, 61 deletions
diff --git a/patches/sound-skipping-regression-introduced-in-2.6.30-rc8.patch b/patches/sound-skipping-regression-introduced-in-2.6.30-rc8.patch
deleted file mode 100644
index 3175d41..0000000
--- a/patches/sound-skipping-regression-introduced-in-2.6.30-rc8.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
-index 173bebf..8aa5687 100644
---- a/sound/pci/intel8x0.c
-+++ b/sound/pci/intel8x0.c
-@@ -356,8 +356,6 @@ struct ichdev {
- unsigned int position;
- unsigned int pos_shift;
- unsigned int last_pos;
-- unsigned long last_pos_jiffies;
-- unsigned int jiffy_to_bytes;
- int frags;
- int lvi;
- int lvi_frag;
-@@ -844,7 +842,6 @@ static int snd_intel8x0_pcm_trigger(struct snd_pcm_substream *substream, int cmd
- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
- val = ICH_IOCE | ICH_STARTBM;
- ichdev->last_pos = ichdev->position;
-- ichdev->last_pos_jiffies = jiffies;
- break;
- case SNDRV_PCM_TRIGGER_SUSPEND:
- ichdev->suspended = 1;
-@@ -1048,7 +1045,6 @@ static int snd_intel8x0_pcm_prepare(struct snd_pcm_substream *substream)
- ichdev->pos_shift = (runtime->sample_bits > 16) ? 2 : 1;
- }
- snd_intel8x0_setup_periods(chip, ichdev);
-- ichdev->jiffy_to_bytes = (runtime->rate * 4 * ichdev->pos_shift) / HZ;
- return 0;
- }
-
-@@ -1073,19 +1069,23 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *subs
- ptr1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb))
- break;
- } while (timeout--);
-+ ptr = ichdev->last_pos;
- if (ptr1 != 0) {
- ptr1 <<= ichdev->pos_shift;
- ptr = ichdev->fragsize1 - ptr1;
- ptr += position;
-- ichdev->last_pos = ptr;
-- ichdev->last_pos_jiffies = jiffies;
-- } else {
-- ptr1 = jiffies - ichdev->last_pos_jiffies;
-- if (ptr1)
-- ptr1 -= 1;
-- ptr = ichdev->last_pos + ptr1 * ichdev->jiffy_to_bytes;
-- ptr %= ichdev->size;
-+ if (ptr < ichdev->last_pos) {
-+ unsigned int pos_base, last_base;
-+ pos_base = position / ichdev->fragsize1;
-+ last_base = ichdev->last_pos / ichdev->fragsize1;
-+ /* another sanity check; ptr1 can go back to full
-+ * before the base position is updated
-+ */
-+ if (pos_base == last_base)
-+ ptr = ichdev->last_pos;
-+ }
- }
-+ ichdev->last_pos = ptr;
- spin_unlock(&chip->reg_lock);
- if (ptr >= ichdev->size)
- return 0;