Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 448f2627 authored by Gustavo Padovan's avatar Gustavo Padovan
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/padovan/bluetooth-2.6

Conflicts:
	net/bluetooth/rfcomm/sock.c
parents 5a9d0a3f 6de6c18d
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@ static ssize_t btmrvl_hscfgcmd_write(struct file *file,
		return -EFAULT;

	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;

	priv->btmrvl_dev.hscfgcmd = result;

@@ -108,6 +110,8 @@ static ssize_t btmrvl_psmode_write(struct file *file, const char __user *ubuf,
		return -EFAULT;

	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;

	priv->btmrvl_dev.psmode = result;

@@ -147,6 +151,8 @@ static ssize_t btmrvl_pscmd_write(struct file *file, const char __user *ubuf,
		return -EFAULT;

	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;

	priv->btmrvl_dev.pscmd = result;

@@ -191,6 +197,8 @@ static ssize_t btmrvl_gpiogap_write(struct file *file, const char __user *ubuf,
		return -EFAULT;

	ret = strict_strtol(buf, 16, &result);
	if (ret)
		return ret;

	priv->btmrvl_dev.gpio_gap = result;

@@ -230,6 +238,8 @@ static ssize_t btmrvl_hscmd_write(struct file *file, const char __user *ubuf,
		return -EFAULT;

	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;

	priv->btmrvl_dev.hscmd = result;
	if (priv->btmrvl_dev.hscmd) {
@@ -272,6 +282,8 @@ static ssize_t btmrvl_hsmode_write(struct file *file, const char __user *ubuf,
		return -EFAULT;

	ret = strict_strtol(buf, 10, &result);
	if (ret)
		return ret;

	priv->btmrvl_dev.hsmode = result;

+10 −8
Original line number Diff line number Diff line
@@ -477,14 +477,16 @@ static void hci_setup_event_mask(struct hci_dev *hdev)
	 * command otherwise */
	u8 events[8] = { 0xff, 0xff, 0xfb, 0xff, 0x00, 0x00, 0x00, 0x00 };

	/* Events for 1.2 and newer controllers */
	if (hdev->lmp_ver > 1) {
	/* CSR 1.1 dongles does not accept any bitfield so don't try to set
	 * any event mask for pre 1.2 devices */
	if (hdev->lmp_ver <= 1)
		return;

	events[4] |= 0x01; /* Flow Specification Complete */
	events[4] |= 0x02; /* Inquiry Result with RSSI */
	events[4] |= 0x04; /* Read Remote Extended Features Complete */
	events[5] |= 0x08; /* Synchronous Connection Complete */
	events[5] |= 0x10; /* Synchronous Connection Changed */
	}

	if (hdev->features[3] & LMP_RSSI_INQ)
		events[4] |= 0x04; /* Inquiry Result with RSSI */
+1 −0
Original line number Diff line number Diff line
@@ -367,6 +367,7 @@ static int l2cap_sock_getsockopt_old(struct socket *sock, int optname, char __us
			break;
		}

		memset(&cinfo, 0, sizeof(cinfo));
		cinfo.hci_handle = chan->conn->hcon->handle;
		memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3);

+3 −1
Original line number Diff line number Diff line
@@ -679,7 +679,8 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
{
	struct sock *sk = sock->sk;
	struct bt_security sec;
	int len, err = 0;
	int err = 0;
	size_t len;
	u32 opt;

	BT_DBG("sk %p", sk);
@@ -785,6 +786,7 @@ static int rfcomm_sock_getsockopt_old(struct socket *sock, int optname, char __u
			break;
		}

		memset(&cinfo, 0, sizeof(cinfo));
		cinfo.hci_handle = conn->hcon->handle;
		memcpy(cinfo.dev_class, conn->hcon->dev_class, 3);

+12 −1
Original line number Diff line number Diff line
@@ -369,6 +369,15 @@ static void __sco_sock_close(struct sock *sk)

	case BT_CONNECTED:
	case BT_CONFIG:
		if (sco_pi(sk)->conn) {
			sk->sk_state = BT_DISCONN;
			sco_sock_set_timer(sk, SCO_DISCONN_TIMEOUT);
			hci_conn_put(sco_pi(sk)->conn->hcon);
			sco_pi(sk)->conn->hcon = NULL;
		} else
			sco_chan_del(sk, ECONNRESET);
		break;

	case BT_CONNECT:
	case BT_DISCONN:
		sco_chan_del(sk, ECONNRESET);
@@ -819,6 +828,8 @@ static void sco_chan_del(struct sock *sk, int err)
		conn->sk = NULL;
		sco_pi(sk)->conn = NULL;
		sco_conn_unlock(conn);

		if (conn->hcon)
			hci_conn_put(conn->hcon);
	}