lkml.org 
[lkml]   [2015]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH v2 2/3] fbcon: use the cursor blink interval provided by vt
    vt now provides a cursor blink interval via vc_data. Use this
    interval instead of the currently hardcoded 200 msecs. Store it in
    fbcon_ops to avoid locking the console in cursor_timer_handler().

    Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
    Acked-by: Pavel Machek <pavel@ucw.cz>
    ---
    drivers/video/console/fbcon.c | 10 +++++-----
    drivers/video/console/fbcon.h | 1 +
    2 files changed, 6 insertions(+), 5 deletions(-)

    diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
    index b972106..05b1d1a 100644
    --- a/drivers/video/console/fbcon.c
    +++ b/drivers/video/console/fbcon.c
    @@ -402,7 +402,7 @@ static void cursor_timer_handler(unsigned long dev_addr)
    struct fbcon_ops *ops = info->fbcon_par;

    queue_work(system_power_efficient_wq, &info->queue);
    - mod_timer(&ops->cursor_timer, jiffies + HZ/5);
    + mod_timer(&ops->cursor_timer, jiffies + ops->cur_blink_jiffies);
    }

    static void fbcon_add_cursor_timer(struct fb_info *info)
    @@ -417,7 +417,7 @@ static void fbcon_add_cursor_timer(struct fb_info *info)

    init_timer(&ops->cursor_timer);
    ops->cursor_timer.function = cursor_timer_handler;
    - ops->cursor_timer.expires = jiffies + HZ / 5;
    + ops->cursor_timer.expires = jiffies + ops->cur_blink_jiffies;
    ops->cursor_timer.data = (unsigned long ) info;
    add_timer(&ops->cursor_timer);
    ops->flags |= FBCON_FLAGS_CURSOR_TIMER;
    @@ -1309,9 +1309,9 @@ static void fbcon_cursor(struct vc_data *vc, int mode)
    if (fbcon_is_inactive(vc, info) || vc->vc_deccm != 1)
    return;

    - if (vc->vc_cursor_type & 0x10)
    - fbcon_del_cursor_timer(info);
    - else
    + ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms);
    + fbcon_del_cursor_timer(info);
    + if (!(vc->vc_cursor_type & 0x10))
    fbcon_add_cursor_timer(info);

    ops->cursor_flash = (mode == CM_ERASE) ? 0 : 1;
    diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h
    index 6bd2e0c..7aaa4ea 100644
    --- a/drivers/video/console/fbcon.h
    +++ b/drivers/video/console/fbcon.h
    @@ -70,6 +70,7 @@ struct fbcon_ops {
    struct fb_cursor cursor_state;
    struct display *p;
    int currcon; /* Current VC. */
    + int cur_blink_jiffies;
    int cursor_flash;
    int cursor_reset;
    int blank_state;
    --
    2.1.0


    \
     
     \ /
      Last update: 2015-03-26 15:21    [W:4.456 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site