Hi, Takashi:
Maybe we can try handling the ALC268 laptop HP issue in the patch_realtek.c. The patch for the hda_codec.c seems to conflict with the code of patch_sigmatel.c.
The patch_sigmatel.c depends on line_out_type == AUTO_PIN_SPEAKER_OUT and hp_outs > 1 in order to handle the 2 HP jacks issue.
/* If we have no real line-out pin and multiple hp-outs, HPs should * be set up as multi-channel outputs. */ if (spec->autocfg.line_out_type == AUTO_PIN_SPEAKER_OUT && spec->autocfg.hp_outs > 1) { /* Copy hp_outs to line_outs, backup line_outs in * speaker_outs so that the following routines can handle * HP pins as primary outputs. */ memcpy(spec->autocfg.speaker_pins, spec->autocfg.line_out_pins, sizeof(spec->autocfg.line_out_pins)); spec->autocfg.speaker_outs = spec->autocfg.line_outs; memcpy(spec->autocfg.line_out_pins, spec->autocfg.hp_pins, sizeof(spec->autocfg.hp_pins)); spec->autocfg.line_outs = spec->autocfg.hp_outs; hp_speaker_swap = 1; }
Thanks!
It's weird that 0xf is in both the line_outs and hp_outs. And the hp_outs=1 when there are two items.
It's due to a fix for an ALC268 laptop that has also two HPs but one is actually a line-out. Note that hp_outs=1 in the print above. The 0x0f in hp_outs is simply a garbage. Maybe that patch broke the double HPs with STAC9228...
Takashi