This patch doesn't apply to the .37 stable tree.
If someone wants it applied there, please email the backport
to [email protected]

thanks,

greg k-h

> commit: 0ebaa24c6b1f62839bcd12d63fa76e3cf23b9bd0
> From: Takashi Iwai <[email protected]>
> Date: Tue, 11 Jan 2011 18:11:04 +0100
> Subject: [PATCH] ALSA: hda - Add static_hdmi_pcm option to HDMI codec parser
> 
> The dynamic PCM restriction based on ELD information may lead to the
> problem in some cases, e.g. when the receiver is turned off.  Then it
> may send a TV HDMI default such as channels = 2.  Since it's still
> plugged, the driver doesn't know whether it's the right configuration
> for future use.  Now, when an app opens the device at this moment,
> then turn on the receiver, the app still sends channels=2.
> 
> The right solution is to implement some kind of notification and
> automatic re-open mechanism.  But, this is a goal far ahead.
> 
> This patch provides a workaround for such a case by providing a new
> module option static_hdmi_pcm for snd-hda-codec-hdmi module.  When
> this is set to true, the driver doesn't change PCM parameters per
> ELD information.  For users who need the static configuration like
> the scenario above, set this to true.
> 
> The parameter can be changed dynamically via sysfs, too.
> 
> Signed-off-by: Takashi Iwai <[email protected]>
> Cc: <[email protected]>
> ---
>  sound/pci/hda/patch_hdmi.c |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
> index 27e8597..8804c05 100644
> --- a/sound/pci/hda/patch_hdmi.c
> +++ b/sound/pci/hda/patch_hdmi.c
> @@ -31,10 +31,15 @@
>  #include <linux/init.h>
>  #include <linux/delay.h>
>  #include <linux/slab.h>
> +#include <linux/moduleparam.h>
>  #include <sound/core.h>
>  #include "hda_codec.h"
>  #include "hda_local.h"
>  
> +static bool static_hdmi_pcm;
> +module_param(static_hdmi_pcm, bool, 0644);
> +MODULE_PARM_DESC(static_hdmi_pcm, "Don't restrict PCM parameters per ELD 
> info");
> +
>  /*
>   * The HDMI/DisplayPort configuration can be highly dynamic. A graphics 
> device
>   * could support two independent pipes, each of them can be connected to one 
> or
> @@ -827,7 +832,7 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo,
>               *codec_pars = *hinfo;
>  
>       eld = &spec->sink_eld[idx];
> -     if (eld->eld_valid && eld->sad_count > 0) {
> +     if (!static_hdmi_pcm && eld->eld_valid && eld->sad_count > 0) {
>               hdmi_eld_update_pcm_info(eld, hinfo, codec_pars);
>               if (hinfo->channels_min > hinfo->channels_max ||
>                   !hinfo->rates || !hinfo->formats)
> 
> _______________________________________________
> stable mailing list
> [email protected]
> http://linux.kernel.org/mailman/listinfo/stable

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to