[PATCH] emu10k1 forward port (2.4.20 to 2.5.56)

Rui Sousa (rui.sousa@laposte.net)
Sat, 11 Jan 2003 13:40:19 +0100 (CET)


This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_courier-26344-1042290749-0001-2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

Since the driver is still in the tree and several people already asked for
it, here is an update to the OSS emu10k1 driver in 2.5.56. This is the
exactly same driver as in 2.4.20, it fixes a compile warning and a number
of bugs:

0.17 Fix for mixer SOUND_MIXER_INFO ioctl.
Fix for HIGHMEM machines (emu10k1 can only do 31 bit bus
master)
midi poll initial implementation.
Small mixer fixes/cleanups.
Improved support for 5.1 cards.
0.18 Fix for possible leak in pci_alloc_consistent()
Cleaned up poll() functions (audio and midi). Don't start
input.
Restrict DMA pages used to 512Mib range.
New AC97_BOOST mixer ioctl.
0.19 Real fix for kernel with highmem support (cast dma_handle to
u32).
Fix recording buffering parameters calculation.
Use unsigned long for variables in bit ops.
0.20 Fixed recording startup
Fixed timer rate setting (it's a 16-bit register)

Please apply,

Rui

--=_courier-26344-1042290749-0001-2
Content-Type: application/x-bzip2; name="emu10k1-2.5.56.patch.bz2"
Content-Transfer-Encoding: base64
Content-ID: <Pine.LNX.4.44.0301111340190.4899@localhost.localdomain>
Content-Description: emu10k1 patch
Content-Disposition: attachment; filename="emu10k1-2.5.56.patch.bz2"

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
--=_courier-26344-1042290749-0001-2--