|
@@ -1583,19 +1583,22 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (pin_eld->eld_valid && !eld->eld_valid) {
|
|
|
- update_eld = true;
|
|
|
+ if (pin_eld->eld_valid != eld->eld_valid)
|
|
|
eld_changed = true;
|
|
|
- }
|
|
|
+
|
|
|
+ if (pin_eld->eld_valid && !eld->eld_valid)
|
|
|
+ update_eld = true;
|
|
|
+
|
|
|
if (update_eld) {
|
|
|
bool old_eld_valid = pin_eld->eld_valid;
|
|
|
pin_eld->eld_valid = eld->eld_valid;
|
|
|
- eld_changed = pin_eld->eld_size != eld->eld_size ||
|
|
|
+ if (pin_eld->eld_size != eld->eld_size ||
|
|
|
memcmp(pin_eld->eld_buffer, eld->eld_buffer,
|
|
|
- eld->eld_size) != 0;
|
|
|
- if (eld_changed)
|
|
|
+ eld->eld_size) != 0) {
|
|
|
memcpy(pin_eld->eld_buffer, eld->eld_buffer,
|
|
|
eld->eld_size);
|
|
|
+ eld_changed = true;
|
|
|
+ }
|
|
|
pin_eld->eld_size = eld->eld_size;
|
|
|
pin_eld->info = eld->info;
|
|
|
|