aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/samsung
diff options
context:
space:
mode:
authorcodeworkx <daniel.hillenbrand@codeworkx.de>2012-08-03 23:12:09 +0200
committercodeworkx <daniel.hillenbrand@codeworkx.de>2012-08-03 23:12:09 +0200
commit52215890ef7c4d06fd3323f8315d85f14d637a91 (patch)
tree2f97aaab909de9fa903ba52224f6f643e2f25cf5 /drivers/video/samsung
parent4309a7ffa8aa46ac2fc4090cebc3efeb00dce72f (diff)
downloadkernel_samsung_smdk4412-52215890ef7c4d06fd3323f8315d85f14d637a91.zip
kernel_samsung_smdk4412-52215890ef7c4d06fd3323f8315d85f14d637a91.tar.gz
kernel_samsung_smdk4412-52215890ef7c4d06fd3323f8315d85f14d637a91.tar.bz2
samsung opensource update4
Change-Id: I9db25f213bb1577c4468873c66b230a0566b6cf2
Diffstat (limited to 'drivers/video/samsung')
-rw-r--r--drivers/video/samsung/s5p-dsim.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/video/samsung/s5p-dsim.c b/drivers/video/samsung/s5p-dsim.c
index 4f2cb7f..d128618 100644
--- a/drivers/video/samsung/s5p-dsim.c
+++ b/drivers/video/samsung/s5p-dsim.c
@@ -143,8 +143,13 @@ void set_dsim_hs_clk_toggle_count(u8 count)
struct dsim_global *dsim = g_dsim;
dsim->dsim_toggle_per_frame_count = count;
- if (dsim->dsim_lcd_info->lcd_enabled)
- s5p_dsim_frame_done_interrupt_enable(dsim, count ? 1 : 0);
+ if (dsim->dsim_lcd_info->lcd_enabled) {
+ if (dsim->dsim_info->hs_toggle) {
+ s5p_dsim_frame_done_interrupt_enable(dsim, 1);
+ schedule_delayed_work(&dsim->check_hs_toggle_work, msecs_to_jiffies(60000));
+ } else
+ s5p_dsim_frame_done_interrupt_enable(dsim, count ? 1 : 0);
+ }
}
static void dsim_work_q_handler(struct work_struct *work)
@@ -162,7 +167,7 @@ static void dsim_check_hs_toggle_work_q_handler(struct work_struct *work)
if (dsim->dsim_info->hs_toggle) {
dev_info(dsim->dev, "check_hs_toggle\n");
- schedule_delayed_work(&dsim->check_hs_toggle_work, msecs_to_jiffies(120000));
+ schedule_delayed_work(&dsim->check_hs_toggle_work, msecs_to_jiffies(60000));
}
}
@@ -439,7 +444,7 @@ static irqreturn_t s5p_dsim_isr(int irq, void *dev_id)
s5p_dsim_toggle_hs_clock(dsim->reg_base);
if (!dsim->dsim_toggle_per_frame_count) {
s5p_dsim_frame_done_interrupt_enable(dsim, 0);
- if (likely(dsim->dsim_info->hs_toggle - 1))
+ if (likely(dsim->dsim_info->hs_toggle))
schedule_delayed_work(&dsim->dsim_work, dsim->dsim_info->hs_toggle);
}
if (dsim->dsim_toggle_per_frame_count)
@@ -1219,15 +1224,10 @@ static int hs_toggle_store(struct device *dev,
else {
dev_info(dev, "%s - %d, %d\n", __func__, jiffies_to_msecs(dsim->dsim_info->hs_toggle), value);
- if (value == 1) {
+ if (value == 1)
dsim->dsim_info->hs_toggle = msecs_to_jiffies(3000);
- s5p_dsim_frame_done_interrupt_enable(dsim, 1);
- schedule_delayed_work(&dsim->check_hs_toggle_work, msecs_to_jiffies(120000));
- } else {
+ else
dsim->dsim_info->hs_toggle = 0;
- s5p_dsim_frame_done_interrupt_enable(dsim, 0);
- cancel_delayed_work(&dsim->check_hs_toggle_work);
- }
}
return size;
}