@@ -153,6 +153,8 @@ struct bt_voice {
#define BT_SCM_PKT_STATUS 0x03
+#define BT_SCO_PKT_LEN 17
+
__printf(1, 2)
void bt_info(const char *fmt, ...);
__printf(1, 2)
@@ -67,6 +67,7 @@ struct sco_pinfo {
__u32 flags;
__u16 setting;
__u8 cmsg_mask;
+ __u32 pkt_len;
struct sco_conn *conn;
};
@@ -267,6 +268,8 @@ static int sco_connect(struct sock *sk)
sco_sock_set_timer(sk, sk->sk_sndtimeo);
}
+ sco_pi(sk)->pkt_len = hdev->sco_pkt_len;
+
done:
hci_dev_unlock(hdev);
hci_dev_put(hdev);
@@ -1001,6 +1004,11 @@ static int sco_sock_getsockopt(struct socket *sock, int level, int optname,
err = -EFAULT;
break;
+ case BT_SCO_PKT_LEN:
+ if (put_user(sco_pi(sk)->pkt_len, (u32 __user *)optval))
+ err = -EFAULT;
+ break;
+
default:
err = -ENOPROTOOPT;
break;