lkml.org 
[lkml]   [2016]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Regression: Kernel 4.6 DisplayPort Audio
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 <subhransu.s.prusty@intel.com>
> 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 */
\
 
 \ /
  Last update: 2016-05-11 11:01    [W:0.089 / U:0.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site