From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752001AbcEKIs0 (ORCPT ); Wed, 11 May 2016 04:48:26 -0400 Received: from mx2.suse.de ([195.135.220.15]:36246 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751400AbcEKIsW (ORCPT ); Wed, 11 May 2016 04:48:22 -0400 Date: Wed, 11 May 2016 10:48:20 +0200 Message-ID: From: Takashi Iwai To: Daniel Exner Cc: "Subhransu S. Prusty" , Vinod Koul , Takashi Iwai , linux-kernel@vger.kernel.org Subject: Re: Regression: Kernel 4.6 DisplayPort Audio In-Reply-To: <91f376a0-f711-7064-1df9-a899579d085a@dragonslave.de> References: <91f376a0-f711-7064-1df9-a899579d085a@dragonslave.de> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.5 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 11 May 2016 10:32:07 +0200, Daniel Exner wrote: > > Hi, > > (Please keep me CC as I am currently not subscribed to LKML or any other > Linux Kernel Dev ML, thanks) > > Since very first 4.6 rc1 the speakers integrated in my monitor (Dell > U3415W) stopped working. It is connected via DisplayPort from a ATI R7 270X. > > Same setup works just fine in 4.5.3. > > The bug report about this is: > > https://bugzilla.kernel.org/show_bug.cgi?id=114981 > > I managed to bisect this down to: > > commit 739ffee97ed550a2899a925ed3f260fa1e8fa955 > Author: Subhransu S. Prusty > Date: Fri Mar 4 19:59:49 2016 +0530 > > ALSA: hda - Add hdmi chmap verb programming ops to chmap object > > But I cannot easily revert this from current rc7. > Please make me a happy DP Audio User again :) > > I can provide further informations or test possible patches. If the commit above alone breaks, does the patch below change the behavior? Through a quick look at it, some ops are overridden only conditionally while the older code always overwrote them. thanks, Takashi --- diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index d2e57c72ba94..d0d5ad8beac5 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -3549,6 +3549,9 @@ static int patch_atihdmi(struct hda_codec *codec) spec->ops.pin_hbr_setup = atihdmi_pin_hbr_setup; spec->ops.setup_stream = atihdmi_setup_stream; + spec->chmap.ops.pin_get_slot_channel = atihdmi_pin_get_slot_channel; + spec->chmap.ops.pin_set_slot_channel = atihdmi_pin_set_slot_channel; + if (!has_amd_full_remap_support(codec)) { /* override to ATI/AMD-specific versions with pairwise mapping */ spec->chmap.ops.chmap_cea_alloc_validate_get_type = @@ -3556,10 +3559,6 @@ static int patch_atihdmi(struct hda_codec *codec) spec->chmap.ops.cea_alloc_to_tlv_chmap = atihdmi_paired_cea_alloc_to_tlv_chmap; spec->chmap.ops.chmap_validate = atihdmi_paired_chmap_validate; - spec->chmap.ops.pin_get_slot_channel = - atihdmi_pin_get_slot_channel; - spec->chmap.ops.pin_set_slot_channel = - atihdmi_pin_set_slot_channel; } /* ATI/AMD converters do not advertise all of their capabilities */