diff options
author | codeworkx <daniel.hillenbrand@codeworkx.de> | 2012-08-03 23:12:09 +0200 |
---|---|---|
committer | codeworkx <daniel.hillenbrand@codeworkx.de> | 2012-08-03 23:12:09 +0200 |
commit | 52215890ef7c4d06fd3323f8315d85f14d637a91 (patch) | |
tree | 2f97aaab909de9fa903ba52224f6f643e2f25cf5 /drivers/video/samsung | |
parent | 4309a7ffa8aa46ac2fc4090cebc3efeb00dce72f (diff) | |
download | kernel_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.c | 22 |
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; } |