gigaset: fix reject/hangup handling
Signal D channel disconnect in a few cases where it was missed, including when an incoming call is disconnected before it was accepted. Impact: error handling improvement Signed-off-by: Tilman Schmidt <tilman@imap.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9803f79695
commit
3305adffc5
|
@ -707,6 +707,11 @@ static void disconnect(struct at_state_t **at_state_p)
|
|||
if (bcs) {
|
||||
/* B channel assigned: invoke hardware specific handler */
|
||||
cs->ops->close_bchannel(bcs);
|
||||
/* notify LL */
|
||||
if (bcs->chstate & (CHS_D_UP | CHS_NOTIFY_LL)) {
|
||||
bcs->chstate &= ~(CHS_D_UP | CHS_NOTIFY_LL);
|
||||
gigaset_i4l_channel_cmd(bcs, ISDN_STAT_DHUP);
|
||||
}
|
||||
} else {
|
||||
/* no B channel assigned: just deallocate */
|
||||
spin_lock_irqsave(&cs->lock, flags);
|
||||
|
|
Loading…
Reference in a new issue