diff options
author | Karsten Keil <kkeil@linux-pingi.de> | 2012-05-15 23:51:08 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-16 15:24:36 -0400 |
commit | c27b46e7f1cbf3be95a4cf5840c76a7b7d54b26f (patch) | |
tree | db406c5ceb174b3b41a0085929fe85c5e6951bb6 /drivers/isdn/hardware/mISDN/w6692.c | |
parent | 6d1ee48fd0d8d2586aaeda24dacffc426c2be44a (diff) | |
download | op-kernel-dev-c27b46e7f1cbf3be95a4cf5840c76a7b7d54b26f.zip op-kernel-dev-c27b46e7f1cbf3be95a4cf5840c76a7b7d54b26f.tar.gz |
mISDN: Implement MISDN_CTRL_RX_OFF for more drivers
MISDN_CTRL_RX_OFF is a meachanism to discard RX data in the driver if
the data is not needed by the application. It can be used when playing
mesages, but not recording or with unidirectional protocols.
Signed-off-by: Karsten Keil <kkeil@linux-pingi.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/isdn/hardware/mISDN/w6692.c')
-rw-r--r-- | drivers/isdn/hardware/mISDN/w6692.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/isdn/hardware/mISDN/w6692.c b/drivers/isdn/hardware/mISDN/w6692.c index 183181f..26a86b8 100644 --- a/drivers/isdn/hardware/mISDN/w6692.c +++ b/drivers/isdn/hardware/mISDN/w6692.c @@ -475,6 +475,11 @@ W6692_empty_Bfifo(struct w6692_ch *wch, int count) skb_trim(wch->bch.rx_skb, 0); return; } + if (test_bit(FLG_RX_OFF, &wch->bch.Flags)) { + wch->bch.dropcnt += count; + WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RACT); + return; + } maxlen = bchannel_get_rxbuf(&wch->bch, count); if (maxlen < 0) { WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RACT); |