On 05/31/2012 12:13 AM, Thierry Reding wrote:
Hi,
I work on an Atom-based platform that uses a Realtek ALC892 codec connected via HDA. The current code in patch_realtek.c seems to assume a standard desktop setup and maps the ports accordingly. The setup that I have is entirely different and involves, among other things, to reconfigure some of the ports typically used as outputs as inputs and vice versa. It'll also need to provide a way to pass through some inputs on the outputs without going through the DAC.
All of these features are supported by the ALC982, but I don't see how this could be implemented with the current driver. My question is how this could possibly be solved in a way acceptable for mainline?
The way I solved this was to add a machine-specific fixup rto alc269_fixups[] that set up the pin default registers as required by the HW prior to the parser interpreting those fields. I assume the same would work on the alc982.
I think in general as Takashi mentioned, the driver assumes that the pin default registers are already set up to values correct for the HW. Typically, I believe this is done by the SBIOS or audio card BIOS prior to the OS starting, or perhaps by EEPROM/straps in the HW. Is there a way that can be made to happen?