|
@@ -980,20 +980,19 @@ static void hdmi_present_sense(struct hda_codec *codec, hda_nid_t pin_nid,
|
|
|
* the unsolicited response to avoid custom WARs.
|
|
|
*/
|
|
|
int present = snd_hda_pin_sense(codec, pin_nid);
|
|
|
+ bool eld_valid = false;
|
|
|
|
|
|
- memset(eld, 0, sizeof(*eld));
|
|
|
+ memset(eld, 0, offsetof(struct hdmi_eld, eld_buffer));
|
|
|
|
|
|
eld->monitor_present = !!(present & AC_PINSENSE_PRESENCE);
|
|
|
if (eld->monitor_present)
|
|
|
- eld->eld_valid = !!(present & AC_PINSENSE_ELDV);
|
|
|
- else
|
|
|
- eld->eld_valid = 0;
|
|
|
+ eld_valid = !!(present & AC_PINSENSE_ELDV);
|
|
|
|
|
|
printk(KERN_INFO
|
|
|
"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, eld->monitor_present, eld_valid);
|
|
|
|
|
|
- if (eld->eld_valid)
|
|
|
+ if (eld_valid)
|
|
|
if (!snd_hdmi_get_eld(eld, codec, pin_nid))
|
|
|
snd_hdmi_show_eld(eld);
|
|
|
|