LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Louis JANG <louis@mizi.com>
To: Dave Young <hidave.darkstar@gmail.com>
Cc: linux-bluetooth@vger.kernel.org,
	Marcel Holtmann <marcel@holtmann.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	bmidgley@gmail.com
Subject: Re: [Bluez-devel] forcing SCO connection patch
Date: Mon, 25 Feb 2008 18:28:19 +0900	[thread overview]
Message-ID: <47C28A33.4070102@mizi.com> (raw)
In-Reply-To: <a8e1da0802242330l765b8b1ava62b857baf8a5568@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 780 bytes --]


> I ever asked marcel about the coding style. please see following thread:
> http://lkml.org/lkml/2008/1/22/91
>
> I think the style problem marcel said is
> 1. using kernel codeing style
> 2. marcel's style
> container_of or get_user_data calls at the top of the variable declaration
> using the empty lines to seperate code blocks
>
> Please rework your patch and resend if you fixed them.
>
> BTW, please use the new bluetooth mailing list for kerne issue.
> linux-bluetooth@vger.kernel.org
>
> (Thanks for andrew and davem)
>
> Regards
> dave
>
> Regards
> dave
>
>   

Hi all,

I adjusted indentation of the patches but I'm not sure what's wrong
about second comment of Marcel. please let me know if there are another
problems in this patch.

Thanks in advance,
Louis JANG


[-- Attachment #2: patch_hci_event.c2 --]
[-- Type: text/plain, Size: 635 bytes --]

--- net/bluetooth/hci_event.c.orig	2008-02-25 17:17:11.000000000 +0900
+++ net/bluetooth/hci_event.c	2008-02-25 17:30:23.000000000 +0900
@@ -1313,8 +1313,17 @@
 	hci_dev_lock(hdev);
 
 	conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr);
-	if (!conn)
-		goto unlock;
+	if (!conn) {
+		if (ev->link_type != ACL_LINK) {
+			__u8 link_type = (ev->link_type == ESCO_LINK) ? SCO_LINK : ESCO_LINK;
+
+			conn = hci_conn_hash_lookup_ba(hdev, link_type, &ev->bdaddr);
+			if (conn) 
+				conn->type = ev->link_type;
+	    	}
+		if (!conn) 
+			goto unlock;
+	}
 
 	if (!ev->status) {
 		conn->handle = __le16_to_cpu(ev->handle);

[-- Attachment #3: bluez-kernel-forcesco.patch2 --]
[-- Type: text/plain, Size: 2191 bytes --]

diff -uNr include/net/bluetooth-orig/sco.h include/net/bluetooth/sco.h
--- include/net/bluetooth-orig/sco.h	2007-10-10 05:31:38.000000000 +0900
+++ include/net/bluetooth/sco.h	2008-02-25 18:04:20.000000000 +0900
@@ -51,6 +51,8 @@
 	__u8  dev_class[3];
 };
 
+#define SCO_FORCESCO	0x03
+
 /* ---- SCO connections ---- */
 struct sco_conn {
 	struct hci_conn	*hcon;
@@ -74,6 +76,7 @@
 	struct bt_sock	bt;
 	__u32		flags;
 	struct sco_conn	*conn;
+	unsigned int	force_sco :1;
 };
 
 #endif /* __SCO_H */
diff -uNr net/bluetooth-orig/hci_conn.c net/bluetooth/hci_conn.c
--- net/bluetooth-orig/hci_conn.c	2008-02-25 17:58:27.000000000 +0900
+++ net/bluetooth/hci_conn.c	2008-02-25 18:02:04.000000000 +0900
@@ -354,7 +354,7 @@
 
 	if (acl->state == BT_CONNECTED &&
 			(sco->state == BT_OPEN || sco->state == BT_CLOSED)) {
-		if (lmp_esco_capable(hdev))
+		if (type == ESCO_LINK)
 			hci_setup_sync(sco, acl->handle);
 		else
 			hci_add_sco(sco, acl->handle);
diff -uNr net/bluetooth-orig/sco.c net/bluetooth/sco.c
--- net/bluetooth-orig/sco.c	2008-02-25 17:58:27.000000000 +0900
+++ net/bluetooth/sco.c	2008-02-25 18:08:51.000000000 +0900
@@ -200,7 +200,10 @@
 
 	err = -ENOMEM;
 
-	type = lmp_esco_capable(hdev) ? ESCO_LINK : SCO_LINK;
+	if (sco_pi(sk)->force_sco) 
+		type = SCO_LINK;
+	else
+		type = lmp_esco_capable(hdev) ? ESCO_LINK : SCO_LINK;
 
 	hcon = hci_connect(hdev, type, dst);
 	if (!hcon)
@@ -660,12 +663,21 @@
 {
 	struct sock *sk = sock->sk;
 	int err = 0;
+	unsigned int force_sco;
 
 	BT_DBG("sk %p", sk);
 
 	lock_sock(sk);
 
 	switch (optname) {
+	case SCO_FORCESCO:
+		if (copy_from_user((char *)&force_sco, optval, sizeof(unsigned int))) {
+			err = -EFAULT;
+			break;
+		}
+		sco_pi(sk)->force_sco = (force_sco != 0);
+		break;
+
 	default:
 		err = -ENOPROTOOPT;
 		break;
@@ -681,6 +693,7 @@
 	struct sco_options opts;
 	struct sco_conninfo cinfo;
 	int len, err = 0;
+	unsigned int force_sco;
 
 	BT_DBG("sk %p", sk);
 
@@ -721,6 +734,13 @@
 
 		break;
 
+	case SCO_FORCESCO:
+		force_sco = sco_pi(sock)->force_sco;
+		if (copy_to_user(optval, (char *)&force_sco, sizeof(unsigned int)))
+			err = -EFAULT;
+
+		break;
+		
 	default:
 		err = -ENOPROTOOPT;
 		break;

  parent reply	other threads:[~2008-02-25  9:54 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <47666E1F.2000902@mizi.com>
2008-02-25  7:30 ` Dave Young
2008-02-25  7:34   ` Dave Young
2008-02-25  8:26     ` Dave Young
2008-02-25  9:28   ` Louis JANG [this message]
2008-02-25  9:55     ` Dave Young
2008-02-25 11:35       ` Louis JANG
2008-02-26  3:07         ` Marcel Holtmann
2008-02-26  3:53           ` Louis JANG
2008-02-26 19:43             ` Marcel Holtmann
2008-02-27  1:58               ` Louis JANG
2008-02-27  9:57                 ` Marcel Holtmann
2008-02-27 12:21                   ` Louis JANG
2008-02-27 15:21                     ` Marcel Holtmann
2008-02-28  2:49                       ` Louis JANG

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47C28A33.4070102@mizi.com \
    --to=louis@mizi.com \
    --cc=bmidgley@gmail.com \
    --cc=hidave.darkstar@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --subject='Re: [Bluez-devel] forcing SCO connection patch' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).