summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Gilling <konkers@android.com>2011-04-12 17:57:10 -0700
committerErik Gilling <konkers@android.com>2011-04-12 17:57:24 -0700
commit0b8bff5ecc4b9077207db4f0adc4a3fdfb70fdb9 (patch)
treee60b39e2a1a979695823ba7d5e591d5cf48e2102
parent30ff24c355ab4cc4f4794f285e1486e90a771d26 (diff)
parent77a9f2d7ce63dd428ab66a1992333596d9c582e5 (diff)
Merge branch linux-tegra-2.6.36 into android-tegra-2.6.36
Change-Id: I4305576b867fb062db791b0e18a8f0215bbc5705
-rw-r--r--drivers/video/tegra/dc/hdmi.c13
-rw-r--r--drivers/video/tegra/fb.c3
2 files changed, 12 insertions, 4 deletions
diff --git a/drivers/video/tegra/dc/hdmi.c b/drivers/video/tegra/dc/hdmi.c
index e390f233d43e..62fad97c6a90 100644
--- a/drivers/video/tegra/dc/hdmi.c
+++ b/drivers/video/tegra/dc/hdmi.c
@@ -499,10 +499,13 @@ static irqreturn_t tegra_dc_hdmi_irq(int irq, void *ptr)
if (hdmi->suspended) {
hdmi->hpd_pending = true;
} else {
+ cancel_delayed_work(&hdmi->work);
if (tegra_dc_hdmi_hpd(dc))
- schedule_delayed_work(&hdmi->work, msecs_to_jiffies(100));
+ queue_delayed_work(system_nrt_wq, &hdmi->work,
+ msecs_to_jiffies(100));
else
- schedule_delayed_work(&hdmi->work, msecs_to_jiffies(0));
+ queue_delayed_work(system_nrt_wq, &hdmi->work,
+ msecs_to_jiffies(30));
}
spin_unlock_irqrestore(&hdmi->suspend_lock, flags);
@@ -529,9 +532,11 @@ static void tegra_dc_hdmi_resume(struct tegra_dc *dc)
hdmi->suspended = false;
if (hdmi->hpd_pending) {
if (tegra_dc_hdmi_hpd(dc))
- schedule_delayed_work(&hdmi->work, msecs_to_jiffies(100));
+ queue_delayed_work(system_nrt_wq, &hdmi->work,
+ msecs_to_jiffies(100));
else
- schedule_delayed_work(&hdmi->work, msecs_to_jiffies(0));
+ queue_delayed_work(system_nrt_wq, &hdmi->work,
+ msecs_to_jiffies(30));
hdmi->hpd_pending = false;
}
spin_unlock_irqrestore(&hdmi->suspend_lock, flags);
diff --git a/drivers/video/tegra/fb.c b/drivers/video/tegra/fb.c
index 1f0b967acd89..9b70114c9cd1 100644
--- a/drivers/video/tegra/fb.c
+++ b/drivers/video/tegra/fb.c
@@ -573,6 +573,7 @@ static int tegra_fb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long
if (i >= modedb.modedb_len)
break;
+ memset(&var, 0x0, sizeof(var));
fb_videomode_to_var(&var, &modelist->mode);
if (copy_to_user((void __user *)&modedb.modedb[i],
@@ -657,6 +658,8 @@ void tegra_fb_update_monspecs(struct tegra_fb_info *fb_info,
fb_info->info->mode = (struct fb_videomode *)
fb_find_best_display(specs, &fb_info->info->modelist);
+ memset(&fb_info->info->var, 0x0,
+ sizeof(fb_info->info->var));
fb_videomode_to_var(&fb_info->info->var, fb_info->info->mode);
tegra_fb_set_par(fb_info->info);
}