dgnc: TIOCM... won't reach ->ioctl()
bury the dead code (and ->tiocmget()/->tiocmset() are there, so I really wonder why have they kept the stuff that became unreachable with the introduction of those...) Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
e67504c595
commit
04ec1c8c74
@ -60,10 +60,6 @@ static void dgnc_tty_unthrottle(struct tty_struct *tty);
|
||||
static void dgnc_tty_flush_chars(struct tty_struct *tty);
|
||||
static void dgnc_tty_flush_buffer(struct tty_struct *tty);
|
||||
static void dgnc_tty_hangup(struct tty_struct *tty);
|
||||
static int dgnc_set_modem_info(struct channel_t *ch, unsigned int command,
|
||||
unsigned int __user *value);
|
||||
static int dgnc_get_modem_info(struct channel_t *ch,
|
||||
unsigned int __user *value);
|
||||
static int dgnc_tty_tiocmget(struct tty_struct *tty);
|
||||
static int dgnc_tty_tiocmset(struct tty_struct *tty, unsigned int set,
|
||||
unsigned int clear);
|
||||
@ -1701,106 +1697,6 @@ static void dgnc_tty_send_xchar(struct tty_struct *tty, char c)
|
||||
spin_unlock_irqrestore(&ch->ch_lock, flags);
|
||||
}
|
||||
|
||||
/* Return modem signals to ld. */
|
||||
static inline int dgnc_get_mstat(struct channel_t *ch)
|
||||
{
|
||||
unsigned char mstat;
|
||||
unsigned long flags;
|
||||
int rc;
|
||||
|
||||
if (!ch)
|
||||
return -ENXIO;
|
||||
|
||||
spin_lock_irqsave(&ch->ch_lock, flags);
|
||||
|
||||
mstat = ch->ch_mostat | ch->ch_mistat;
|
||||
|
||||
spin_unlock_irqrestore(&ch->ch_lock, flags);
|
||||
|
||||
rc = 0;
|
||||
|
||||
if (mstat & UART_MCR_DTR)
|
||||
rc |= TIOCM_DTR;
|
||||
if (mstat & UART_MCR_RTS)
|
||||
rc |= TIOCM_RTS;
|
||||
if (mstat & UART_MSR_CTS)
|
||||
rc |= TIOCM_CTS;
|
||||
if (mstat & UART_MSR_DSR)
|
||||
rc |= TIOCM_DSR;
|
||||
if (mstat & UART_MSR_RI)
|
||||
rc |= TIOCM_RI;
|
||||
if (mstat & UART_MSR_DCD)
|
||||
rc |= TIOCM_CD;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Return modem signals to ld. */
|
||||
static int dgnc_get_modem_info(struct channel_t *ch,
|
||||
unsigned int __user *value)
|
||||
{
|
||||
return put_user(dgnc_get_mstat(ch), value);
|
||||
}
|
||||
|
||||
/* Set modem signals, called by ld. */
|
||||
static int dgnc_set_modem_info(struct channel_t *ch,
|
||||
unsigned int command,
|
||||
unsigned int __user *value)
|
||||
{
|
||||
int rc;
|
||||
unsigned int arg = 0;
|
||||
unsigned long flags;
|
||||
|
||||
rc = get_user(arg, value);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
switch (command) {
|
||||
case TIOCMBIS:
|
||||
if (arg & TIOCM_RTS)
|
||||
ch->ch_mostat |= UART_MCR_RTS;
|
||||
|
||||
if (arg & TIOCM_DTR)
|
||||
ch->ch_mostat |= UART_MCR_DTR;
|
||||
|
||||
break;
|
||||
|
||||
case TIOCMBIC:
|
||||
if (arg & TIOCM_RTS)
|
||||
ch->ch_mostat &= ~(UART_MCR_RTS);
|
||||
|
||||
if (arg & TIOCM_DTR)
|
||||
ch->ch_mostat &= ~(UART_MCR_DTR);
|
||||
|
||||
break;
|
||||
|
||||
case TIOCMSET:
|
||||
|
||||
if (arg & TIOCM_RTS)
|
||||
ch->ch_mostat |= UART_MCR_RTS;
|
||||
else
|
||||
ch->ch_mostat &= ~(UART_MCR_RTS);
|
||||
|
||||
if (arg & TIOCM_DTR)
|
||||
ch->ch_mostat |= UART_MCR_DTR;
|
||||
else
|
||||
ch->ch_mostat &= ~(UART_MCR_DTR);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&ch->ch_lock, flags);
|
||||
|
||||
ch->ch_bd->bd_ops->assert_modem_signals(ch);
|
||||
|
||||
spin_unlock_irqrestore(&ch->ch_lock, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Ioctl to get the information for ditty. */
|
||||
static int dgnc_tty_digigeta(struct tty_struct *tty,
|
||||
struct digi_t __user *retinfo)
|
||||
@ -2282,16 +2178,6 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
|
||||
|
||||
return 0;
|
||||
|
||||
case TIOCMGET:
|
||||
spin_unlock_irqrestore(&ch->ch_lock, flags);
|
||||
return dgnc_get_modem_info(ch, uarg);
|
||||
|
||||
case TIOCMBIS:
|
||||
case TIOCMBIC:
|
||||
case TIOCMSET:
|
||||
spin_unlock_irqrestore(&ch->ch_lock, flags);
|
||||
return dgnc_set_modem_info(ch, cmd, uarg);
|
||||
|
||||
/* Here are any additional ioctl's that we want to implement */
|
||||
|
||||
case TCFLSH:
|
||||
|
Loading…
x
Reference in New Issue
Block a user