From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dennis Newbold Date: Fri, 05 Dec 2003 00:19:54 +0000 Subject: Patch to use AC97 MICBOOST bit MIME-Version: 1 Content-Type: multipart/mixed; boundary="-559023410-851401618-1070583594=:10024" Message-Id: List-Id: To: linux-sound@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---559023410-851401618-1070583594=:10024 Content-Type: TEXT/PLAIN; charset=US-ASCII Dear Linux Kernel Developers: This is the first time I have submitted a patch. I've tried to follow the guidelines in the MAINTAINERS file, and in the Documentation/SubmittingPatches file. Nevertheless, I may have messed something up. If so, please let me know. Currently, the ac97 codec access logic in the drivers/sound/ac97_codec.c logic does not use the AC97_MICBOOST bit. Consequently, when writing to or reading from the SOUND_MIXER_MIC channel, there are only 32 distinct values that can be used. There is alot of overlap between dB values available with the MICBOOST bit turned on, and those available with it turned off. Nevertheless, I found that by turning the MICBOOST bit on and off at appropriate times, the total dB range available is increased, and this may be of some value to some applications. In any case, its generally considered to be "good form" to make as many of the device's features as possible available to the programmer. This change is made with that intent in mind. A patch file is attached. Code changes are in the ac97_read_mixer routine, and the ac97_write_mixer routine, in the code which handles the SOUND_MIXER_MIC channel. I originally made this change to the ac97_codec.c source file for the 2.4.2 kernel, and tested it, but retained it just for my own use. I've now made the same changes to the ac97_codec.c file for the Linux 2.4.23 kernel, and am sending it to you, but at this time I do not easily have a way to test them out. Please let me know if you run into any problems. The attached patch file was generated by: diff -u ac97_codec.c linux-2.4.23/drivers/sound/ac97_codec.c >ac97_codec_patch (the above is supposed to be one line, but pine broke it into two lines) Any questions, comments, feedback, etc: dennisn@pe.net Thanks alot. Dennis Newbold --------------------------------------------- | | | The way to be happy is to be good | | | --------------------------------------------- ---559023410-851401618-1070583594=:10024 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=ac97_codec_patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: LS0tIGFjOTdfY29kZWMuYwlUaHUgRGVjIDA0IDE1OjUzOjEyIDIwMDMNDQor KysgbGludXgtMi40LjIzXGRyaXZlcnNcc291bmRcYWM5N19jb2RlYy5jCVRo dSBEZWMgMDQgMTU6NTY6MjIgMjAwMw0NCkBAIC0zMCw2ICszMCw5IEBADQ0K ICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0NCiAgKg0NCiAgKiBI aXN0b3J5DQ0KKyAqIERlYyAwNCwgMjAwMyBEZW5uaXMgTmV3Ym9sZCA8ZGVu bmlzbkBwZS5uZXQ+DQ0KKyAqICAgQWRkZWQgbG9naWMgdG8gdXNlIHRoZSBN SUNCT09TVCBiaXQgd2hlbiB3cml0aW5nIG9yIHJlYWRpbmcgdGhlDQ0KKyAq ICAgU09VTkRfTUlYRVJfTUlDIGNoYW5uZWwuDQ0KICAqIE1heSAwMiwgMjAw MyBMaWFtIEdpcmR3b29kIDxsaWFtLmdpcmR3b29kQHdvbGZzb25taWNyby5j b20+DQ0KICAqCVJlbW92ZWQgbm9uIGV4aXN0YW50IFdNOTcwMA0NCiAgKglB ZGRlZCBzdXBwb3J0IGZvciBXTTk3MDUsIFdNOTcwOCwgV005NzA5LCBXTTk3 MTAsIFdNOTcxMQ0NCkBAIC0yNDAsNiArMjQzLDI2IEBADQ0KIAl7LTEsMH0N DQogfTsNDQogDQ0KKy8qIE5vdGUgdGhhdCBzY2FsZSBmb3IgU09VTkRfTUlY RVJfTUlDIGlzIHNldCB0byA0NiByYXRoZXIgdGhhbiAzMi4gIFRoaXMgaXMN DQorICogdG8gaW5jbHVkZSB0aGUgbG93ZXIgdm9sdW1lIERCIHZhbHVlcyB0 aGF0IGRvIG5vdCB1c2UgdGhlIEFDOTdfTUlDQk9PU1QNDQorICogYml0LiAg VGhlcmUgaXMgYSBzbWFsbCBnbGl0Y2ggaW4gdGhlIHNjYWxpbmcgaW4gdGhh dCB0aGUgbGFzdCB2YWx1ZSB0byB1c2UNDQorICogdGhlIGJvb3N0IGJpdCBp cyAzMSwgd2hpY2ggdHJhbnNsYXRlcyB0byAtMTQuNSBkQiwgYW5kIHRoZSBu ZXh0IGxvd2VyIHZhbHVlLA0NCisgKiB3aGljaCBkb2VzIG5vdCB1c2UgdGhl IGJvb3N0IGJpdCBpcyAzMiwgd2hpY2ggaXMgY29udmVydGVkIHRvIDE4LCB3 aGljaA0NCisgKiB0cmFuc2xhdGVzIHRvIC0xNSBkQiwgYSBkaWZmZXJlbmNl IG9mIG9ubHkgMC41IGRCLiAgQWxsIG90aGVyIGdhaW4gdmFsdWVzDQ0KKyAq ICBkaWZmZXIgYnkgMS41IGRCLiAgVGhpcyBpcyBjb25zaWRlcmVkIGFjY2Vw dGFibGUgYmVjYXVzZSBpdCBoYXBwZW5zIG9ubHkNDQorICogIGF0IGFuIGV4 dHJlbWVseSBsb3cgdm9sdW1lLCB3aGljaCBtb3N0IHVzZXJzIHdpbGwgbm90 IGJlIGludGVyZXN0ZWQgaW4uDQ0KKyAqICAtZGxuLSAqLw0NCisNDQorLyog TUlDX05BVFVSQUxfU0NBTEUgaXMgdGhlIG5vLiBvZiBkaWZmZXJlbnQgZ2Fp biBzZXR0aW5ncyB0aGF0IHdpbGwgZml0IGluDQ0KKyAqIHRoZSBNSUMgVm9s dW1lIEdhaW4gUmVnaXN0ZXIuICBDb21wdXRlZCBnYWluIHZhbHVlcyB3aGlj aCBmYWxsIHdpdGhpbiB0aGlzDQ0KKyAqIHJhbmdlIG9wZXJhdGUgd2l0aCB0 aGUgQUM5N19NSUNCT09TVCBiaXQgZW5hYmxlZC4gIENvbXB1dGVkIHZhbHVl cyBvdXRzaWRlDQ0KKyAqIG9mIHRoaXMgcmFuZ2UgYXJlIGZvcmNlZCBiYWNr IGludG8gdGhpcyByYW5nZSwgYnV0IHdpdGggdGhlIEFDOTdfTUlDQk9PU1QN DQorICogYml0IHR1cm5lZCBvZmYuICBUaGlzIGFsbG93cyBhY2Nlc3MgdG8g dGhlIHZlcnkgbG93IGRCIHJhbmdlIHNjYWxlIG9mIHRoZQ0NCisgKiBBQzk3 IGNvZGVjLCB3aGljaCBjYW5ub3QgYmUgYWNjZXNzZWQgd2l0aCB0aGUgTUlD Qk9PU1QgYml0IGVuYWJsZWQuIC1kbG4tDQ0KKyAqLw0NCisNDQorI2RlZmlu ZSBNSUNfTkFUVVJBTF9TQ0FMRSAgICAoMzIpDQ0KKw0NCiAvKiB0YWJsZSB0 byBzY2FsZSBzY2FsZSBmcm9tIE9TUyBtaXhlciB2YWx1ZSB0byBBQzk3IG1p eGVyIHJlZ2lzdGVyIHZhbHVlICovCQ0NCiBzdGF0aWMgc3RydWN0IGFjOTdf bWl4ZXJfaHcgew0NCiAJdW5zaWduZWQgY2hhciBvZmZzZXQ7DQ0KQEAgLTMw Miw3ICszMjUsNyBAQA0NCiAgICBhYm91dCB0aGF0IGdpdmVuIG1peGVyLCBh bmQgc2hvdWxkIGJlIGhvbGRpbmcgYSBzcGlubG9jayBmb3IgdGhlIGNhcmQg Ki8NDQogc3RhdGljIGludCBhYzk3X3JlYWRfbWl4ZXIoc3RydWN0IGFjOTdf Y29kZWMgKmNvZGVjLCBpbnQgb3NzX2NoYW5uZWwpIA0NCiB7DQ0KLQl1MTYg dmFsOw0NCisJdTE2IHZhbCwgdDsNDQogCWludCByZXQgPSAwOw0NCiAJaW50 IHNjYWxlOw0NCiAJc3RydWN0IGFjOTdfbWl4ZXJfaHcgKm1oID0gJmFjOTdf aHdbb3NzX2NoYW5uZWxdOw0NCkBAIC0zNDAsNyArMzYzLDEwIEBADQ0KIAkJ c2NhbGUgPSAoMSA8PCBjb2RlYy0+Yml0X3Jlc29sdXRpb24pOw0NCiAJCXJl dCA9IDEwMCAtICgoKHZhbCAmIDB4MWYpICogMTAwKSAvIHNjYWxlKTsNDQog CX0gZWxzZSBpZiAob3NzX2NoYW5uZWwgPT0gU09VTkRfTUlYRVJfTUlDKSB7 DQ0KLQkJcmV0ID0gMTAwIC0gKCgodmFsICYgMHgxZikgKiAxMDApIC8gbWgt PnNjYWxlKTsNDQorCQl0ID0gdmFsICYgKE1JQ19OQVRVUkFMX1NDQUxFIC0g MSk7DQ0KKwkJaWYgKCEodmFsICYgQUM5N19NSUNCT09TVCkpDQ0KKwkJCXQg Kz0gKG1oLT5zY2FsZSAtIE1JQ19OQVRVUkFMX1NDQUxFKTsNDQorCQlyZXQg PSAxMDAgLSAoKHQgKiAxMDApIC8gbWgtPnNjYWxlLTEpOw0NCiAJCS8qICB0 aGUgbG93IGJpdCBpcyBvcHRpb25hbCBpbiB0aGUgdG9uZSBzbGlkZXJzIGFu ZCBtYXNraW5nDQ0KIAkJICAgIGl0IGxldHMgdXMgYXZvaWQgdGhlIDB4ZiAn YnlwYXNzJy4uICovDQ0KIAl9IGVsc2UgaWYgKG9zc19jaGFubmVsID09IFNP VU5EX01JWEVSX0JBU1MpIHsNDQpAQCAtNDI3LDcgKzQ1Myw3IEBADQ0KIAkJ bGVmdCA9ICgoMTAwIC0gbGVmdCkgKiBtaC0+c2NhbGUpIC8gMTAwOw0NCiAJ CWlmIChsZWZ0ID49IG1oLT5zY2FsZSkNDQogCQkJbGVmdCA9IG1oLT5zY2Fs ZS0xOw0NCi0JCXZhbCA9IGxlZnQ7DQ0KKwl2YWwgPSBsZWZ0Ow0NCiAJfSBl bHNlIGlmIChvc3NfY2hhbm5lbCA9PSBTT1VORF9NSVhFUl9QSE9ORU9VVCkg ew0NCiAJCXNjYWxlID0gKDEgPDwgY29kZWMtPmJpdF9yZXNvbHV0aW9uKTsN DQogCQlsZWZ0ID0gKCgxMDAgLSBsZWZ0KSAqIHNjYWxlKSAvIDEwMDsNDQpA QCAtNDM2LDEzICs0NjIsMTcgQEANDQogCQl2YWwgPSBsZWZ0Ow0NCiAJfSBl bHNlIGlmIChvc3NfY2hhbm5lbCA9PSBTT1VORF9NSVhFUl9NSUMpIHsNDQog CQl2YWwgPSBjb2RlYy0+Y29kZWNfcmVhZChjb2RlYyAsIG1oLT5vZmZzZXQp ICYgfjB4ODAxZjsNDQotCQlsZWZ0ID0gKCgxMDAgLSBsZWZ0KSAqIG1oLT5z Y2FsZSkgLyAxMDA7DQ0KKwkJbGVmdCA9ICgoMTAwIC0gbGVmdCkgKiBtaC0+ c2NhbGUtMSkgLyAxMDA7DQ0KIAkJaWYgKGxlZnQgPj0gbWgtPnNjYWxlKQ0N Ci0JCQlsZWZ0ID0gbWgtPnNjYWxlLTE7DQ0KKwkJCWxlZnQgPSBtaC0+c2Nh bGUtMQ0NCisJCWlmIChsZWZ0IDwgTUlDX05BVFVSQUxfU0NBTEUpDQ0KKwkJ CWxlZnQgfD0gQUM5N19NSUNCT09TVDsNDQorCQllbHNlDQ0KKwkJCWxlZnQg LT0gKG1oLT5zY2FsZSAtIE1JQ19OQVRVUkFMX1NDQUxFKTsNDQogCQl2YWwg fD0gbGVmdDsNDQogCQkvKiAgdGhlIGxvdyBiaXQgaXMgb3B0aW9uYWwgaW4g dGhlIHRvbmUgc2xpZGVycyBhbmQgbWFza2luZw0NCiAJCSAgICBpdCBsZXRz IHVzIGF2b2lkIHRoZSAweGYgJ2J5cGFzcycuLiAqLw0NCi0JfQ0NCisJDQ0K ICNpZmRlZiBERUJVRw0NCiAJcHJpbnRrKCIgMHglMDR4IiwgdmFsKTsNDQog I2VuZGlmDQ0K ---559023410-851401618-1070583594=:10024--