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>
This commit is contained in:
Родитель
335d9c85be
Коммит
492a1e7be5
|
@ -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_useintr(struct board_t *bd);
|
||||||
static uint dgap_config_get_altpin(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_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);
|
static void dgap_do_fep_load(struct board_t *brd, const u8 *ufep, int len);
|
||||||
#ifdef DIGI_CONCENTRATORS_SUPPORTED
|
#ifdef DIGI_CONCENTRATORS_SUPPORTED
|
||||||
|
@ -1198,26 +1197,6 @@ static void dgap_init_globals(void)
|
||||||
init_timer(&dgap_poll_timer);
|
init_timer(&dgap_poll_timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
|
||||||
*
|
|
||||||
* 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
|
* TTY Initialization/Cleanup Functions
|
||||||
|
@ -1462,9 +1441,6 @@ static int dgap_tty_init(struct board_t *brd)
|
||||||
ch->ch_tstart = 0;
|
ch->ch_tstart = 0;
|
||||||
ch->ch_rstart = 0;
|
ch->ch_rstart = 0;
|
||||||
|
|
||||||
/* .25 second delay */
|
|
||||||
ch->ch_close_delay = 250;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set queue water marks, interrupt mask,
|
* Set queue water marks, interrupt mask,
|
||||||
* and general tty parameters.
|
* 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
|
* Go to sleep to ensure RTS/DTR
|
||||||
* have been dropped for modems to see it.
|
* have been dropped for modems to see it.
|
||||||
*/
|
*/
|
||||||
if (ch->ch_close_delay) {
|
spin_unlock_irqrestore(&ch->ch_lock,
|
||||||
spin_unlock_irqrestore(&ch->ch_lock,
|
lock_flags);
|
||||||
lock_flags);
|
|
||||||
dgap_ms_sleep(ch->ch_close_delay);
|
/* .25 second delay for dropping RTS/DTR */
|
||||||
spin_lock_irqsave(&ch->ch_lock, lock_flags);
|
schedule_timeout_interruptible(msecs_to_jiffies(250));
|
||||||
}
|
|
||||||
|
spin_lock_irqsave(&ch->ch_lock, lock_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
ch->pscan_state = 0;
|
ch->pscan_state = 0;
|
||||||
|
|
|
@ -982,9 +982,6 @@ struct channel_t {
|
||||||
u32 ch_open_count; /* open count */
|
u32 ch_open_count; /* open count */
|
||||||
u32 ch_flags; /* Channel flags */
|
u32 ch_flags; /* Channel flags */
|
||||||
|
|
||||||
u32 ch_close_delay; /* How long we should drop */
|
|
||||||
/* RTS/DTR for */
|
|
||||||
|
|
||||||
u32 ch_cpstime; /* Time for CPS calculations */
|
u32 ch_cpstime; /* Time for CPS calculations */
|
||||||
|
|
||||||
tcflag_t ch_c_iflag; /* channel iflags */
|
tcflag_t ch_c_iflag; /* channel iflags */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче