sc16is7xx: implemented set_mctrl
Add support for manual setting the modem control lines. Signed-off-by: Maarten Brock <m.brock@vanmierlo.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
dd9b55883e
commit
b7dfdea859
|
@ -761,12 +761,20 @@ static void sc16is7xx_reg_proc(struct kthread_work *ws)
|
||||||
memset(&one->config, 0, sizeof(one->config));
|
memset(&one->config, 0, sizeof(one->config));
|
||||||
spin_unlock_irqrestore(&one->port.lock, irqflags);
|
spin_unlock_irqrestore(&one->port.lock, irqflags);
|
||||||
|
|
||||||
if (config.flags & SC16IS7XX_RECONF_MD)
|
if (config.flags & SC16IS7XX_RECONF_MD) {
|
||||||
sc16is7xx_port_update(&one->port, SC16IS7XX_MCR_REG,
|
sc16is7xx_port_update(&one->port, SC16IS7XX_MCR_REG,
|
||||||
SC16IS7XX_MCR_LOOP_BIT,
|
SC16IS7XX_MCR_LOOP_BIT,
|
||||||
(one->port.mctrl & TIOCM_LOOP) ?
|
(one->port.mctrl & TIOCM_LOOP) ?
|
||||||
SC16IS7XX_MCR_LOOP_BIT : 0);
|
SC16IS7XX_MCR_LOOP_BIT : 0);
|
||||||
|
sc16is7xx_port_update(&one->port, SC16IS7XX_MCR_REG,
|
||||||
|
SC16IS7XX_MCR_RTS_BIT,
|
||||||
|
(one->port.mctrl & TIOCM_RTS) ?
|
||||||
|
SC16IS7XX_MCR_RTS_BIT : 0);
|
||||||
|
sc16is7xx_port_update(&one->port, SC16IS7XX_MCR_REG,
|
||||||
|
SC16IS7XX_MCR_DTR_BIT,
|
||||||
|
(one->port.mctrl & TIOCM_DTR) ?
|
||||||
|
SC16IS7XX_MCR_DTR_BIT : 0);
|
||||||
|
}
|
||||||
if (config.flags & SC16IS7XX_RECONF_IER)
|
if (config.flags & SC16IS7XX_RECONF_IER)
|
||||||
sc16is7xx_port_update(&one->port, SC16IS7XX_IER_REG,
|
sc16is7xx_port_update(&one->port, SC16IS7XX_IER_REG,
|
||||||
config.ier_clear, 0);
|
config.ier_clear, 0);
|
||||||
|
|
Loading…
Reference in a new issue