dmasound audio patch

Bill Fink yellowdog-general@lists.terrasoftsolutions.com
Sun Apr 7 15:25:01 2002


This is a multi-part message in MIME format.

--Multipart_Sun__7_Apr_2002_17:23:58_-0400_1015d800
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi,

A friend of mine, Rob Scott, worked up a patch to the dmasound driver
that fixes some of the PPC endianness issues by doing byte swapping
in the driver.  He uses it on a Titanium PowerBook, and I am using it
on a dual 500 MHz G4 with good results.  Before the patch, using xmms
with the AudioCD Reader plugin, I had to use the esound driver since
the OSS driver just gave static.  Now I can use the OSS driver directly,
so there's no need to run the esd daemon.

I know this patch probably isn't politically correct, since as I understand
it Linus doesn't believe that things such as byte swapping should be done
in the kernel.  But then he lives on a little endian machine and doesn't
need to mess with dozens of broken audio applications.  So if you're not
worried about kernel political correctness, you might want to give this
patch a try.  Of course I make no warranty of any kind, but I can attest
that it works fine on a couple of different PPC systems with BenH kernels
around 2.4.18.

						-Bill

--Multipart_Sun__7_Apr_2002_17:23:58_-0400_1015d800
Content-Type: application/octet-stream;
 name="dmasound.patch"
Content-Disposition: attachment;
 filename="dmasound.patch"
Content-Transfer-Encoding: base64

ZGlmZiAtdXIgLm9yaWcvZG1hc291bmRfYXdhY3MuYyAubW9kL2RtYXNvdW5kX2F3YWNzLmMKLS0t
IC5vcmlnL2RtYXNvdW5kX2F3YWNzLmMJVHVlIEZlYiAyNiAwOTozNTozNCAyMDAyCisrKyAubW9k
L2RtYXNvdW5kX2F3YWNzLmMJVHVlIEZlYiAyNiAyMzoxNzo0MCAyMDAyCkBAIC03NTMsNiArNzUz
LDE2IEBACiAJCQlkbWFzb3VuZC5kc3Auc2l6ZSA9IHNpemU7CiAJCX0KIAl9CisJZWxzZSB7CisJ
CWRtYXNvdW5kLnNvZnQuZm9ybWF0ID0gcmVxX2Zvcm1hdDsKKwkJZG1hc291bmQuc29mdC5zaXpl
ID0gc2l6ZTsKKwkJZG1hc291bmQuaGFyZC5mb3JtYXQgPSBmb3JtYXQ7CisJCWlmIChkbWFzb3Vu
ZC5taW5EZXYgPT0gU05EX0RFVl9EU1ApIHsKKwkJCWRtYXNvdW5kLmRzcC5mb3JtYXQgPSBmb3Jt
YXQ7CisJCQlkbWFzb3VuZC5kc3Auc2l6ZSA9IHNpemU7CisJCX0KKwkJZm9ybWF0ID0gcmVxX2Zv
cm1hdDsKKwl9CiAKIAlyZXR1cm4gZm9ybWF0OwogfQpAQCAtMjY5Miw3ICsyNzAyLDcgQEAKIF9f
aW5pdCBzZXRfaHdfYnl0ZXN3YXAoc3RydWN0IGRldmljZV9ub2RlICppbykKIHsKIAlzdHJ1Y3Qg
ZGV2aWNlX25vZGUgKm1pbyA7Ci0JdW5zaWduZWQgaW50ICpwLCBrbCA9IDAgOworCXVuc2lnbmVk
IGludCBrbCA9IDAgOwogCiAJLyogaWYgc2VlbXMgdGhhdCBLZXlsYXJnbyBjYW4ndCBieXRlLXN3
YXAgICovCiAKZGlmZiAtdXIgLm9yaWcvZG1hc291bmRfY29yZS5jIC5tb2QvZG1hc291bmRfY29y
ZS5jCi0tLSAub3JpZy9kbWFzb3VuZF9jb3JlLmMJVHVlIEZlYiAyNiAwOTozNTozNCAyMDAyCisr
KyAubW9kL2RtYXNvdW5kX2NvcmUuYwlUdWUgRmViIDI2IDIzOjE3OjQwIDIwMDIKQEAgLTEyNjMs
NyArMTI2Myw3IEBACiAJCQlpZiAocmVzdWx0IDwgMCkKIAkJCQlyZXR1cm4gcmVzdWx0OwogCQkJ
aWYgKGZvcm1hdCAhPSBkYXRhKQotCQkJCXJldHVybiAtRUlOVkFMOworCQkJCXJldHVybiAtRU5P
U1lTOwogCQkJcmV0dXJuIDA7CiAJCX0gZWxzZQogCQkJcmV0dXJuIC1FSU5WQUwgOwpkaWZmIC11
ciAub3JpZy90cmFuc18xNi5jIC5tb2QvdHJhbnNfMTYuYwotLS0gLm9yaWcvdHJhbnNfMTYuYwlU
dWUgRmViIDI2IDA5OjM1OjM1IDIwMDIKKysrIC5tb2QvdHJhbnNfMTYuYwlUdWUgRmViIDI2IDIz
OjE3OjQwIDIwMDIKQEAgLTE2MywyMyArMTYzLDMwIEBACiAJc3NpemVfdCBjb3VudCwgdXNlZDsK
IAlpbnQgc3RlcmVvID0gZG1hc291bmQuc29mdC5zdGVyZW87CiAJc2hvcnQgKmZwID0gKHNob3J0
ICopICZmcmFtZVsqZnJhbWVVc2VkXTsKKwlzaG9ydCAqdXAgPSAoc2hvcnQgKikgdXNlclB0cjsK
IAogCWZyYW1lTGVmdCA+Pj0gMjsKIAl1c2VyQ291bnQgPj49IChzdGVyZW8/IDI6IDEpOwogCXVz
ZWQgPSBjb3VudCA9IG1pbl90KHVuc2lnbmVkIGxvbmcsIHVzZXJDb3VudCwgZnJhbWVMZWZ0KTsK
LQlpZiAoIXN0ZXJlbykgewotCQlzaG9ydCAqdXAgPSAoc2hvcnQgKikgdXNlclB0cjsKLQkJd2hp
bGUgKGNvdW50ID4gMCkgewotCQkJc2hvcnQgZGF0YTsKKwl3aGlsZSAoY291bnQgPiAwKSB7CisJ
CXNob3J0IGRhdGE7CisJCWlmIChnZXRfdXNlcihkYXRhLCB1cCsrKSkKKwkJCXJldHVybiAtRUZB
VUxUOworCQlpZiAoKGRtYXNvdW5kLmhhcmQuZm9ybWF0ID09IEFGTVRfUzE2X0JFKSAmJiAoZG1h
c291bmQuc29mdC5mb3JtYXQgPT0gQUZNVF9TMTZfTEUpKSB7CisJCQkqZnArKyA9IHN3YWIxNigg
ZGF0YSApOworCQl9IGVsc2UgeworCQkJKmZwKysgPSBkYXRhOworCQl9CisJCWlmIChzdGVyZW8p
IHsKIAkJCWlmIChnZXRfdXNlcihkYXRhLCB1cCsrKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJ
fQorCQlpZiAoKGRtYXNvdW5kLmhhcmQuZm9ybWF0ID09IEFGTVRfUzE2X0JFKSAmJiAoZG1hc291
bmQuc29mdC5mb3JtYXQgPT0gQUZNVF9TMTZfTEUpKSB7CisJCQkqZnArKyA9IHN3YWIxNiggZGF0
YSApOworCQl9IGVsc2UgewogCQkJKmZwKysgPSBkYXRhOwotCQkJKmZwKysgPSBkYXRhOwotCQkJ
Y291bnQtLTsKIAkJfQotCX0gZWxzZSB7Ci0JCWlmIChjb3B5X2Zyb21fdXNlcihmcCwgdXNlclB0
ciwgY291bnQgKiA0KSkKLQkJCXJldHVybiAtRUZBVUxUOworCQljb3VudC0tOwogCX0KIAkqZnJh
bWVVc2VkICs9IHVzZWQgKiA0OwogCXJldHVybiBzdGVyZW8/IHVzZWQgKiA0OiB1c2VkICogMjsK
QEAgLTIwMywxMyArMjEwLDIxIEBACiAJCWlmIChnZXRfdXNlcihkYXRhLCB1cCsrKSkKIAkJCXJl
dHVybiAtRUZBVUxUOwogCQlkYXRhIF49IG1hc2s7Ci0JCSpmcCsrID0gZGF0YTsKKwkJaWYgKChk
bWFzb3VuZC5oYXJkLmZvcm1hdCA9PSBBRk1UX1MxNl9CRSkgJiYgKGRtYXNvdW5kLnNvZnQuZm9y
bWF0ID09IEFGTVRfUzE2X0xFKSkgeworCQkJKmZwKysgPSBzd2FiMTYoZGF0YSk7CisJCX0gZWxz
ZSB7CisJCQkqZnArKyA9IGRhdGE7CisJCX0KIAkJaWYgKHN0ZXJlbykgewogCQkJaWYgKGdldF91
c2VyKGRhdGEsIHVwKyspKQogCQkJCXJldHVybiAtRUZBVUxUOwogCQkJZGF0YSBePSBtYXNrOwog
CQl9Ci0JCSpmcCsrID0gZGF0YTsKKwkJaWYgKChkbWFzb3VuZC5oYXJkLmZvcm1hdCA9PSBBRk1U
X1MxNl9CRSkgJiYgKGRtYXNvdW5kLnNvZnQuZm9ybWF0ID09IEFGTVRfUzE2X0xFKSkgeworCQkJ
KmZwKysgPSBzd2FiMTYoZGF0YSk7CisJCX0gZWxzZSB7CisJCQkqZnArKyA9IGRhdGE7CisJCX0K
IAkJY291bnQtLTsKIAl9CiAJKmZyYW1lVXNlZCArPSB1c2VkICogNDsK

--Multipart_Sun__7_Apr_2002_17:23:58_-0400_1015d800--