const struct fb_videomode *mode;
int i;
+ mutex_lock(&dsp->lock);
if (dsp->ops && dsp->ops->getmodelist) {
- if (dsp->ops->getmodelist(dsp, &modelist))
+ if (dsp->ops->getmodelist(dsp, &modelist)) {
+ mutex_unlock(&dsp->lock);
return -EINVAL;
+ }
} else {
+ mutex_unlock(&dsp->lock);
return 0;
}
i = 0;
mode = &display_modelist->mode;
i += mode_string(buf, i, mode);
}
+ mutex_unlock(&dsp->lock);
return i;
}
#ifdef CONFIG_SWITCH
switch_set_state(&(hdmi->switchdev), 0);
#endif
+ mutex_lock(&hdmi->ddev->lock);
list_for_each_safe(pos, n, &hdmi->edid.modelist) {
list_del(pos);
kfree(pos);
}
+ mutex_unlock(&hdmi->ddev->lock);
for (i = 0; i < HDMI_MAX_EDID_BLOCK; i++)
kfree(hdmi->edid.raw[i]);
kfree(hdmi->edid.audio);