[alsa-devel] [PATCH] ALSA: hda - bug fix on return value when getting HDMI ELD info

Lin, Mengdong mengdong.lin at intel.com
Thu Mar 28 02:08:21 CET 2013


> -----Original Message-----
> From: David Henningsson [mailto:david.henningsson at canonical.com]
> Sent: Wednesday, March 27, 2013 6:16 PM
> To: Lin, Mengdong
> Cc: alsa-devel at alsa-project.org; tiwai at suse.de
> Subject: Re: [alsa-devel] [PATCH] ALSA: hda - bug fix on return value when
> getting HDMI ELD info
> 
> On 03/27/2013 02:37 PM, mengdong.lin at intel.com wrote:
> > From: Mengdong Lin <mengdong.lin at intel.com>
> >
> > In function snd_hdmi_get_eld(), the variable 'ret' should be initialized to 0.
> > Otherwise it will be returned uninitialized as non-zero after ELD info
> > is got successfully. Thus hdmi_present_sense() will always assume ELD
> > info is invalid by mistake, and /proc file system cannot show the proper ELD
> info.
> >
> > This patch also let debug message show 'pin_eld->monitor_present'
> > which is the real pin response to verb GET_PIN_SENSE.
> >
> > Signed-off-by: Mengdong Lin <mengdong.lin at intel.com>
> 
> Reviewed-by: David Henningsson <david.henningsson at canonical.com>
> 
> Good findings.
> The first one is at least in 3.8 and so this should be sent to stable too.
> 
> The second one (pin_eld) is new for 3.9, and probably caused by me, so, sorry
> for that :-/

Hi David,

I'll divide this into 2 patches, as the 2nd one is not needed for 3.8.

Thanks
Mengdong

> 
> 
> >
> > diff --git a/sound/pci/hda/hda_eld.c b/sound/pci/hda/hda_eld.c
> > index 7dd8463..d0d7ac1 100644
> > --- a/sound/pci/hda/hda_eld.c
> > +++ b/sound/pci/hda/hda_eld.c
> > @@ -320,7 +320,7 @@ int snd_hdmi_get_eld(struct hda_codec *codec,
> hda_nid_t nid,
> >   		     unsigned char *buf, int *eld_size)
> >   {
> >   	int i;
> > -	int ret;
> > +	int ret = 0;
> >   	int size;
> >
> >   	/*
> > diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
> > index 78e1827..de8ac5c 100644
> > --- a/sound/pci/hda/patch_hdmi.c
> > +++ b/sound/pci/hda/patch_hdmi.c
> > @@ -1196,7 +1196,7 @@ static void hdmi_present_sense(struct
> hdmi_spec_per_pin *per_pin, int repoll)
> >
> >   	_snd_printd(SND_PR_VERBOSE,
> >   		"HDMI status: Codec=%d Pin=%d Presence_Detect=%d
> ELD_Valid=%d\n",
> > -		codec->addr, pin_nid, eld->monitor_present, eld->eld_valid);
> > +		codec->addr, pin_nid, pin_eld->monitor_present, eld->eld_valid);
> >
> >   	if (eld->eld_valid) {
> >   		if (snd_hdmi_get_eld(codec, pin_nid, eld->eld_buffer,
> >
> 
> 
> 
> --
> David Henningsson, Canonical Ltd.
> https://launchpad.net/~diwic


More information about the Alsa-devel mailing list