diff options
author | Daeseok Youn <daeseok.youn@gmail.com> | 2014-09-16 16:19:06 +0900 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-19 16:53:57 -0700 |
commit | 492a1e7be585c88a04ba763bb77fc865700e209d (patch) | |
tree | 1f4779b4ad567ba757653675cc2c8ef1845f677f /drivers/staging/dgap | |
parent | 335d9c85be096cf492cb3eaeef160b45e1f25d8d (diff) |
staging: dgap: use schedule_timeout_interruptible() instead of dgap_ms_sleep()
Using schedule_timeout_interruptible() is exactly same as
setting a status of current process and calling schedule_timeout().
Removes dgap_ms_sleep(), because this function is used
only when closing tty channel on dgap_tty_close().
And also removes ch_close_delay that is always set to 250
on dgap_tty_init().
Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/dgap')
-rw-r--r-- | drivers/staging/dgap/dgap.c | 37 | ||||
-rw-r--r-- | drivers/staging/dgap/dgap.h | 3 |
2 files changed, 7 insertions, 33 deletions
diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 67da1d59dbff..db8ccd12b70d 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -180,7 +180,6 @@ static char *dgap_create_config_string(struct board_t *bd, char *string); static uint dgap_config_get_useintr(struct board_t *bd); static uint dgap_config_get_altpin(struct board_t *bd); -static int dgap_ms_sleep(ulong ms); static void dgap_do_bios_load(struct board_t *brd, const u8 *ubios, int len); static void dgap_do_fep_load(struct board_t *brd, const u8 *ufep, int len); #ifdef DIGI_CONCENTRATORS_SUPPORTED @@ -1200,26 +1199,6 @@ static void dgap_init_globals(void) /************************************************************************ * - * Utility functions - * - ************************************************************************/ - -/* - * dgap_ms_sleep() - * - * Put the driver to sleep for x ms's - * - * Returns 0 if timed out, !0 (showing signal) if interrupted by a signal. - */ -static int dgap_ms_sleep(ulong ms) -{ - current->state = TASK_INTERRUPTIBLE; - schedule_timeout((ms * HZ) / 1000); - return signal_pending(current); -} - -/************************************************************************ - * * TTY Initialization/Cleanup Functions * ************************************************************************/ @@ -1462,9 +1441,6 @@ static int dgap_tty_init(struct board_t *brd) ch->ch_tstart = 0; ch->ch_rstart = 0; - /* .25 second delay */ - ch->ch_close_delay = 250; - /* * Set queue water marks, interrupt mask, * and general tty parameters. @@ -2297,12 +2273,13 @@ static void dgap_tty_close(struct tty_struct *tty, struct file *file) * Go to sleep to ensure RTS/DTR * have been dropped for modems to see it. */ - if (ch->ch_close_delay) { - spin_unlock_irqrestore(&ch->ch_lock, - lock_flags); - dgap_ms_sleep(ch->ch_close_delay); - spin_lock_irqsave(&ch->ch_lock, lock_flags); - } + spin_unlock_irqrestore(&ch->ch_lock, + lock_flags); + + /* .25 second delay for dropping RTS/DTR */ + schedule_timeout_interruptible(msecs_to_jiffies(250)); + + spin_lock_irqsave(&ch->ch_lock, lock_flags); } ch->pscan_state = 0; diff --git a/drivers/staging/dgap/dgap.h b/drivers/staging/dgap/dgap.h index a0307b9992da..ba05c654fa61 100644 --- a/drivers/staging/dgap/dgap.h +++ b/drivers/staging/dgap/dgap.h @@ -982,9 +982,6 @@ struct channel_t { u32 ch_open_count; /* open count */ u32 ch_flags; /* Channel flags */ - u32 ch_close_delay; /* How long we should drop */ - /* RTS/DTR for */ - u32 ch_cpstime; /* Time for CPS calculations */ tcflag_t ch_c_iflag; /* channel iflags */ |