diff options
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_hdmi.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 39862e98551c..9dc9cf8c90e9 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c | |||
@@ -1583,19 +1583,22 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll) | |||
1583 | } | 1583 | } |
1584 | } | 1584 | } |
1585 | 1585 | ||
1586 | if (pin_eld->eld_valid && !eld->eld_valid) { | 1586 | if (pin_eld->eld_valid != eld->eld_valid) |
1587 | update_eld = true; | ||
1588 | eld_changed = true; | 1587 | eld_changed = true; |
1589 | } | 1588 | |
1589 | if (pin_eld->eld_valid && !eld->eld_valid) | ||
1590 | update_eld = true; | ||
1591 | |||
1590 | if (update_eld) { | 1592 | if (update_eld) { |
1591 | bool old_eld_valid = pin_eld->eld_valid; | 1593 | bool old_eld_valid = pin_eld->eld_valid; |
1592 | pin_eld->eld_valid = eld->eld_valid; | 1594 | pin_eld->eld_valid = eld->eld_valid; |
1593 | eld_changed = pin_eld->eld_size != eld->eld_size || | 1595 | if (pin_eld->eld_size != eld->eld_size || |
1594 | memcmp(pin_eld->eld_buffer, eld->eld_buffer, | 1596 | memcmp(pin_eld->eld_buffer, eld->eld_buffer, |
1595 | eld->eld_size) != 0; | 1597 | eld->eld_size) != 0) { |
1596 | if (eld_changed) | ||
1597 | memcpy(pin_eld->eld_buffer, eld->eld_buffer, | 1598 | memcpy(pin_eld->eld_buffer, eld->eld_buffer, |
1598 | eld->eld_size); | 1599 | eld->eld_size); |
1600 | eld_changed = true; | ||
1601 | } | ||
1599 | pin_eld->eld_size = eld->eld_size; | 1602 | pin_eld->eld_size = eld->eld_size; |
1600 | pin_eld->info = eld->info; | 1603 | pin_eld->info = eld->info; |
1601 | 1604 | ||