public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Stark <gsstark@mit.edu>
To: Greg Stark <gsstark@MIT.EDU>
Cc: Andrew Morton <akpm@osdl.org>, Greg Stark <gsstark@mit.edu>,
	s0348365@sms.ed.ac.uk, linux-kernel@vger.kernel.org,
	pmcfarland@downeast.net
Subject: Re: OSS Audio borked between 2.6.6 and 2.6.10
Date: 14 Mar 2005 00:39:08 -0500	[thread overview]
Message-ID: <87zmx66b2b.fsf@stark.xeocode.com> (raw)
In-Reply-To: <87br9m7s8h.fsf@stark.xeocode.com>

Greg Stark <gsstark@MIT.EDU> writes:

> Andrew Morton <akpm@osdl.org> writes:
> 
> > Are you able to narrow it down to something more fine grained than "between
> > 2.6.6 and 2.6.9-rc1"?
> 
> Er, I suppose I would have to build some more kernels. Ugh. Is there a good
> place to start or do I have to just do a binary search?

Oof. I just skimmed the Changelogs. It looks like the i810 OSS drivers got
quite a rototilling in 2.6.7 and 2.6.8. It also kind of sounds like they
needed it though.

>From the look of this I doubt the 2.6.6 drivers will build or load into
2.6.10.




2.6.7:

<jdgaston@snoqualmie.dp.intel.com>
	[PATCH] I2C: ICH6/6300ESB i2c support
	
	This patch adds DID support for ICH6 and 6300ESB to i2c-i801.c(SMBus).
	In order to add this support I needed to patch pci_ids.h with the SMBus
	DID's.  To keep things orginized I renumbered the ICH6 and ESB entries
	in pci_ids.h.  I then patched the piix IDE and i810 audio drivers to
	reflect the updated #define's.  I also removed an error from irq.c;
	there was a reference to a 6300ESB DID that does not exist.

<jgarzik@redhat.com>
	[sound/oss i810] pci id cleanups
	
	The driver defined its own PCI id constants.  Kill the majority,
	which were redundant, and move the rest to include/linux/pci_ids.h.
	
	Also, move open-coded tests for "new ICH" audio chips to a single
	helper function.  These tests were being patched with each new
	ICH motherboard from Intel, resulting in each new PCI id being added
	to several places in the driver.
	
	Note that, even though this should be a harmless patch, there
	exists the remote possibility that I mis-matched some of the
	PCI ids, as I only tested ICH5.

<herbert@gondor.apana.org.au>
	[sound/oss i810] fix wait queue race in drain_dac
	
	This particular one fixes a textbook race condition in drain_dac
	that causes it to timeout when it shouldn't.
<herbert@gondor.apana.org.au>
	[sound/oss i810] fix race
	
	This patch fixes the value of swptr in case of an underrun/overrun.
	
	Overruns/underruns probably won't occur at all when the driver is
	fixed properly, but this doesn't hurt.

<herbert@gondor.apana.org.au>
	[sound/oss] remove bogus CIV_TO_LVI
	
	This patch removes a pair of bogus LVI assignments.  The explanation in
	the comment is wrong because the value of PCIB tells the hardware that
	the DMA buffer can be processed even if LVI == CIV.
	
	Setting LVI to CIV + 1 causes overruns when with short writes
	(something that vmware is very fond of).

<herbert@gondor.apana.org.au>
	[sound/oss i810] clean up with macros
	
	This patch adds a number macros to clean up the code.

<herbert@gondor.apana.org.au>
	[sound/oss i810] fix partial DMA transfers
	
	This patch fixes a longstanding bug in this driver where partial fragments
	are fed to the hardware.  Worse yet, those fragments are then extended
	while the hardware is doing DMA transfers causing all sorts of problems.

<herbert@gondor.apana.org.au>
	[sound/oss i810] fix playback SETTRIGGER
	
	This patch fixes SETTRIGGER with playback so that the LVI is always
	set and the DAC is always started.

<herbert@gondor.apana.org.au>
	[sound/oss i810] fix OSS fragments
	
	This patch makes userfragsize do what it's meant to do: do not start
	DAC/ADC until a full fragment is available.

<herbert@gondor.apana.org.au>
	[sound/oss i810] remove divides on playback
	
	This patch removes a couple of divides on the playback path.

<herbert@gondor.apana.org.au>
	[sound/oss i810] fix drain_dac loop when signals_allowed==0
	
	This patch fixes another bug in the drain_dac wait loop when it is
	called with signals_allowed == 0.

<herbert@gondor.apana.org.au>
	[sound/oss i810] fix reads/writes % 4 != 0
	
	This patch removes another bogus chunk of code that breaks when
	the application does a partial write.
	
	In particular, a read/write of x bytes where x % 4 != 0 will loop forever.

<herbert@gondor.apana.org.au>
	[sound/oss i810] fix deadlock in drain_dac
	
	This patch fixes a typo in a previous change that causes the driver
	to deadlock under SMP.



2.6.8:


<linville@redhat.com>
	[sound/oss i810] add MMIO DSP support
	
	Enclosed is a patch for the i810_audio OSS driver to support using
	memory-mapped I/O for those chipsets that support it.
	
	 o Added a family of macros -- I810_IOREADx() and I810_IOWRITEx() -- that
	key off the existing card->use_mmio flag to select between using readx/writex
	or inx/outx for I/O operations.
	
	 o Converted existing inx/outx invocations to use
	I810_IOREADx/I810_IOWRITEx instead.
	
	 o Changed GET_CIV(), GET_LVI, and CIV_TO_LVI() not only to use
	I810_IOREADx/I810_IOWRITEx but also to take "card" (i.e. struct i810_card)
	paramter.
	
	 o Removed check for "Pure MMIO interfaces" in i810_probe() -- replaced w/
	(relocated) check for no I/O resources available.

<linville@redhat.com>
	[sound/oss i810] misc small changes
	
	Attached is a second patch to account for (most of) Herbert Xu's
	comments.
	
	I have left-out the part about changing state->card to a
	local variable where it is used a lot.  Unfortunately, that usage is
	somewhat pervasive and I would prefer to make those changes in a separate
	patch -- after I have had a chance to do some testing.
	
	If you'd prefer one patch to account for the original plus these
	changes, let me know and I'll be happy to provide it.






-- 
greg


  parent reply	other threads:[~2005-03-14  5:39 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-12 18:31 OSS Audio borked between 2.6.6 and 2.6.10 Greg Stark
2005-03-13  6:52 ` Patrick McFarland
2005-03-13 22:26   ` Greg Stark
2005-03-14  0:48     ` Martin Schlemmer
2005-03-14  1:03     ` Alistair John Strachan
2005-03-14  3:50       ` Greg Stark
2005-03-14  4:07         ` Andrew Morton
2005-03-14  4:42           ` Greg Stark
2005-03-14  4:55             ` Andrew Morton
2005-03-14  5:39             ` Greg Stark [this message]
2005-03-14  5:57               ` Andrew Morton
2005-03-14  6:21                 ` Greg Stark
2005-03-14  6:48                   ` Andrew Morton
2005-03-14  8:59               ` Greg Stark
2005-03-14  9:53                 ` Andrew Morton
2005-03-14 15:40                   ` Greg Stark
2005-03-14 15:52                     ` John W. Linville
2005-03-22  0:38                     ` Andrew Morton
2005-03-22  4:16                       ` Greg Stark
2005-03-14 15:33                 ` John W. Linville

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=87zmx66b2b.fsf@stark.xeocode.com \
    --to=gsstark@mit.edu \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pmcfarland@downeast.net \
    --cc=s0348365@sms.ed.ac.uk \
    /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