Skip to content

Commit

Permalink
[Bluetooth] Store remote modem status for RFCOMM TTY
Browse files Browse the repository at this point in the history
When switching a RFCOMM socket to a TTY, the remote modem status might
be needed later. Currently it is lost since the original configuration
is done via the socket interface. So store the modem status and reply
it when the socket has been converted to a TTY.

Signed-off-by: Denis Kenzior <denis.kenzior@trolltech.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Marcel Holtmann committed Jul 14, 2008
1 parent ca37bdd commit 8b6b3da
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/net/bluetooth/rfcomm.h
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ struct rfcomm_dlc {
u8 addr;
u8 priority;
u8 v24_sig;
u8 remote_v24_sig;
u8 mscex;
u8 out;

Expand Down
4 changes: 4 additions & 0 deletions net/bluetooth/rfcomm/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1463,8 +1463,12 @@ static int rfcomm_recv_msc(struct rfcomm_session *s, int cr, struct sk_buff *skb
clear_bit(RFCOMM_TX_THROTTLED, &d->flags);

rfcomm_dlc_lock(d);

d->remote_v24_sig = msc->v24_sig;

if (d->modem_status)
d->modem_status(d, msc->v24_sig);

rfcomm_dlc_unlock(d);

rfcomm_send_msc(s, 0, dlci, msc->v24_sig);
Expand Down
3 changes: 3 additions & 0 deletions net/bluetooth/rfcomm/tty.c
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,9 @@ static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc)

dlc->owner = dev;
dev->dlc = dlc;

rfcomm_dev_modem_status(dlc, dlc->remote_v24_sig);

rfcomm_dlc_unlock(dlc);

/* It's safe to call __module_get() here because socket already
Expand Down

0 comments on commit 8b6b3da

Please sign in to comment.