On 27 November 2016 at 08:07, Marcel Hasler <mahas...@gmail.com> wrote: > This patchset is a result of my attempt to fix a bug > (https://bugzilla.kernel.org/show_bug.cgi?id=180071) that eventually turned > out to be caused by a missing quirk in snd-usb-audio. My idea was to remove > the AC97 interface and setup the codec using the same values and in the same > order as the Windows driver does, hoping there might be some "magic" sequence > that would make the sound work the way it should. Although this didn't help > to fix the problem, I found these changes to be useful nevertheless. > > IMHO, having all of the AC97 codec's channels exposed to userspace is > confusing since most of them have no meaning for this device anyway. Changing > these values in alsamixer has either no effect at all or may even reduce the > sound quality since it can actually increase the line-in DC offset (slightly). > > In addition, having to re-select the correct capture channel everytime the > device has been plugged in is annoying. At least on my systems the mixer > setup is only saved if the device is plugged in during shutdown/reboot. I > also get error messages in my kernel log when I unplug the device because > some process (probably the AC97 driver) ist trying to read from the device > after it has been removed. Either way the device should work out-of-the-box > without the need for the user to manually setup channels. > > The first patch in the set therefore removes the 'stk1160-mixer' and lets the > driver setup the AC97 codec using the same values as the Windows driver. > Although some of the values seem to be defaults I let the driver set them > either way, just to be sure. > > The second patch adds a check to determine whether the device is strapped to > use the internal 8-bit ADC or an external chip. There's currently no check in > place to determine whether the device uses AC-link or I2S, but then again I > haven't heard of any of these devices actually using an I2S chip. If the > device uses the internal ADC the AC97 setup can be skipped. I implemented the > check inside stk1160-ac97. It could just as well be in stk1160-core but this > way just seemed cleaner. If at some point the need arises to check other > power-on strap values, it might make sense to refactor this then. > > The third patch adds a new module parameter for setting the record gain > manually since the AC97 chip is no longer exposed to userspace. The Windows > driver doesn't allow this value to be changed but instead always sets it to 8 > (of 15). While this should be fine for most users, some may prefer something > higher. > > The fourth patch addresses an issue when reading from the AC97 chip too soon, > resulting in corrupt data. > > Changes from version 2: > * Added copyright notice > * Added defines for POSVA bytes and bits > * Added check for ACDOUT bit to determine whether audio is disabled completely > * Removed info output for gain setting > * Added fourth patch which had been submitted independently before > * Expanded comment on AC97 read delay > > Marcel Hasler (4): > stk1160: Remove stk1160-mixer and setup internal AC97 codec automatically. > stk1160: Check whether to use AC97 codec. > stk1160: Add module param for setting the record gain. > stk1160: Give the chip some time to retrieve data from AC97 codec. >
For the whole set: Acked-by: Ezequiel Garcia <ezequ...@vanguardiasur.com.ar> -- Ezequiel GarcĂa, VanguardiaSur www.vanguardiasur.com.ar -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html