From 52215890ef7c4d06fd3323f8315d85f14d637a91 Mon Sep 17 00:00:00 2001 From: codeworkx Date: Fri, 3 Aug 2012 23:12:09 +0200 Subject: samsung opensource update4 Change-Id: I9db25f213bb1577c4468873c66b230a0566b6cf2 --- drivers/video/samsung/s5p-dsim.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'drivers/video/samsung/s5p-dsim.c') 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; } -- cgit v1.1