diff --git a/drivers/video/tegra/fb.c b/drivers/video/tegra/fb.c index 6d826d03aef9..ef4e4c3e3708 100644 --- a/drivers/video/tegra/fb.c +++ b/drivers/video/tegra/fb.c @@ -553,11 +553,21 @@ void tegra_fb_update_monspecs(struct tegra_fb_info *fb_info, mutex_lock(&fb_info->info->lock); fb_destroy_modedb(fb_info->info->monspecs.modedb); + fb_destroy_modelist(&fb_info->info->modelist); + + if (specs == NULL) { + struct tegra_dc_mode mode; + memset(&fb_info->info->monspecs, 0x0, + sizeof(fb_info->info->monspecs)); + memset(&mode, 0x0, sizeof(mode)); + tegra_dc_set_mode(fb_info->win->dc, &mode); + mutex_unlock(&fb_info->info->lock); + return; + } + memcpy(&fb_info->info->monspecs, specs, sizeof(fb_info->info->monspecs)); - fb_destroy_modelist(&fb_info->info->modelist); - for (i = 0; i < specs->modedb_len; i++) { if (mode_filter) { if (mode_filter(&specs->modedb[i]))