Linux bluetooth development
 help / color / mirror / Atom feed
* Re: [bugreport]
From: Serhiy Kachaniuk @ 2010-05-11 16:40 UTC (permalink / raw)
  To: Iain Hibbert; +Cc: linux-bluetooth
In-Reply-To: <1273589222.840882.854.nullmailer@galant.ukfsn.org>

2010/5/11 Iain Hibbert:
>
> Serhiy, from your message on the ubuntu bug report
>
>> Maybe the reason is that this dongle doesn't support reading/writing of
>> 'Default Link Policy Settings' ?
>
> and this command was introduced in spec version 1.2, and your device
> reports
>
>>        HCI Ver: 1.1 (0x1) HCI Rev: 0x3 LMP Ver: 1.1 (0x1) LMP Subver: 0x800
>
> so yes, that is likely the problem as it is too old.
>
> That bluez has no handling for the possibility that the command may not be
> supported is possibly a bug or possibly an indication that older devices
> are no longer to be supported, I can't really say which.
>
Yeah, i see that this device is a little buggy, but it worked in
previous version of bluez, so maybe it is possible to make it work
again for current version?

^ permalink raw reply

* Re: [bugreport]
From: Serhiy Kachaniuk @ 2010-05-11 16:38 UTC (permalink / raw)
  To: Vinicius Gomes; +Cc: linux-bluetooth
In-Reply-To: <AANLkTiliG_XySAecN9JZ9cBt1rEc7IqtFB7ISaHP4yDb@mail.gmail.com>

2010/5/11 Vinicius Gomes :
> This (the mailing list) is the correct place for bug reports.
>
> Someone here in the office has an ancient Bluetooth 1.2 dongle, which
> shows a similar problem. Now that you discovered that it is probably a
> regression and I can reproduce it, I will try to debug it.
>
> And it looks like that the hcidump logs that you attached in your
> first email got lost somehow.
They're attached to bugreport on launchpad
for bluez version 4.64 http://launchpadlibrarian.net/47890286/hcidump.txt
for bluez version 4.32 http://launchpadlibrarian.net/47890843/hcidump_old.txt
>
> Anyway, I think that the only information missing is your kernel version.

Kernel version seems irrelevant. Anyway, first version, when i
discovered this problem was 2.6.31. Now i use 2.6.32 and problem
persists.

^ permalink raw reply

* Re: magicmouse: claimed by neither input, hiddev nor hidraw
From: Justin P. Mattock @ 2010-05-11 16:32 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-bluetooth, Linux Kernel Mailing List
In-Reply-To: <alpine.LNX.2.00.1005102351220.28092@pobox.suse.cz>

o.k. peoples.. I've posted a patch
that gets everything(hopefully), working
over here.
subject: HID:magicmouse: This fixes a connection problem with the 
magicmouse.

please check it out, and let me know..

Justin P. Mattock

^ permalink raw reply

* [PATCH] HID:magicmouse: This fixes a connection problem with the magicmouse.
From: Justin P. Mattock @ 2010-05-11 16:29 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: linux-kernel, jkosina, mdpoole, Justin P. Mattock

With the latest HEAD, I've noticed that I needed to add: HIDRAW=y
in order for my apple magicmouse to connect.
After receiving some posts, it seems this it not
the case(HIDRAW just relays HID events to userspace).

The bisect results of this issue resulted in commit:
HID:magicmouse: fix oops after device removal.
(hash:28918c211d86b6eeb70182c523800c7bc442960c)

After examining this commit, I've noticed that
HID_CONNECT_DEFAULT has also an entry in there
of HID_CONNECT_HIDINPUT, not sure what "~" means,
before HID_CONNECT_HIDINPUT, but after removing
this(correct me if I'm wrong)"double" definition, 
I'm able to have my magicmouse connect without the 
need of HIDRAW, and also this in dmesg:

magicmouse 0005:05AC:030D.0004: claimed by neither input, hiddev nor hidraw
magicmouse 0005:05AC:030D.0004: magicmouse hw start failed

and as well as the crash that the above commit fixes when waking
up from suspend(mouse connects perfectly upon wakeup).

Please have a look, and if this works, take it
if theres another solution let me know.
(so I can enjoy the power of the magicmouse!!).


Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>

---
 drivers/hid/hid-magicmouse.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index 0d471fc..0de5e96 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -354,7 +354,7 @@ static int magicmouse_probe(struct hid_device *hdev,
 		goto err_free;
 	}
 
-	ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT & ~HID_CONNECT_HIDINPUT);
+	ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
 	if (ret) {
 		dev_err(&hdev->dev, "magicmouse hw start failed\n");
 		goto err_free;
-- 
1.6.5.GIT


^ permalink raw reply related

* [PATCH 9/9] Changes HDP record example from source to sink
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx
In-Reply-To: <1273592303-18234-1-git-send-email-epx@signove.com>

Changes example from source to sink, adds hint about Nonin
oximeters and a canned pnpinfo.xml to satisfy device identification.
---
 test/hdp/hdp_record_add.py |   22 ++++++++++++++++++++--
 test/hdp/pnpinfo.xml       |   29 +++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 2 deletions(-)
 create mode 100644 test/hdp/pnpinfo.xml

diff --git a/test/hdp/hdp_record_add.py b/test/hdp/hdp_record_add.py
index 2574570..cc0ed26 100755
--- a/test/hdp/hdp_record_add.py
+++ b/test/hdp/hdp_record_add.py
@@ -5,8 +5,8 @@ import sys
 import time
 import dbus
 
-feature1 = {'mdep_id': 0x01, 'role': 'source',
-		'data_type': 0x1004, 'description': "Fake oximeter"}
+feature1 = {'mdep_id': 0x01, 'role': 'sink',
+		'data_type': 0x1004, 'description': "Oximeter sink"}
 # feature2 = {'mdep_id': 0x01, 'role': 'source', 'data_type': 0x4005}
 # feature3 = {'mdep_id': 0x02, 'role': 'sink', 'data_type': 0x4006}
 # feature4 = {'mdep_id': 0x04, 'role': 'sink', 'data_type': 0x4007}
@@ -35,8 +35,12 @@ service = dbus.Interface(bus.get_object("org.bluez", path),
 						"org.bluez.Service")
 
 handle = service.AddRecord(xml)
+# handle2 = service.AddRecord(open("pnpinfo.xml").read())
+handle2 = None
 
 print "Service record with handle 0x%04x added" % (handle)
+if handle2:
+	print "Service record with handle 0x%04x added" % (handle2)
 
 print "Press CTRL-C to remove service record"
 
@@ -47,3 +51,17 @@ except:
 	pass
 
 service.RemoveRecord(dbus.UInt32(handle))
+if handle2:
+	service.RemoveRecord(dbus.UInt32(handle2))
+
+# Hints for testing w/ Nonin 9650 oximeter:
+
+# Listen CSM channel with l2test -P 4097 -X ertm -O 48 -r
+
+# Nonin only searches PC SDP records right after cells disconnected (!),
+# if it can't connect to CSM at first time, it seems not to try again,
+# and cells must be removed for it to happen. (Thanks to Libresoft guys
+# about this issue.)
+
+# The Device Identification (PNPINFO) record is mandatory accordingly
+# to HDP spec, but seems not to make a difference.
diff --git a/test/hdp/pnpinfo.xml b/test/hdp/pnpinfo.xml
new file mode 100644
index 0000000..d04559b
--- /dev/null
+++ b/test/hdp/pnpinfo.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!-- Fake device identification (PNPINFO)
+     Copyright (C) 2010 GSyC/LibreSoft, Universidad Rey Juan Carlos.
+-->
+<record>
+	<attribute id="0x0001">
+		<sequence>
+			<uuid value="0x1200" />
+		</sequence>
+	</attribute>
+	<attribute id="0x0200">
+		<uint16 value="0x0103" />
+	</attribute>
+	<attribute id="0x0201">
+		<uint16 value="0x2000" />
+	</attribute>
+	<attribute id="0x0202">
+		<uint16 value="0x1234" />
+	</attribute>
+	<attribute id="0x0203">
+		<uint16 value="0x0200" />
+	</attribute>
+	<attribute id="0x0204">
+		<boolean value="true" />
+	</attribute>
+	<attribute id="0x0205">
+		<uint16 value="0x0002" />
+	</attribute>
+</record>
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 8/9] Adds HDP record auto-testing script
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx
In-Reply-To: <1273592303-18234-1-git-send-email-epx@signove.com>

This script is a simple auto-testing for the hdp_record module.
---
 test/hdp/hdp_record_autotest.py |   42 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)
 create mode 100755 test/hdp/hdp_record_autotest.py

diff --git a/test/hdp/hdp_record_autotest.py b/test/hdp/hdp_record_autotest.py
new file mode 100755
index 0000000..087f1b9
--- /dev/null
+++ b/test/hdp/hdp_record_autotest.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+
+import hdp_record
+
+sample = open("record_sample1.xml").read()
+record1 = hdp_record.parse_xml(sample)[0]
+record2 = hdp_record.parse_xml(hdp_record.gen_xml(record1))[0]
+# NOTE dependent on actual contents of xml file
+assert(record1 == record2)
+assert(record1['name'] == 'Nonin Oximeter')
+assert(record1['handle'] == 0x00010030)
+assert(record1['mcap_control_psm'] == 0x1001)
+assert(record1['mcap_data_psm'] == 0x1003)
+assert(len(record1['features']) == 1)
+assert('csp' in record1['mcap_procedures'])
+assert('reconnect_init' not in record1['mcap_procedures'])
+assert(record1['features'][0]['data_type'] == 0x1004)
+assert(record1['features'][0]['role'] == ('source'))
+
+feature1 = {'mdep_id': 0x01, 'role': 'source',
+		'data_type': 0x1004, 'description': "Fake oximeter"}
+feature2 = {'mdep_id': 0x01, 'role': 'source', 'data_type': 0x4005}
+feature3 = {'mdep_id': 0x02, 'role': 'sink', 'data_type': 0x4006}
+feature4 = {'mdep_id': 0x04, 'role': 'sink', 'data_type': 0x4007}
+features = [feature1, feature2, feature3, feature4]
+hdp = {}
+hdp['mcap_control_psm'] = 0x1001
+hdp['features'] = features
+hdp['mcap_data_psm'] = 0x1003
+# NOTE default is 0x01, specified just to satisfy assertion below
+hdp['data_spec'] = 0x01
+hdp['name'] = "Fake oximeter"
+hdp['description'] = "A fake HDP record"
+hdp['provider'] = "Epx Inc."
+# NOTE order is important to satisfy assertion below
+hdp['mcap_procedures'] = ('reconnect_init', 'reconnect_accept', \
+				'csp', 'csp_master')
+hdp2 = hdp_record.parse_xml(hdp_record.gen_xml(hdp), True)[0]
+
+assert(hdp['features'] == hdp2['features'])
+assert(hdp == hdp2)
+print "Ok"
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 7/9] Adds an HDP record browser
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx
In-Reply-To: <1273592303-18234-1-git-send-email-epx@signove.com>

This script 'scans' known devices and interprets every HDP record
that it can find. The output is the raw dictionary format which
hdp_record module understands/delivers upon parsing.
---
 test/hdp/hdp_record_scan.py |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)
 create mode 100755 test/hdp/hdp_record_scan.py

diff --git a/test/hdp/hdp_record_scan.py b/test/hdp/hdp_record_scan.py
new file mode 100755
index 0000000..d8a6a2c
--- /dev/null
+++ b/test/hdp/hdp_record_scan.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+
+import hdp_record
+import dbus
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object("org.bluez", "/"),
+						"org.bluez.Manager")
+
+adapter_list = manager.ListAdapters()
+
+for i in adapter_list:
+	adapter = dbus.Interface(bus.get_object("org.bluez", i),
+							"org.bluez.Adapter")
+	properties  = adapter.GetProperties()
+	try:
+		device_list = properties["Devices"]
+	except:
+		device_list = []
+
+	for n in device_list:
+		device = dbus.Interface(bus.get_object("org.bluez", n),
+							"org.bluez.Device")
+		p = device.GetProperties()
+		print "Discovering device", p['Address'], p['Name']
+		try:
+			services = device.DiscoverServices("")
+		except:
+			services = {}
+
+		for handle in services.keys():
+			hdp = hdp_record.parse_xml(services[handle])
+			if hdp:
+				print "Handle %08x:" % handle
+				print hdp_record.parse_xml(services[handle])
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 6/9] Adds HDP record adder script
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx
In-Reply-To: <1273592303-18234-1-git-send-email-epx@signove.com>

This script creates an HDP profile from a service dictionary
(in a format that hdp_record module understands), generates
the XML and adds the service in SDP using D-BUS.
---
 test/hdp/hdp_record_add.py |   49 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)
 create mode 100755 test/hdp/hdp_record_add.py

diff --git a/test/hdp/hdp_record_add.py b/test/hdp/hdp_record_add.py
new file mode 100755
index 0000000..2574570
--- /dev/null
+++ b/test/hdp/hdp_record_add.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+
+import hdp_record
+import sys
+import time
+import dbus
+
+feature1 = {'mdep_id': 0x01, 'role': 'source',
+		'data_type': 0x1004, 'description': "Fake oximeter"}
+# feature2 = {'mdep_id': 0x01, 'role': 'source', 'data_type': 0x4005}
+# feature3 = {'mdep_id': 0x02, 'role': 'sink', 'data_type': 0x4006}
+# feature4 = {'mdep_id': 0x04, 'role': 'sink', 'data_type': 0x4007}
+# features = [feature1, feature2, feature3, feature4]
+features = [feature1]
+hdp = {'features': features}
+hdp['mcap_control_psm'] = 0x1001
+hdp['mcap_data_psm'] = 0x1003
+hdp['name'] = "Fake oximeter"
+hdp['description'] = "A fake HDP record"
+hdp['provider'] = "Epx Inc."
+hdp['mcap_procedures'] = ('csp', 'csp_master', 'reconnect_init', \
+				'reconnect_accept')
+xml = hdp_record.gen_xml(hdp)
+
+bus = dbus.SystemBus()
+manager = dbus.Interface(bus.get_object("org.bluez", "/"),
+						"org.bluez.Manager")
+
+if len(sys.argv) > 1:
+	path = manager.FindAdapter(sys.argv[1])
+else:
+	path = manager.DefaultAdapter()
+
+service = dbus.Interface(bus.get_object("org.bluez", path),
+						"org.bluez.Service")
+
+handle = service.AddRecord(xml)
+
+print "Service record with handle 0x%04x added" % (handle)
+
+print "Press CTRL-C to remove service record"
+
+try:
+	time.sleep(1000)
+	print "Terminating session"
+except:
+	pass
+
+service.RemoveRecord(dbus.UInt32(handle))
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 5/9] Adds a HDP XML record parsing script
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx
In-Reply-To: <1273592303-18234-1-git-send-email-epx@signove.com>

This patch adds a very simple script which interprets an HDP
record in XML format and outputs a dictionary. The script accepts
either files or standard input as XML sources.
---
 test/hdp/hdp_record_parse.py |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
 create mode 100755 test/hdp/hdp_record_parse.py

diff --git a/test/hdp/hdp_record_parse.py b/test/hdp/hdp_record_parse.py
new file mode 100755
index 0000000..27d0f35
--- /dev/null
+++ b/test/hdp/hdp_record_parse.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+import hdp_record
+import sys
+
+if len(sys.argv) > 1:
+	xml = open(sys.argv[1]).read()
+else:
+	xml = sys.stdin.read()
+
+print hdp_record.parse_xml(xml)
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 4/9] Adds sample HDP record generation script
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx
In-Reply-To: <1273592303-18234-1-git-send-email-epx@signove.com>

This patch adds a very simple HDP record generation script,
which makes the XML-formatted record from a simple dict with
HDP info.
---
 test/hdp/hdp_record_gen.py |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
 create mode 100755 test/hdp/hdp_record_gen.py

diff --git a/test/hdp/hdp_record_gen.py b/test/hdp/hdp_record_gen.py
new file mode 100755
index 0000000..4d9ce03
--- /dev/null
+++ b/test/hdp/hdp_record_gen.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+
+import hdp_record
+
+feature1 = {'mdep_id': 0x01, 'role': 'source',
+		'data_type': 0x1004, 'description': "Fake oximeter"}
+feature2 = {'mdep_id': 0x01, 'role': 'source', 'data_type': 0x4005}
+feature3 = {'mdep_id': 0x02, 'role': 'sink', 'data_type': 0x4006}
+feature4 = {'mdep_id': 0x04, 'role': 'sink', 'data_type': 0x4007}
+# features = [feature1, feature2, feature3, feature4]
+features = [feature1]
+hdp = {'features': features}
+hdp['mcap_control_psm'] = 0x1001
+hdp['mcap_data_psm'] = 0x1003
+hdp['name'] = "Fake oximeter"
+hdp['description'] = "A fake HDP record"
+hdp['provider'] = "Epx Inc."
+hdp['mcap_procedures'] = ('csp', 'csp_master', 'reconnect_init', \
+				'reconnect_accept')
+print hdp_record.gen_xml(hdp)
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 3/9] Adds HDP record parsing capability to hdp_record
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx
In-Reply-To: <1273592303-18234-1-git-send-email-epx@signove.com>

This patch adds XML record parsing capability to hdp_record
module. This allows a Python application to handle the HDP
record as a simple, specialized dict instead of a XML.
---
 test/hdp/hdp_record.py |  518 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 518 insertions(+), 0 deletions(-)

diff --git a/test/hdp/hdp_record.py b/test/hdp/hdp_record.py
index d4d72d6..8ee8b28 100644
--- a/test/hdp/hdp_record.py
+++ b/test/hdp/hdp_record.py
@@ -191,3 +191,521 @@ def gen_xml(service):
 	add_attr(doc, record, 0x0302, ('uint8', mcap_supported_procedures))
 
 	return doc.toprettyxml(encoding="UTF-8")
+
+
+def parse_uint(node):
+	value = 0
+	error = ""
+	xvalue = node.attributes.get("value")
+
+	if xvalue is None:
+		error = "No value attribute"
+	else:
+		xvalue = xvalue.nodeValue
+		try:
+			value = string.atoi(xvalue, 0)
+		except (ValueError, TypeError):
+			error = "Invalid value"
+		if value < 0:
+			error = "Value < 0"
+
+	return (value, error)
+
+
+def parse_text(node):
+	value = ""
+	error = ""
+	xvalue = node.attributes.get("value")
+
+	if xvalue is None:
+		error = "No value attribute"
+	else:
+		value = xvalue.nodeValue
+
+	return (value, error)
+
+
+def parse_uuid(node):
+	return parse_text(node)
+
+
+def parse_name(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'text':
+		service['error'] = "Bad name attr"
+		return
+
+	value, error = parse_text(nodelist[0])
+	if error:
+		service['error'] = "Bad name attr"
+		return
+
+	service['name'] = value
+
+
+def parse_description(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'text':
+		service['error'] = "Bad description attr"
+		return
+
+	value, error = parse_text(nodelist[0])
+	if error:
+		service['error'] = "Bad description attr"
+		return
+
+	service['description'] = value
+
+
+def parse_provider(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'text':
+		service['error'] = "Bad provider attr"
+		return
+
+	value, error = parse_text(nodelist[0])
+	if error:
+		service['error'] = "Bad provider attr"
+		return
+
+	service['provider'] = value
+
+
+def parse_handle(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'uint32':
+		service['error'] = "Bad handle"
+		return
+
+	value, error = parse_uint(nodelist[0])
+	if error:
+		service['error'] = "Bad handle"
+		return
+
+	service['handle'] = value
+
+
+def parse_data_spec(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'uint8':
+		service['error'] = "Bad data spec"
+		return
+
+	value, error = parse_uint(nodelist[0])
+	if error:
+		service['error'] = "Bad data spec"
+		return
+
+	service['data_spec'] = value
+
+	if value != 0x01:
+		service['error'] = "Unsupported data spec"
+
+
+def parse_mcap_procedures(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'uint8':
+		service['error'] = "Bad MCAP supported procs"
+		return
+
+	value, error = parse_uint(nodelist[0])
+	if error:
+		service['error'] = "Bad MCAP supported procs"
+		return
+
+	proc_list = []
+
+	if value & 0x02:
+		proc_list.append('reconnect_init')
+	if value & 0x04:
+		proc_list.append('reconnect_accept')
+	if value & 0x08:
+		proc_list.append('csp')
+	if value & 0x10:
+		proc_list.append('csp_master')
+
+	service['mcap_procedures'] = tuple(proc_list)
+
+
+def parse_pdl(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'sequence':
+		service['error'] = "Bad profile descriptor list (1)"
+		return
+
+	nodelist = nodelist[0].childNodes
+
+	if len(nodelist) != 1 or nodelist[0].tagName != 'sequence':
+		service['error'] = "Bad profile descriptor list (2)"
+		return
+
+	nodelist = nodelist[0].childNodes
+
+	if len(nodelist) != 2 or \
+		nodelist[0].tagName != 'uuid' or \
+		nodelist[1].tagName != 'uint16':
+
+		service['error'] = "Bad profile descriptor list (3)"
+		return
+
+	uuid, error = parse_uuid(nodelist[0])
+	if error:
+		service['error'] = "Bad profile descriptor list (4)"
+		return
+
+	version, error = parse_uint(nodelist[1])
+	if error:
+		service['error'] = "Bad profile descriptor list (5)"
+		return
+
+	if version != 0x0100:
+		service['error'] = "Unsupported HDP version"
+		return
+
+	service['_version'] = version
+
+
+
+def parse_roles(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'sequence':
+		service['error'] = "Bad role attribute"
+		return
+
+	nodelist = nodelist[0].childNodes
+	if not len(nodelist):
+		service['error'] = "No roles in attr"
+		return
+
+	roles = {}
+
+	for node in nodelist:
+		if node.tagName != "uuid":
+			service['error'] = "Bad role item in attribute"
+			return
+
+		uuid, error = parse_uuid(node)
+		if error:
+			service['error'] = "Bad role item in attribute"
+			return
+
+		try:
+			uuid = string.atoi(uuid, 0)
+			if uuid == 0x1401:
+				roles['source'] = True
+			elif uuid == 0x1402:
+				roles['sink'] = True
+
+		except (ValueError, TypeError):
+			service['error'] = "Bad UUID in role: %s" % uuid
+			return
+
+	service['_roles'] = roles
+	if not roles:
+		# This is not an HDP record, ignore
+		service['_not_hdp'] = True
+
+
+def parse_additional_protos(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'sequence':
+		service['error'] = "Bad additional protocol attribute"
+		return
+
+	nodelist = nodelist[0].childNodes
+	if len(nodelist) != 1 or nodelist[0].tagName != 'sequence':
+		service['error'] = "Bad additional protocol attribute"
+		return
+
+	nodelist = nodelist[0].childNodes
+
+	if len(nodelist) != 2 or \
+		nodelist[0].tagName != 'sequence' or \
+		nodelist[1].tagName != 'sequence':
+
+		service['error'] = "Bad additional protocol attribute"
+		return
+
+	if len(nodelist[0].childNodes) != 2 or \
+		len(nodelist[1].childNodes) != 1 or \
+		nodelist[0].childNodes[0].tagName != 'uuid' or \
+		nodelist[0].childNodes[1].tagName != 'uint16' or \
+		nodelist[1].childNodes[0].tagName != 'uuid':
+
+		service['error'] = "Bad add protocol attribute"
+		return
+
+	proto, error1 = parse_uuid(nodelist[0].childNodes[0])
+	dpsm, error2 = parse_uint(nodelist[0].childNodes[1])
+	identifier, error3 = parse_uuid(nodelist[1].childNodes[0])
+
+	error = error1 or error2 or error3
+	if error:
+		service['error'] = error
+		return
+
+	try:
+		proto = string.atoi(proto, 0)
+	except (TypeError, ValueError):
+		proto = 0
+
+	try:
+		identifier = string.atoi(identifier, 0)
+	except (TypeError, ValueError):
+		identifier = 0
+
+	if proto != 0x0100:
+		service['error'] = "Expected LCAP in add protocol attr"
+		return
+
+	if identifier != 0x001f:
+		service['error'] = "Expected MCAP data channel protocol attr"
+		return
+
+	service['mcap_data_psm'] = dpsm
+
+
+def parse_proto(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'sequence':
+		service['error'] = "Bad protocol attribute"
+		return
+
+	nodelist = nodelist[0].childNodes
+
+	if len(nodelist) != 2 or \
+		nodelist[0].tagName != 'sequence' or \
+		nodelist[1].tagName != 'sequence':
+
+		service['error'] = "Bad protocol attribute (1)"
+		return
+
+	if len(nodelist[0].childNodes) != 2 or \
+		len(nodelist[1].childNodes) != 2 or \
+		nodelist[0].childNodes[0].tagName != 'uuid' or \
+		nodelist[0].childNodes[1].tagName != 'uint16' or \
+		nodelist[1].childNodes[0].tagName != 'uuid' or \
+		nodelist[0].childNodes[1].tagName != 'uint16':
+
+		service['error'] = "Bad protocol attribute (2)"
+		return
+
+	proto, error1 = parse_uuid(nodelist[0].childNodes[0])
+	cpsm, error2 = parse_uint(nodelist[0].childNodes[1])
+	identifier, error3 = parse_uuid(nodelist[1].childNodes[0])
+	version, error4 = parse_uint(nodelist[1].childNodes[1])
+
+	error = error1 or error2 or error3 or error4
+	if error:
+		service['error'] = error
+		return
+
+	try:
+		proto = string.atoi(proto, 0)
+	except (TypeError, ValueError):
+		proto = 0
+
+	try:
+		identifier = string.atoi(identifier, 0)
+	except (TypeError, ValueError):
+		identifier = 0
+
+	if proto != 0x0100:
+		service['error'] = "Expected LCAP in add protocol attr"
+		return
+
+	if identifier != 0x001e:
+		service['error'] = "Expected MCAP control attr"
+		return
+
+	if version != 0x0100:
+		service['error'] = "Unsupported MCAP version"
+		return
+
+	service['mcap_control_psm'] = cpsm
+
+
+def parse_features(nodelist, service):
+	if len(nodelist) != 1 or nodelist[0].tagName != 'sequence':
+		service['error'] = "Bad feature attr"
+		return
+
+	if len(nodelist) < 1:
+		service['error'] = "No features in attr"
+		return
+
+	features = []
+
+	for feature in nodelist[0].childNodes:
+		featurenode = feature.childNodes
+
+		if len(featurenode) < 3 or len(featurenode) > 4:
+			service['error'] = "Invalid feature"
+			return
+
+		mdep_id, error1 = parse_uint(featurenode[0])
+		data_type, error2 = parse_uint(featurenode[1])
+		role, error3 = parse_uint(featurenode[2])
+
+		if len(featurenode) == 4:
+			description, error4 = parse_text(featurenode[3])
+		else:
+			description = None
+			error4 = ""
+
+		error = error1 or error2 or error3 or error4
+		if error:
+			service['error'] = error
+			return
+
+		if role > 0x01:
+			service['error'] = "Unknown role value %d" % role
+			return
+
+		role = {0x00: 'source', 0x01: 'sink'}[role]
+
+		feature = {'mdep_id': mdep_id, 'data_type': data_type,
+				'role': role}
+
+		if description is not None:
+			feature['description'] = description
+
+		features.append(feature)
+
+	service['features'] = features
+
+
+attr_handlers = {
+		0x0000: parse_handle,
+		0x0001: parse_roles,
+		0x0004: parse_proto,
+		0x0009: parse_pdl,
+		0x000d: parse_additional_protos,
+		0x0200: parse_features,
+		0x0100: parse_name,
+		0x0301: parse_data_spec,
+		0x0302: parse_mcap_procedures,
+		0x0101: parse_description,
+		0x0102: parse_provider,
+		}
+
+
+def parse_xml_record_inner(node, forgive_handle):
+	service = {}
+	service['handle'] = None
+	service['features'] = None
+	service['mcap_control_psm'] = None
+	service['handle'] = None
+	service['mcap_data_psm'] = None
+	service['mcap_procedures'] = None
+	service['data_spec'] = None
+	service['name'] = ""
+	service['description'] = ""
+	service['provider'] = ""
+	service['error'] = ""
+	service['_roles'] = None
+	service['_version'] = None
+	service['_not_hdp'] = False
+
+	for child in node.childNodes:
+		if child.tagName != "attribute":
+			continue
+
+		attr_id = child.attributes.get("id")
+
+		if attr_id is None:
+			service['error'] = "Attribute without ID"
+			return service
+
+		attr_id = attr_id.nodeValue
+
+		try:
+			attr_id = string.atoi(attr_id, 0)
+		except (TypeError, ValueError):
+			service['error'] = "Bad attribute ID"
+
+		if attr_id in attr_handlers:
+			if not child.hasChildNodes:
+				service['error'] = "Empty attribute: %04x" \
+							% attr_id
+				return service
+
+			attr_handlers[attr_id](child.childNodes, service)
+
+			if service['error']:
+				return service
+			if service['_not_hdp']:
+				return None
+
+	for k in service.keys():
+		if service[k] is None and (k != 'handle' or not forgive_handle):
+			service['error'] = "%s attribute not specified" % k
+			return service
+
+	mdeps = {}
+
+	for feature in service['features']:
+		role = feature['role']
+		mdep_id = feature['mdep_id']
+
+		if role not in service['_roles']:
+			service['error'] = "Role '%s' in features but " \
+						"not in roles" % role
+			return service
+
+		if mdep_id in mdeps:
+			if mdeps[mdep_id] != role:
+				service['error'] = "MDEP ID %d in both " \
+							"roles" % mdep_id
+				return service
+
+		mdeps[mdep_id] = role
+
+	for k in service.keys():
+		if k[0] == '_':
+			del service[k]
+
+	if forgive_handle and service['handle'] is None:
+		del service['handle']
+
+	if not service['error']:
+		del service['error']
+
+	return service
+
+
+def parse_xml_record(node, forgive_handle, raise_bad_record):
+	service = parse_xml_record_inner(node, forgive_handle)
+
+	if service and 'error' in service and raise_bad_record:
+		raise HDPRecordException("Error in record: %s" % \
+						service['error'])
+
+	return service
+
+
+def remove_text_nodes(node):
+	text_nodes = []
+
+	for child in node.childNodes:
+		if child.nodeType == child.TEXT_NODE:
+			# mark for deletion
+			text_nodes.append(child)
+		else:
+			remove_text_nodes(child)
+
+	for child in text_nodes:
+		child.parentNode.removeChild(child)
+
+
+def parse_xml(xmlstring, forgive_handle=False, filter_xml_exception=True,
+		raise_bad_record=True):
+	try:
+		doc = xml.dom.minidom.parseString(xmlstring)
+	except:
+		if filter_xml_exception:
+			raise HDPRecordException("Malformed XML")
+		else:
+			raise
+
+	remove_text_nodes(doc)
+
+	services = []
+
+	for record in doc.getElementsByTagName('record'):
+		service = parse_xml_record(record, forgive_handle,
+						raise_bad_record)
+		if service:
+			services.append(service)
+
+	return services
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 2/9] Adds Python module for HDP record parsing/generation
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx
In-Reply-To: <1273592303-18234-1-git-send-email-epx@signove.com>

This patch adds the HDP record generation part, from a
easy-to-use dictionary to record in XML format.
---
 test/hdp/hdp_record.py |  193 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 193 insertions(+), 0 deletions(-)
 create mode 100644 test/hdp/hdp_record.py

diff --git a/test/hdp/hdp_record.py b/test/hdp/hdp_record.py
new file mode 100644
index 0000000..d4d72d6
--- /dev/null
+++ b/test/hdp/hdp_record.py
@@ -0,0 +1,193 @@
+#!/usr/bin/env python
+
+# This module is a prototype implementation of HDP profile
+# conversion from a simple dictionary to/from the XML format
+# that BlueZ understands.
+
+import xml.dom.minidom
+import string
+
+
+class HDPRecordException(Exception):
+	pass
+
+
+def myuint(value):
+	if type(value) is not int:
+		try:
+			value = string.atoi(value, 0)
+		except (TypeError, ValueError):
+			raise HDPRecordException("Invalid uint: %s", value)
+	if value < 0:
+		raise HDPRecordException("Value must be non-negative: %d" \
+						% value)
+	return value
+
+
+def add_attr(doc, parent, attr, data):
+	if attr is not None:
+		child = doc.createElement("attribute")
+		child.setAttribute("id", "0x%04x" % myuint(attr))
+		parent.appendChild(child)
+		parent = child
+
+	if type(data) is list:
+		child = doc.createElement("sequence")
+		for item in data:
+			add_attr(doc, child, None, item)
+	else:
+		element_type, value = data
+		if element_type == 'uint8':
+			value = "0x%02x" % myuint(value)
+		elif element_type == 'uint16':
+			value = "0x%04x" % myuint(value)
+		elif element_type == 'uint32':
+			value = "0x%08x" % myuint(value)
+		elif element_type == 'uuid' and type(value) is int:
+			value = "0x%04x" % value
+		child = doc.createElement(element_type)
+		child.setAttribute("value", value)
+
+	parent.appendChild(child)
+
+
+def gen_xml(service):
+	if not service['features']:
+		raise HDPRecordException("No HDP features")
+
+	cpsm = service['mcap_control_psm']
+	dpsm = service['mcap_data_psm']
+
+	if cpsm < 0x1001 or cpsm > 0xffff:
+		raise HDPRecordException("Control PSM invalid")
+	if dpsm < 0x1001 or dpsm > 0xffff or dpsm == cpsm:
+		raise HDPRecordException("Data PSM invalid")
+
+	doc = xml.dom.minidom.Document()
+	record = doc.createElement("record")
+	doc.appendChild(record)
+
+	roles = {}
+	mcap_supported_procedures = 0x00
+
+	for mcap_procedures in service.get('mcap_procedures', []):
+		if mcap_procedures == 'csp':
+			mcap_supported_procedures |= 0x08
+		elif mcap_procedures == 'csp_master':
+			mcap_supported_procedures |= 0x10
+		elif mcap_procedures == 'reconnect_init':
+			mcap_supported_procedures |= 0x02
+		elif mcap_procedures == 'reconnect_accept':
+			mcap_supported_procedures |= 0x04
+		else:
+			raise HDPRecordException("Unknown MCAP procedure: %s" \
+					% mcap_procedures)
+
+	data_spec = service.get('data_spec', 0x01) # 0x01 == IEEE 10267
+
+	hdp_features = []
+	mdeps = {}
+	data_types = {}
+
+	for feature in service['features']:
+		mdep_id = feature['mdep_id']
+		data_type = feature['data_type']
+		description = feature.get('description', None)
+		s_role = feature['role']
+
+		if s_role == 'source':
+			roles[0x1401] = True
+			role = 0x00
+		elif s_role == 'sink':
+			roles[0x1402] = True
+			role = 0x01
+		else:
+			raise HDPRecordException("Unknown role: %s" \
+				% feature['role'])
+
+		if role != mdeps.get(mdep_id, role):
+			raise HDPRecordException("Reusing MDEP ID %d " \
+				"for different role" % mdep_id)
+		mdeps[mdep_id] = role
+
+		if data_type in data_types:
+			if role in data_types[data_type]:
+				raise HDPRecordException("Redundant role/type" \
+					" tuple: (%s, %d)" % \
+					(s_role, data_type))
+			data_types[data_type].append(role)
+		else:
+			data_types[data_type] = [ role ]
+
+		feature_record = [ \
+			('uint8', mdep_id),
+			('uint16', data_type),
+			('uint8', role),
+			]
+		if description:
+			feature_record.append(('text', description))
+
+		hdp_features.append(feature_record)
+
+	if "handle" in service:
+		add_attr(doc, record, 0x0000, ('uint32', service['handle']))
+
+	roles_sequence = [('uuid', k) for k in roles.keys()]
+	add_attr(doc, record, 0x0001, roles_sequence)
+
+	add_attr(doc, record, 0x0004,	# protocol descriptor list
+		[
+			[
+				('uuid', 0x0100), # L2CAP
+				('uint16', cpsm), # control channel
+			], [
+				('uuid', 0x001e),   # MCAP control channel
+				('uint16', 0x0100), # version
+			],
+		])
+
+	add_attr(doc, record, 0x0006, # language/encoding
+		[
+			('uint16', 0x656e),  # 'en' (ISO 639 lang. code)
+			('uint16', 0x006a),  # UTF-8 (IANA MIBE code)
+			('uint16', 0x0100),  # Natural language ID
+		])
+
+	add_attr(doc, record, 0x0009,
+		[
+			[
+				('uuid', 0x1400),   # HDP
+				('uint16', 0x0100), # HDP version
+			],
+		])
+
+	add_attr(doc, record, 0x000d,  # additional protocols
+		[
+			[
+				[
+					('uuid', 0x0100), # L2CAP
+					('uint16', dpsm), # data channel
+				], [
+					('uuid', 0x001f), # MCAP data channel
+				],
+			],
+		])
+
+	name = service.get('name', "")
+	if name:
+		add_attr(doc, record, 0x0100, ('text', name))
+
+	description = service.get('description', "")
+	if description:
+		add_attr(doc, record, 0x0101, ('text', description))
+
+	provider = service.get('provider', "")
+	if provider:
+		add_attr(doc, record, 0x0102, ('text', provider))
+
+	add_attr(doc, record, 0x0200, hdp_features) # HDP supported features
+
+	add_attr(doc, record, 0x0301, ('uint8', data_spec))
+	add_attr(doc, record, 0x0302, ('uint8', mcap_supported_procedures))
+
+	return doc.toprettyxml(encoding="UTF-8")
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 1/9] Adds XML record samples from Nonin Oximeter
From: Elvis Pfützenreuter @ 2010-05-11 15:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: epx

The XML record is slightly edited to be diff'able against
Python minidom prettyPrint()'s output.
---
 test/hdp/record_sample1.raw |   45 +++++++++++++++++++++++++++
 test/hdp/record_sample1.xml |   72 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 117 insertions(+), 0 deletions(-)
 create mode 100644 test/hdp/record_sample1.raw
 create mode 100644 test/hdp/record_sample1.xml

diff --git a/test/hdp/record_sample1.raw b/test/hdp/record_sample1.raw
new file mode 100644
index 0000000..2721f64
--- /dev/null
+++ b/test/hdp/record_sample1.raw
@@ -0,0 +1,45 @@
+Sequence
+	Attribute 0x0000 - ServiceRecordHandle
+		UINT32 0x0001002e
+	Attribute 0x0001 - ServiceClassIDList
+		Sequence
+			UUID16 0x1401 - HDPSource
+	Attribute 0x0004 - ProtocolDescriptorList
+		Sequence
+			Sequence
+				UUID16 0x0100 - L2CAP
+				UINT16 0x1001
+			Sequence
+				UUID16 0x001e
+				UINT16 0x0100
+	Attribute 0x0006 - LanguageBaseAttributeIDList
+		Sequence
+			UINT16 0x656e
+			UINT16 0x006a
+			UINT16 0x0100
+	Attribute 0x0009 - BluetoothProfileDescriptorList
+		Sequence
+			Sequence
+				UUID16 0x1400 - HDP
+				UINT16 0x0100
+	Attribute 0x000d - AdditionalProtocolDescriptorLists
+		Sequence
+			Sequence
+				Sequence
+					UUID16 0x0100 - L2CAP
+					UINT16 0x1003
+				Sequence
+					UUID16 0x001f
+	Attribute 0x0100
+		String Nonin Oximeter
+	Attribute 0x0200
+		Sequence
+			Sequence
+				UINT8 0x01
+				UINT16 0x1004
+				UINT8 0x00
+				String Nonin Oximeter
+	Attribute 0x0301
+		UINT8 0x01
+	Attribute 0x0302
+		UINT8 0x18
diff --git a/test/hdp/record_sample1.xml b/test/hdp/record_sample1.xml
new file mode 100644
index 0000000..946f717
--- /dev/null
+++ b/test/hdp/record_sample1.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Sample record obtained from Nonin Oximeter -->
+
+<record>
+	<attribute id="0x0000">
+		<uint32 value="0x00010030"/>
+	</attribute>
+	<attribute id="0x0001">
+		<sequence>
+			<uuid value="0x1401"/>
+		</sequence>
+	</attribute>
+	<attribute id="0x0004">
+		<sequence>
+			<sequence>
+				<uuid value="0x0100"/>
+				<uint16 value="0x1001"/>
+			</sequence>
+			<sequence>
+				<uuid value="0x001e"/>
+				<uint16 value="0x0100"/>
+			</sequence>
+		</sequence>
+	</attribute>
+	<attribute id="0x0006">
+		<sequence>
+			<uint16 value="0x656e"/>
+			<uint16 value="0x006a"/>
+			<uint16 value="0x0100"/>
+		</sequence>
+	</attribute>
+	<attribute id="0x0009">
+		<sequence>
+			<sequence>
+				<uuid value="0x1400"/>
+				<uint16 value="0x0100"/>
+			</sequence>
+		</sequence>
+	</attribute>
+	<attribute id="0x000d">
+		<sequence>
+			<sequence>
+				<sequence>
+					<uuid value="0x0100"/>
+					<uint16 value="0x1003"/>
+				</sequence>
+				<sequence>
+					<uuid value="0x001f"/>
+				</sequence>
+			</sequence>
+		</sequence>
+	</attribute>
+	<attribute id="0x0100">
+		<text value="Nonin Oximeter"/>
+	</attribute>
+	<attribute id="0x0200">
+		<sequence>
+			<sequence>
+				<uint8 value="0x01"/>
+				<uint16 value="0x1004"/>
+				<uint8 value="0x00"/>
+				<text value="Nonin Oximeter"/>
+			</sequence>
+		</sequence>
+	</attribute>
+	<attribute id="0x0301">
+		<uint8 value="0x01"/>
+	</attribute>
+	<attribute id="0x0302">
+		<uint8 value="0x18"/>
+	</attribute>
+</record>
-- 
1.7.0.4


^ permalink raw reply related

* Re: [bugreport]
From: Iain Hibbert @ 2010-05-11 14:47 UTC (permalink / raw)
  To: Serhiy Kachaniuk; +Cc: linux-bluetooth
In-Reply-To: <u2z793f89501005060256g3eb32a09ncff16e8e454bdcc@mail.gmail.com>


Serhiy, from your message on the ubuntu bug report

> Maybe the reason is that this dongle doesn't support reading/writing of
> 'Default Link Policy Settings' ?

and this command was introduced in spec version 1.2, and your device
reports

>        HCI Ver: 1.1 (0x1) HCI Rev: 0x3 LMP Ver: 1.1 (0x1) LMP Subver: 0x800

so yes, that is likely the problem as it is too old.

That bluez has no handling for the possibility that the command may not be
supported is possibly a bug or possibly an indication that older devices
are no longer to be supported, I can't really say which.

regards,
iain



^ permalink raw reply

* Re: magicmouse: claimed by neither input, hiddev nor hidraw
From: Justin P. Mattock @ 2010-05-11 14:26 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-bluetooth, Linux Kernel Mailing List
In-Reply-To: <alpine.LNX.2.00.1005102351220.28092@pobox.suse.cz>

o.k... I went and tested individual commits
and right now if I git revert 28918c
on the latest head, I don't receive
the "claimed by neither input, hiddev nor hidraw"
message, and I get all functionality back with the mouse.
(without having hiddraw enabled in the kernel.

Justin P. Mattock

^ permalink raw reply

* Re: [bugreport]
From: Vinicius Gomes @ 2010-05-11 13:52 UTC (permalink / raw)
  To: Serhiy Kachaniuk; +Cc: linux-bluetooth
In-Reply-To: <AANLkTinOD1ODHqYSWTLv5ho2ZYU-bfiJ1xYkWNlbgaZQ@mail.gmail.com>

Hi Serhiy,

On Tue, May 11, 2010 at 10:06 AM, Serhiy Kachaniuk <serzholino@gmail.com> wrote:
> 2010/5/6 Serhiy Kachaniuk <serzholino@gmail.com>:
>> Hi!
>>
>> My USB bluetooth adapter stopped working with new versions of bluez.
>> Latest version which works is 4.32.
>> I initially reported bug for ubuntu package in launchpad here
>> https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/453885 , but then
>> i tried also opensuse livecd and problem remained there too, so looks
>> like it's not ubuntu specific.
>> jhe at #bluez-devel suggested to me to collect hcidump output on
>> bluetoothd startup, and then write to this mailinglist. I attached
>> suggested hcidumps for bluez versions 4.64 and 4.32, and looks like
>> 4.64 stops initialization process after it cannot read parameter
>> 'Default Link Policy Settings' from device.
>>
>> Can you please take a look at this bug?
>> Thanks in advance.
>>
>
> Can someone turn this e-mail thread into bluez bugreport? If i
> understand correctly, only developers can create bluez bugreports in
> trac? Also, if you need any more debugging info, i would be glad to
> provide you with any.

This (the mailing list) is the correct place for bug reports.

Someone here in the office has an ancient Bluetooth 1.2 dongle, which
shows a similar problem. Now that you discovered that it is probably a
regression and I can reproduce it, I will try to debug it.

And it looks like that the hcidump logs that you attached in your
first email got lost somehow.

Anyway, I think that the only information missing is your kernel version.


Cheers,
-- 
Vinicius

^ permalink raw reply

* Re: Using wireless.kernel.org for Bluetooth documentation as well ?
From: John W. Linville @ 2010-05-11 13:37 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: linux-wireless, linux-bluetooth, linux-kernel, Marcel Holtmann,
	Johannes Berg
In-Reply-To: <k2z43e72e891005101245se32796ex47a17683ab05d8b5@mail.gmail.com>

On Mon, May 10, 2010 at 12:45:41PM -0700, Luis R. Rodriguez wrote:
> Today we have a wealth of information on 802.11 Linux wireless on
> http://wireless.kernel.org and I think the wiki model has worked
> wonders for us. I wanted to see what you thought of using the same
> site as a source of documentation for Bluetooth as well. We already
> have *some* Bluetooth documentation [1], and we could just point to
> the BlueZ pages for other docs but it doesn't seem to use a wiki and
> those google ads do blind my right eye.
> 
> Thoughts?
> 
> [1] http://wireless.kernel.org/en/users/Documentation/Bluetooth-coexistence
> [2] http://www.bluez.org

Personally, I have no objection.

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Re: [bugreport]
From: Serhiy Kachaniuk @ 2010-05-11 13:06 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <p2q793f89501005052222u4393c8dfhb55bea4454c454b9@mail.gmail.com>

2010/5/6 Serhiy Kachaniuk <serzholino@gmail.com>:
> Hi!
>
> My USB bluetooth adapter stopped working with new versions of bluez.
> Latest version which works is 4.32.
> I initially reported bug for ubuntu package in launchpad here
> https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/453885 , but then
> i tried also opensuse livecd and problem remained there too, so looks
> like it's not ubuntu specific.
> jhe at #bluez-devel suggested to me to collect hcidump output on
> bluetoothd startup, and then write to this mailinglist. I attached
> suggested hcidumps for bluez versions 4.64 and 4.32, and looks like
> 4.64 stops initialization process after it cannot read parameter
> 'Default Link Policy Settings' from device.
>
> Can you please take a look at this bug?
> Thanks in advance.
>

Can someone turn this e-mail thread into bluez bugreport? If i
understand correctly, only developers can create bluez bugreports in
trac? Also, if you need any more debugging info, i would be glad to
provide you with any.

^ permalink raw reply

* Re: [PATCH] Initial support for MCAP
From: Santiago Carot-Nemesio @ 2010-05-11 10:01 UTC (permalink / raw)
  To: Santiago Carot-Nemesio; +Cc: linux-bluetooth
In-Reply-To: <1273571962-3558-1-git-send-email-sancane@gmail.com>

Hi,

The patch also fix typo errors.

Best regards


^ permalink raw reply

* [PATCH] Initial support for MCAP
From: Santiago Carot-Nemesio @ 2010-05-11  9:59 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Santiago Carot-Nemesio
In-Reply-To: <1273486527-7855-1-git-send-email-sancane@gmail.com>

---
 Makefile.am          |   13 ++++-
 acinclude.m4         |    6 ++
 mcap/mcap.c          |   55 ++++++++++++++++
 mcap/mcap.h          |  176 ++++++++++++++++++++++++++++++++++++++++++++++++++
 mcap/mcap_internal.h |  118 +++++++++++++++++++++++++++++++++
 mcap/mcap_lib.h      |  163 ++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 530 insertions(+), 1 deletions(-)
 create mode 100644 mcap/mcap.c
 create mode 100644 mcap/mcap.h
 create mode 100644 mcap/mcap_internal.h
 create mode 100644 mcap/mcap_lib.h

diff --git a/Makefile.am b/Makefile.am
index f991121..7d8f4b5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -101,6 +101,7 @@ gdbus_sources = gdbus/gdbus.h gdbus/mainloop.c gdbus/object.c gdbus/watch.c
 builtin_modules =
 builtin_sources =
 builtin_nodist =
+mcap_sources =
 
 if PNATPLUGIN
 builtin_modules += pnat
@@ -168,6 +169,12 @@ builtin_modules += service
 builtin_sources += plugins/service.c
 endif
 
+if MCAP
+mcap_sources += mcap/mcap_lib.h \
+		mcap/mcap_internal.h \
+		mcap/mcap.h mcap/mcap.c
+endif
+
 builtin_modules += hciops
 builtin_sources += plugins/hciops.c
 
@@ -196,7 +203,8 @@ src_bluetoothd_SOURCES = $(gdbus_sources) $(builtin_sources) \
 			src/adapter.h src/adapter.c \
 			src/device.h src/device.c \
 			src/dbus-common.c src/dbus-common.h \
-			src/dbus-hci.h src/dbus-hci.c
+			src/dbus-hci.h src/dbus-hci.c \
+			$(mcap_sources)
 src_bluetoothd_LDADD = lib/libbluetooth.la @GLIB_LIBS@ @DBUS_LIBS@ \
 							@CAPNG_LIBS@ -ldl
 src_bluetoothd_LDFLAGS = -Wl,--export-dynamic \
@@ -318,6 +326,9 @@ AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @CAPNG_CFLAGS@ \
 INCLUDES = -I$(builddir)/lib -I$(builddir)/src -I$(srcdir)/src \
 			-I$(srcdir)/audio -I$(srcdir)/sbc -I$(srcdir)/gdbus
 
+if MCAP
+INCLUDES += -I$(builddir)/mcap
+endif
 
 pkgconfigdir = $(libdir)/pkgconfig
 
diff --git a/acinclude.m4 b/acinclude.m4
index f7bb047..b512cfb 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -167,6 +167,7 @@ AC_DEFUN([AC_ARG_BLUEZ], [
 	serial_enable=yes
 	network_enable=yes
 	service_enable=yes
+	mcap_enable=no
 	pnat_enable=no
 	tracer_enable=no
 	tools_enable=yes
@@ -215,6 +216,10 @@ AC_DEFUN([AC_ARG_BLUEZ], [
 		service_enable=${enableval}
 	])
 
+	AC_ARG_ENABLE(mcap, AC_HELP_STRING([--enable-mcap], [enable mcap support]), [
+			mcap_enable=${enableval}
+	])
+
 	AC_ARG_ENABLE(pnat, AC_HELP_STRING([--enable-pnat], [enable pnat plugin]), [
 		pnat_enable=${enableval}
 	])
@@ -325,6 +330,7 @@ AC_DEFUN([AC_ARG_BLUEZ], [
 	AM_CONDITIONAL(SERIALPLUGIN, test "${serial_enable}" = "yes")
 	AM_CONDITIONAL(NETWORKPLUGIN, test "${network_enable}" = "yes")
 	AM_CONDITIONAL(SERVICEPLUGIN, test "${service_enable}" = "yes")
+	AM_CONDITIONAL(MCAP, test "${mcap_enable}" = "yes")
 	AM_CONDITIONAL(ECHOPLUGIN, test "no" = "yes")
 	AM_CONDITIONAL(PNATPLUGIN, test "${pnat_enable}" = "yes")
 	AM_CONDITIONAL(TRACER, test "${tracer_enable}" = "yes")
diff --git a/mcap/mcap.c b/mcap/mcap.c
new file mode 100644
index 0000000..df8dd50
--- /dev/null
+++ b/mcap/mcap.c
@@ -0,0 +1,55 @@
+/*
+ *
+ *  MCAP for BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2010 GSyC/LibreSoft, Universidad Rey Juan Carlos.
+ *
+ *  Authors:
+ *  Santiago Carot-Nemesio <sancane at gmail.com>
+ *  Jose Antonio Santos-Cadenas <santoscadenas at gmail.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#include "logging.h"
+#include "btio.h"
+#include "error.h"
+
+#include <netinet/in.h>
+
+#include "mcap.h"
+#include "mcap_lib.h"
+#include "mcap_internal.h"
+
+struct mcap_session *mcap_create_session(struct btd_adapter *btd_adapter,
+					BtIOSecLevel sec,
+					uint16_t ccpsm,
+					uint16_t dcpsm,
+					GError **gerr,
+					mcap_mcl_event_cb mcl_connected,
+					mcap_mcl_event_cb mcl_reconnected,
+					mcap_mcl_event_cb mcl_disconnected,
+					mcap_mcl_event_cb mcl_uncached,
+					gpointer user_data)
+{
+	/* TODO: Create MCAP Session */
+	return NULL;
+}
+
+void mcap_close_session(struct mcap_session *ms)
+{
+	/* Free MCAP session */
+}
diff --git a/mcap/mcap.h b/mcap/mcap.h
new file mode 100644
index 0000000..598e6ce
--- /dev/null
+++ b/mcap/mcap.h
@@ -0,0 +1,176 @@
+/*
+ *
+ *  MCAP for BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2010 GSyC/LibreSoft, Universidad Rey Juan Carlos.
+ *
+ *  Authors:
+ *  Santiago Carot-Nemesio <sancane at gmail.com>
+ *  Jose Antonio Santos-Cadenas <santoscadenas at gmail.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifndef __MCAP_H
+#define __MCAP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MCAP_VERSION	0x0100	/* current version 01.00 */
+
+/* bytes to get MCAP Supported Procedures */
+#define MCAP_SUP_PROC	0x06
+
+/* maximum transmission unit for channels */
+#define MCAP_CC_MTU	48
+#define MCAP_DC_MTU	L2CAP_DEFAULT_MTU
+
+
+/* MCAP Standard Op Codes */
+#define MCAP_ERROR_RSP			0x00
+#define MCAP_MD_CREATE_MDL_REQ		0x01
+#define MCAP_MD_CREATE_MDL_RSP		0x02
+#define MCAP_MD_RECONNECT_MDL_REQ	0x03
+#define MCAP_MD_RECONNECT_MDL_RSP	0x04
+#define MCAP_MD_ABORT_MDL_REQ		0x05
+#define MCAP_MD_ABORT_MDL_RSP		0x06
+#define MCAP_MD_DELETE_MDL_REQ		0x07
+#define MCAP_MD_DELETE_MDL_RSP		0x08
+/*RESERVED                              0x09*/
+/*RESERVED                              0x10*/
+
+/* MCAP Clock Sync Op Codes */
+#define MCAP_MD_SYNC_CAP_REQ		0x11
+#define MCAP_MD_SYNC_CAP_RSP		0x12
+#define MCAP_MD_SYNC_SET_REQ		0x13
+#define MCAP_MD_SYNC_SET_RSP            0x14
+#define MCAP_MD_SYNC_INFO_IND		0x15
+/*RESERVED				0x16*/
+/*RESERVED                              0x17*/
+/*RESERVED                              0x18*/
+/*RESERVED                              0x19*/
+/*RESERVED                              0x20*/
+
+/* MCAP Response codes */
+#define MCAP_SUCCESS			0x00
+#define MCAP_INVALID_OP_CODE		0x01
+#define MCAP_INVALID_PARAM_VALUE	0x02
+#define MCAP_INVALID_MDEP		0x03
+#define MCAP_MDEP_BUSY			0x04
+#define MCAP_INVALID_MDL		0x05
+#define MCAP_MDL_BUSY			0x06
+#define MCAP_INVALID_OPERATION		0x07
+#define MCAP_RESOURCE_UNAVAILABLE	0x08
+#define MCAP_UNESPECIFIED_ERROR		0x09
+#define MCAP_REQUEST_NOT_SUPPORTED	0x0A
+#define MCAP_CONFIGURATION_REJECTED	0x0B
+/*RESERVED				0x0C-0xFF*/
+
+
+/* MDL IDs */
+#define MCAP_MDLID_RESERVED		0x0000
+#define MCAP_MDLID_INITIAL		0x0001
+#define MCAP_MDLID_FINAL		0xFEFF
+/*RESERVED				0xFF00-0xFFFE*/
+#define MCAP_ALL_MDLIDS			0xFFFF
+
+/* MDEP IDs */
+#define MCAP_MDEPID_INITIAL		0x00
+#define MCAP_MDEPID_FINAL		0x7F
+/*RESERVED				0x80-0xFF*/
+
+
+/*
+ * MCAP Request Packet Format
+ */
+
+typedef struct {
+	uint8_t         op;
+        uint16_t	mdl;
+	uint8_t		mdep;
+	uint8_t		conf;
+} __attribute__ ((packed)) mcap_md_create_mdl_req;
+
+typedef struct {
+        uint8_t         op;
+        uint16_t        mdl;
+} __attribute__ ((packed)) mcap_md_req;
+
+
+/*
+ * MCAP Response Packet Format
+ */
+
+typedef struct {
+        uint8_t         op;
+        uint8_t         rc;
+	uint16_t        mdl;
+} __attribute__ ((packed)) mcap4B_rsp;
+
+typedef struct {
+        uint8_t         op;
+        uint8_t         rc;
+        uint16_t        mdl;
+        uint8_t         param;
+} __attribute__ ((packed)) mcap5B_rsp;
+
+
+/*
+ * MCAP Clock Synchronization Protocol
+ */
+typedef struct {
+        uint8_t         op;
+        uint16_t        timest;
+} __attribute__ ((packed)) mcap_md_sync_cap_req;
+
+typedef struct {
+        uint8_t         op;
+	uint8_t         rc;
+	uint8_t         btclock;
+        uint16_t        sltime;
+	uint16_t        timestnr;
+	uint16_t        timestna;
+} __attribute__ ((packed)) mcap_md_sync_cap_rsp;
+
+typedef struct {
+        uint8_t         op;
+	uint8_t         timestui;
+        uint32_t        btclock;
+	uint64_t        timestst;
+} __attribute__ ((packed)) mcap_md_sync_set_req;
+
+typedef struct {
+        uint8_t         op;
+	uint8_t         rc;
+        uint32_t        btclock;
+	uint64_t        timestst;
+	uint16_t        timestsa;
+} __attribute__ ((packed)) mcap_md_sync_set_rsp;
+
+typedef struct {
+        uint8_t         op;
+        uint32_t        btclock;
+	uint64_t        timestst;
+	uint16_t        timestsa;
+} __attribute__ ((packed)) mcap_md_sync_info_ind;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MCAP_H */
diff --git a/mcap/mcap_internal.h b/mcap/mcap_internal.h
new file mode 100644
index 0000000..2ebad29
--- /dev/null
+++ b/mcap/mcap_internal.h
@@ -0,0 +1,118 @@
+/*
+ *
+ *  MCAP for BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2010 GSyC/LibreSoft, Universidad Rey Juan Carlos.
+ *
+ *  Authors:
+ *  Santiago Carot-Nemesio <sancane at gmail.com>
+ *  Jose Antonio Santos-Cadenas <santoscadenas at gmail.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifndef __MCAP_INTERNAL_H
+#define __MCAP_INTERNAL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+	MCL_CONNECTED,
+	MCL_PENDING,
+	MCL_ACTIVE,
+	MCL_IDLE
+} MCLState;
+
+typedef enum {
+	MCL_ACCEPTOR,
+	MCL_INITIATOR,
+} MCLRole;
+
+typedef enum {
+	MCL_AVAILABLE,
+	MCL_WAITING_RSP,
+} MCAPCtrl;
+
+typedef enum {
+	MDL_WAITING,
+	MDL_CONNECTED,
+	MDL_DELETING,
+	MDL_CLOSED,
+} MDLState;
+
+struct mcap_mdl_cb {
+	mcap_mdl_event_cb 		mdl_connected;	/* Remote device has created a MDL */
+	mcap_mdl_event_cb 		mdl_closed;	/* Remote device has closed a MDL */
+	mcap_mdl_event_cb 		mdl_deleted;	/* Remote device requested deleting a MDL */
+	mcap_mdl_event_cb		mdl_aborted;	/* Remote device aborted the mdl creation */
+	mcap_remote_mdl_conn_req_cb	mdl_conn_req;	/* Remote deive requested creating a MDL */
+	mcap_remote_mdl_reconn_req_cb 	mdl_reconn_req;	/* Remote device requested reconnecting a MDL */
+	gpointer			user_data;	/* User data */
+};
+
+struct mcap_session {
+	bdaddr_t			src;			/* Source address */
+	GIOChannel			*ccio;			/* Control Channel IO */
+	GIOChannel			*dcio;			/* Data Channel IO */
+	GSList				*mcls;			/* MCAP session list */
+	GSList				*cached;		/* List with all cached MCLs (MAX_CACHED macro) */
+	BtIOSecLevel			sec;			/* Security level */
+	mcap_mcl_event_cb		mcl_connected_cb;	/* New MCL connected */
+	mcap_mcl_event_cb		mcl_reconnected_cb;	/* Old MCL has been reconnected */
+	mcap_mcl_event_cb		mcl_disconnected_cb;	/* MCL disconnected */
+	mcap_mcl_event_cb		mcl_uncached_cb;	/* MCL has been removed from MCAP cache */
+	gpointer			user_data;		/* Data to be provided in callbacks */
+};
+
+struct mcap_mcl {
+	struct mcap_session	*ms;		/* MCAP session where this MCL belongs */
+	bdaddr_t		addr;		/* Device address */
+	GIOChannel		*cc;		/* MCAP Control Channel IO */
+	guint			wid;		/* MCL Watcher id */
+	GSList			*mdls;		/* List of Data Channels shorted by mdlid */
+	MCLState		state;		/* Current MCL State */
+	MCLRole			role;		/* Initiator or acceptor of this MCL */
+	MCAPCtrl		req;		/* Request control flag */
+	void			*priv_data;	/* Temporal data to manage in responses */
+	struct mcap_mdl_cb	*cb;		/* MDL callbacks */
+	guint			tid;		/* Timer id for waiting for a response */
+	uint8_t			*lcmd;		/* Last command sent */
+	guint			ref;		/* References counter */
+	uint8_t			ctrl;		/* MCL control flag */
+};
+
+#define	MCAP_CTRL_CACHED	0x01	/* MCL is cached */
+#define	MCAP_CTRL_STD_OP	0x02	/* Support for standard op codes */
+#define	MCAP_CTRL_SYNC_OP	0x04	/* Support for synchronization commands */
+#define	MCAP_CTRL_CONN		0x08	/* MCL is in connecting process */
+#define	MCAP_CTRL_FREE		0x10	/* MCL is marked as releasable */
+#define	MCAP_CTRL_NOCACHE	0x20	/* MCL is marked as not cacheable */
+
+struct mcap_mdl {
+	struct mcap_mcl		*mcl;		/* MCL where this MDL belongs */
+	GIOChannel		*dc;		/* MCAP Data Channel IO */
+	guint			wid;		/* MDL Watcher id */
+	uint16_t		mdlid;		/* MDL id */
+	uint8_t			mdep_id;	/* MCAP Data End Point */
+	MDLState		state;		/* MDL state */
+};
+
+int mcap_send_data(int sock, const uint8_t *buf, uint32_t size);
+void proc_sync_cmd(struct mcap_mcl *mcl, uint8_t *cmd, uint32_t len);
+
+#endif /* __MCAP_INTERNAL_H */
diff --git a/mcap/mcap_lib.h b/mcap/mcap_lib.h
new file mode 100644
index 0000000..6fed1be
--- /dev/null
+++ b/mcap/mcap_lib.h
@@ -0,0 +1,163 @@
+/*
+ *
+ *  MCAP for BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2010 GSyC/LibreSoft, Universidad Rey Juan Carlos.
+ *
+ *  Authors:
+ *  Santiago Carot-Nemesio <sancane at gmail.com>
+ *  Jose Antonio Santos-Cadenas <santoscadenas at gmail.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifndef __MCAP_LIB_H
+#define __MCAP_LIB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "adapter.h"
+
+#include <bluetooth/l2cap.h>
+#include "btio.h"
+
+typedef enum {
+/* MCAP Error Response Codes */
+	MCAP_ERROR_INVALID_OP_CODE = 1,
+	MCAP_ERROR_INVALID_PARAM_VALUE,
+	MCAP_ERROR_INVALID_MDEP,
+	MCAP_ERROR_MDEP_BUSY,
+	MCAP_ERROR_INVALID_MDL,
+	MCAP_ERROR_MDL_BUSY,
+	MCAP_ERROR_INVALID_OPERATION,
+	MCAP_ERROR_RESOURCE_UNAVAILABLE,
+	MCAP_ERROR_UNESPECIFIED_ERROR,
+	MCAP_ERROR_REQUEST_NOT_SUPPORTED,
+	MCAP_ERROR_CONFIGURATION_REJECTED,
+/* MCAP Internal Errors */
+	MCAP_ERROR_INVALID_ARGS,
+	MCAP_ERROR_ALREADY_EXISTS,
+	MCAP_ERROR_FAILED,
+} McapError;
+
+typedef enum {
+	MCAP_MDL_CB_INVALID,
+	MCAP_MDL_CB_CONNECTED,		/* mcap_mdl_event_cb */
+	MCAP_MDL_CB_CLOSED,		/* mcap_mdl_event_cb */
+	MCAP_MDL_CB_DELETED,		/* mcap_mdl_event_cb */
+	MCAP_MDL_CB_ABORTED,		/* mcap_mdl_event_cb */
+	MCAP_MDL_CB_REMOTE_CONN_REQ,	/* mcap_remote_mdl_conn_req_cb */
+	MCAP_MDL_CB_REMOTE_RECONN_REQ,	/* mcap_remote_mdl_reconn_req_cb */
+} McapMclCb;
+
+struct mcap_session;
+struct mcap_mcl;
+struct mcap_mdl;
+
+/************ Callbacks ************/
+
+/* mdl callbacks */
+
+typedef void (* mcap_mdl_event_cb) (struct mcap_mdl *mdl, gpointer data);
+typedef void (* mcap_mdl_operation_conf_cb) (struct mcap_mdl *mdl, uint8_t conf,
+						GError *err, gpointer data);
+typedef void (* mcap_mdl_operation_cb) (struct mcap_mdl *mdl, GError *err,
+						gpointer data);
+typedef void (* mcap_mdl_del_cb) (GError *err, gpointer data);
+
+/* Next function should return an MCAP appropiate response code */
+typedef uint8_t (* mcap_remote_mdl_conn_req_cb) (struct mcap_mcl *mcl,
+						uint8_t mdepid, uint16_t mdlid,
+						uint8_t *conf, gpointer data);
+typedef uint8_t (* mcap_remote_mdl_reconn_req_cb) (struct mcap_mdl *mdl,
+						gpointer data);
+
+/* mcl callbacks */
+
+typedef void (* mcap_mcl_event_cb) (struct mcap_mcl *mcl, gpointer data);
+typedef void (* mcap_mcl_connect_cb) (struct mcap_mcl *mcl, GError *err,
+								gpointer data);
+
+/************ Operations ************/
+
+/* Mdl operations*/
+
+void mcap_req_mdl_creation(struct mcap_mcl *mcl,
+				uint8_t mdepid,
+				uint8_t conf,
+				GError **err,
+				mcap_mdl_operation_conf_cb connect_cb,
+				gpointer user_data);
+void mcap_req_mdl_reconnect(struct mcap_mdl *mdl, GError **err,
+				mcap_mdl_operation_cb reconnect_cb,
+				gpointer user_data);
+void mcap_req_mdl_delete_all(struct mcap_mcl *mcl, GError **err,
+			mcap_mdl_del_cb delete_cb, gpointer user_data);
+void mcap_req_mdl_deletion(struct mcap_mdl *mdl, GError **err,
+			mcap_mdl_del_cb delete_cb, gpointer user_data);
+void mcap_mdl_connect(struct mcap_mdl *mdl,
+			BtIOType BtType,
+			uint16_t dcpsm,
+			GError **err,
+			mcap_mdl_operation_cb connect_cb,
+			gpointer user_data);
+void mcap_mdl_abort(struct mcap_mdl *mdl, GError **err,
+			mcap_mdl_del_cb abort_cb, gpointer user_data);
+
+int mcap_mdl_get_fd(struct mcap_mdl *mdl);
+uint16_t mcap_mdl_get_mdlid(struct mcap_mdl *mdl);
+
+/* Mcl operations*/
+
+void mcap_create_mcl(struct mcap_session *ms,
+				const bdaddr_t *addr,
+				uint16_t ccpsm,
+				GError **err,
+				mcap_mcl_connect_cb connect_cb,
+				gpointer user_data);
+void mcap_close_mcl(struct mcap_mcl *mcl, gboolean cache);
+void mcap_mcl_set_cb(struct mcap_mcl *mcl, GError **gerr,
+					gpointer user_data, McapMclCb cb1, ...);
+bdaddr_t mcap_mcl_get_addr(struct mcap_mcl *mcl);
+
+struct mcap_mcl *mcap_mcl_ref(struct mcap_mcl *mcl);
+void mcap_mcl_unref(struct mcap_mcl *mcl);
+
+/* MCAP main operations */
+
+struct mcap_session *mcap_create_session(struct btd_adapter *btd_adapter,
+					BtIOSecLevel sec, uint16_t ccpsm,
+					uint16_t dcpsm,
+					GError **gerr,
+					mcap_mcl_event_cb mcl_connected,
+					mcap_mcl_event_cb mcl_reconnected,
+					mcap_mcl_event_cb mcl_disconnected,
+					mcap_mcl_event_cb mcl_uncached,
+					gpointer user_data);
+
+void mcap_close_session(struct mcap_session *ms);
+
+uint16_t mcap_get_ctrl_psm(struct mcap_session *ms, GError **err);
+uint16_t mcap_get_data_psm(struct mcap_session *ms, GError **err);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MCAP_LIB_H */
+
-- 
1.6.3.3


^ permalink raw reply related

* Re: [PATCH 26/26] Fix typo errors
From: Johan Hedberg @ 2010-05-11  9:19 UTC (permalink / raw)
  To: Santiago Carot-Nemesio; +Cc: linux-bluetooth
In-Reply-To: <1273566123-2198-1-git-send-email-sancane@gmail.com>

Hi,

On Tue, May 11, 2010, Santiago Carot-Nemesio wrote:
>  mcap/mcap_internal.h |   28 ++++++++++++++--------------
>  1 files changed, 14 insertions(+), 14 deletions(-)

If possible, it'd be better if you just fix this in the original patch
that introduced the typos instead of adding yet another patch
(especially since nothing has been pushed upstream yet).

Johan

^ permalink raw reply

* [PATCH v2] ath3k: add support for new firmware
From: suraj @ 2010-05-11  9:04 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: dwmw2, Luis.Rodriguez, Jothikumar.Mothilal, marcel, vkandukuri
In-Reply-To: <1272356922.1393.14.camel@atheros013-desktop>

New firmware has few critical bug fixes and shared antenna support.

Signed-off-by: Vikram Kandukuri <vkandukuri@atheros.com>
---
 drivers/bluetooth/ath3k.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
index 128cae4..7bda549 100644
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
@@ -122,9 +122,12 @@ static int ath3k_probe(struct usb_interface *intf,
 
 	data->udev = udev;
 
-	if (request_firmware(&firmware, "ath3k-1.fw", &udev->dev) < 0) {
-		kfree(data);
-		return -EIO;
+	if (request_firmware(&firmware, "ath3k-2.fw", &udev->dev) < 0) {
+		BT_DBG("requesting old firmware");
+		if (request_firmware(&firmware, "ath3k-1.fw", &udev->dev) < 0) {
+			kfree(data);
+			return -EIO;
+		}
 	}
 
 	size = max_t(uint, firmware->size, 4096);
-- 
1.7.0

^ permalink raw reply related

* Re: [PATCH v5] Add support for the Atheros AR300x Bluetooth Chip
From: suraj @ 2010-05-11  8:29 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: marcel, Luis.Rodriguez, Jothikumar.Mothilal, gfpadovan
In-Reply-To: <1273062798.19162.6.camel@atheros013-desktop>

Hi marcel,

On Wed, 2010-05-05 at 18:03 +0530, suraj wrote:
> Hi Marcel,
> 
> Can you take a look at the patch? Your review has been pending for
> sometime.
> 
> On Mon, 2010-04-26 at 16:30 +0530, suraj wrote:
> > Hi marcel,
> > 
> > On Thu, 2010-04-22 at 14:40 +0530, suraj wrote:
> > > This implements the Atheros Bluetooth serial protocol to
> > > support the AR300x Bluetooth chipsets.
> > > The serial protocol implements enhanced power management
> > > features for the AR300x chipsets. 
> > > 
> > > Reviewed-by: Luis R. Rodriguez <lrodriguez@atheros.com>
> > > Reviewed-by: Gustavo F. Padovan <gustavo@padovan.org>
> > > Signed-off-by: Suraj <suraj@atheros.com>
> > > 
> > > ---
> > >  drivers/bluetooth/Kconfig     |   14 ++
> > >  drivers/bluetooth/Makefile    |    1 +
> > >  drivers/bluetooth/hci_ath.c   |  378 +++++++++++++++++++++++++++++++++++++++++
> > >  drivers/bluetooth/hci_ldisc.c |    6 +
> > >  drivers/bluetooth/hci_uart.h  |    8 +-
> > >  5 files changed, 406 insertions(+), 1 deletions(-)
> > >  create mode 100755 drivers/bluetooth/hci_ath.c
> > > 
> > Can you verify the patch let me know your comments? 
> > 
> > Regards
> > Suraj
> > 
> 
> 

your review has been pending for a long time. Please let me know what
should be done regarding this.

Regards
Suraj

^ permalink raw reply

* [PATCH 26/26] Fix typo errors
From: Santiago Carot-Nemesio @ 2010-05-11  8:22 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Santiago Carot-Nemesio
In-Reply-To: <1273486527-7855-25-git-send-email-sancane@gmail.com>

---
 mcap/mcap_internal.h |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/mcap/mcap_internal.h b/mcap/mcap_internal.h
index 1e9f521..2ebad29 100644
--- a/mcap/mcap_internal.h
+++ b/mcap/mcap_internal.h
@@ -56,13 +56,13 @@ typedef enum {
 } MDLState;
 
 struct mcap_mdl_cb {
-	mcap_mdl_event_cb 		mdl_connected;	/* Remote device has created a mdl */
-	mcap_mdl_event_cb 		mdl_closed;	/* Remote device has closed a mdl */
-	mcap_mdl_event_cb 		mdl_deleted;	/* Remote device deletion of a mdl */
+	mcap_mdl_event_cb 		mdl_connected;	/* Remote device has created a MDL */
+	mcap_mdl_event_cb 		mdl_closed;	/* Remote device has closed a MDL */
+	mcap_mdl_event_cb 		mdl_deleted;	/* Remote device requested deleting a MDL */
 	mcap_mdl_event_cb		mdl_aborted;	/* Remote device aborted the mdl creation */
-	mcap_remote_mdl_conn_req_cb	mdl_conn_req;	/* Remote deive requested a creation of a mdl */
-	mcap_remote_mdl_reconn_req_cb 	mdl_reconn_req;	/* Remote device requested reconnection of a mdl */
-	gpointer			user_data;	/* user data */
+	mcap_remote_mdl_conn_req_cb	mdl_conn_req;	/* Remote deive requested creating a MDL */
+	mcap_remote_mdl_reconn_req_cb 	mdl_reconn_req;	/* Remote device requested reconnecting a MDL */
+	gpointer			user_data;	/* User data */
 };
 
 struct mcap_session {
@@ -76,21 +76,21 @@ struct mcap_session {
 	mcap_mcl_event_cb		mcl_reconnected_cb;	/* Old MCL has been reconnected */
 	mcap_mcl_event_cb		mcl_disconnected_cb;	/* MCL disconnected */
 	mcap_mcl_event_cb		mcl_uncached_cb;	/* MCL has been removed from MCAP cache */
-	gpointer			user_data;		/* Data to be provided in a callbacks */
+	gpointer			user_data;		/* Data to be provided in callbacks */
 };
 
 struct mcap_mcl {
 	struct mcap_session	*ms;		/* MCAP session where this MCL belongs */
-	bdaddr_t		addr;		/* device address */
+	bdaddr_t		addr;		/* Device address */
 	GIOChannel		*cc;		/* MCAP Control Channel IO */
 	guint			wid;		/* MCL Watcher id */
 	GSList			*mdls;		/* List of Data Channels shorted by mdlid */
-	MCLState		state;		/* current MCL State */
-	MCLRole			role;		/* initiator or aceptor of this MCL*/
+	MCLState		state;		/* Current MCL State */
+	MCLRole			role;		/* Initiator or acceptor of this MCL */
 	MCAPCtrl		req;		/* Request control flag */
-	void			*priv_data;	/* Temporal data to manage responses */
+	void			*priv_data;	/* Temporal data to manage in responses */
 	struct mcap_mdl_cb	*cb;		/* MDL callbacks */
-	guint			tid;		/* Timer id for waiting for a resposne */
+	guint			tid;		/* Timer id for waiting for a response */
 	uint8_t			*lcmd;		/* Last command sent */
 	guint			ref;		/* References counter */
 	uint8_t			ctrl;		/* MCL control flag */
@@ -99,12 +99,12 @@ struct mcap_mcl {
 #define	MCAP_CTRL_CACHED	0x01	/* MCL is cached */
 #define	MCAP_CTRL_STD_OP	0x02	/* Support for standard op codes */
 #define	MCAP_CTRL_SYNC_OP	0x04	/* Support for synchronization commands */
-#define	MCAP_CTRL_CONN		0x08	/* MCL is in connectcting process */
+#define	MCAP_CTRL_CONN		0x08	/* MCL is in connecting process */
 #define	MCAP_CTRL_FREE		0x10	/* MCL is marked as releasable */
 #define	MCAP_CTRL_NOCACHE	0x20	/* MCL is marked as not cacheable */
 
 struct mcap_mdl {
-	struct mcap_mcl		*mcl;		/* MCAP mcl for this mdl */
+	struct mcap_mcl		*mcl;		/* MCL where this MDL belongs */
 	GIOChannel		*dc;		/* MCAP Data Channel IO */
 	guint			wid;		/* MDL Watcher id */
 	uint16_t		mdlid;		/* MDL id */
-- 
1.6.3.3


^ permalink raw reply related

* Re: magicmouse: claimed by neither input, hiddev nor hidraw
From: Justin P. Mattock @ 2010-05-11  8:01 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: Michael Poole, linux-bluetooth, Linux Kernel Mailing List
In-Reply-To: <alpine.LNX.2.00.1005110946520.28092@pobox.suse.cz>

here is dmesg with the:
[   27.435674] magicmouse 0005:05AC:030D.0004: claimed by neither input, 
hiddev nor hidraw
[   27.435686] magicmouse 0005:05AC:030D.0004: magicmouse hw start failed




[    0.000000] Linux version 2.6.33-00095-g28918c2 (name@name) (gcc 
version 4.4.2 (GCC) ) #19 SMP Tue May 11 00:49:25 PDT 2010
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz root=/dev/sda3 ro 
debug audit=1 selinux=1 vga=790 enforcing=0
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[    0.000000]  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000003f0ea000 (usable)
[    0.000000]  BIOS-e820: 000000003f0ea000 - 000000003f2eb000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000003f2eb000 - 000000003febe000 (ACPI data)
[    0.000000]  BIOS-e820: 000000003febe000 - 000000003feef000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000003feef000 - 000000003ff00000 (ACPI data)
[    0.000000]  BIOS-e820: 000000003ff00000 - 0000000040000000 (reserved)
[    0.000000]  BIOS-e820: 00000000f0000000 - 00000000f4000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed14000 - 00000000fed1a000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed1c000 - 00000000fed20000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ffe00000 - 0000000100000000 (reserved)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI 2.4 present.
[    0.000000] No AGP bridge found
[    0.000000] last_pfn = 0x3f0ea max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-CFFFF write-protect
[    0.000000]   D0000-DFFFF uncachable
[    0.000000]   E0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0FFE00000 mask FFFE00000 write-protect
[    0.000000]   1 base 000000000 mask FC0000000 write-back
[    0.000000]   2 base 03FF00000 mask FFFF00000 uncachable
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 
0x7010600070106
[    0.000000] initial memory mapped : 0 - 20000000
[    0.000000] init_memory_mapping: 0000000000000000-000000003f0ea000
[    0.000000]  0000000000 - 003f000000 page 2M
[    0.000000]  003f000000 - 003f0ea000 page 4k
[    0.000000] kernel direct mapping tables up to 3f0ea000 @ 8000-b000
[    0.000000] ACPI: RSDP 00000000000fe020 00024 (v02 APPLE )
[    0.000000] ACPI: XSDT 000000003fefd1c0 00074 (v01 APPLE   Apple00 
000000A5      01000013)
[    0.000000] ACPI: FACP 000000003fefb000 000F4 (v03 APPLE   Apple00 
000000A5 Loki 0000005F)
[    0.000000] ACPI: DSDT 000000003fef0000 048D1 (v01 APPLE  MacBookP 
00020002 INTL 20050309)
[    0.000000] ACPI: FACS 000000003fec0000 00040
[    0.000000] ACPI: HPET 000000003fefa000 00038 (v01 APPLE   Apple00 
00000001 Loki 0000005F)
[    0.000000] ACPI: APIC 000000003fef9000 00068 (v01 APPLE   Apple00 
00000001 Loki 0000005F)
[    0.000000] ACPI: MCFG 000000003fef8000 0003C (v01 APPLE   Apple00 
00000001 Loki 0000005F)
[    0.000000] ACPI: ASF! 000000003fef7000 000A0 (v32 APPLE   Apple00 
00000001 Loki 0000005F)
[    0.000000] ACPI: SBST 000000003fef6000 00030 (v01 APPLE   Apple00 
00000001 Loki 0000005F)
[    0.000000] ACPI: ECDT 000000003fef5000 00053 (v01 APPLE   Apple00 
00000001 Loki 0000005F)
[    0.000000] ACPI: SSDT 000000003feef000 004DC (v01 APPLE     CpuPm 
00003000 INTL 20050309)
[    0.000000] ACPI: SSDT 000000003febd000 0064F (v01 SataRe  SataPri 
00001000 INTL 20050309)
[    0.000000] ACPI: SSDT 000000003febc000 0069C (v01 SataRe  SataSec 
00001000 INTL 20050309)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] (7 early reservations) ==> bootmem [0000000000 - 003f0ea000]
[    0.000000]   #0 [0000000000 - 0000001000]   BIOS data page ==> 
[0000000000 - 0000001000]
[    0.000000]   #1 [0001000000 - 00017a36c8]    TEXT DATA BSS ==> 
[0001000000 - 00017a36c8]
[    0.000000]   #2 [000009fc00 - 0000100000]    BIOS reserved ==> 
[000009fc00 - 0000100000]
[    0.000000]   #3 [00017a4000 - 00017a4271]              BRK ==> 
[00017a4000 - 00017a4271]
[    0.000000]   #4 [0000001000 - 0000003000]       TRAMPOLINE ==> 
[0000001000 - 0000003000]
[    0.000000]   #5 [0000003000 - 0000007000]      ACPI WAKEUP ==> 
[0000003000 - 0000007000]
[    0.000000]   #6 [0000008000 - 0000009000]          PGTABLE ==> 
[0000008000 - 0000009000]
[    0.000000]  [ffffea0000000000-ffffea0000dfffff] PMD -> 
[ffff880001c00000-ffff8800029fffff] on node 0
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000000 -> 0x00001000
[    0.000000]   DMA32    0x00001000 -> 0x00100000
[    0.000000]   Normal   0x00100000 -> 0x00100000
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[2] active PFN ranges
[    0.000000]     0: 0x00000000 -> 0x0000009f
[    0.000000]     0: 0x00000100 -> 0x0003f0ea
[    0.000000] On node 0 totalpages: 258185
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 104 pages reserved
[    0.000000]   DMA zone: 3839 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 3476 pages used for memmap
[    0.000000]   DMA32 zone: 250710 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 
0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] SMP: Allowing 2 CPUs, 0 hotplug CPUs
[    0.000000] nr_irqs_gsi: 24
[    0.000000] PM: Registered nosave memory: 000000000009f000 - 
00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 
00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 
0000000000100000
[    0.000000] Allocating PCI resources starting at 40000000 (gap: 
40000000:b0000000)
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] setup_percpu: NR_CPUS:2 nr_cpumask_bits:2 nr_cpu_ids:2 
nr_node_ids:1
[    0.000000] PERCPU: Embedded 30 pages/cpu @ffff880001800000 s91096 
r8192 d23592 u1048576
[    0.000000] pcpu-alloc: s91096 r8192 d23592 u1048576 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on. 
Total pages: 254549
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz 
root=/dev/sda3 ro debug audit=1 selinux=1 vga=790 enforcing=0
[    0.000000] audit: enabled (after initialization)
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 
1048576 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 
bytes)
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Memory: 1007964k/1033128k available (3997k kernel code, 
388k absent, 24084k reserved, 2503k data, 504k init)
[    0.000000] SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, 
CPUs=2, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS:320
[    0.000000] Extended CMOS year: 2000
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] hpet clockevent registered
[    0.000000] Fast TSC calibration failed
[    0.000000] TSC: Unable to calibrate against PIT
[    0.000000] TSC: using HPET reference calibration
[    0.000000] Detected 2161.241 MHz processor.
[    0.004007] Calibrating delay loop (skipped), value calculated using 
timer frequency.. 4322.48 BogoMIPS (lpj=2161241)
[    0.004080] Security Framework initialized
[    0.004091] SELinux:  Initializing.
[    0.004123] SELinux:  Starting in permissive mode
[    0.004142] Mount-cache hash table entries: 256
[    0.005619] CPU: Physical Processor ID: 0
[    0.005624] CPU: Processor Core ID: 0
[    0.005630] mce: CPU supports 6 MCE banks
[    0.005655] CPU0: Thermal monitoring enabled (TM2)
[    0.005662] using mwait in idle threads.
[    0.005667] Performance Events: Core2 events, Intel PMU driver.
[    0.005677] ... version:                2
[    0.005682] ... bit width:              40
[    0.005686] ... generic registers:      2
[    0.005691] ... value mask:             000000ffffffffff
[    0.005696] ... max period:             000000007fffffff
[    0.005701] ... fixed-purpose events:   3
[    0.005706] ... event mask:             0000000700000003
[    0.006919] ACPI: Core revision 20091214
[    0.030203] Setting APIC routing to flat
[    0.030591] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.040636] CPU0: Intel(R) Core(TM)2 CPU         T7400  @ 2.16GHz 
stepping 06
[    0.040999] Booting Node   0, Processors  #1 Ok.
[    0.112042] Brought up 2 CPUs
[    0.112051] Total of 2 processors activated (8644.79 BogoMIPS).
[    0.114299] NET: Registered protocol family 16
[    0.116077] ACPI: bus type pci registered
[    0.116172] PCI: Using configuration type 1 for base access
[    0.132295] bio: create slab <bio-0> at 0
[    0.135069] ACPI: EC: EC description table is found, configuring boot EC
[    0.143361] ACPI: BIOS _OSI(Linux) query ignored
[    0.144603] ACPI: Interpreter enabled
[    0.144611] ACPI: (supports S0 S3 S4 S5)
[    0.144715] ACPI: Using IOAPIC for interrupt routing
[    0.178270] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    0.180074] ACPI: No dock devices found.
[    0.183463] ACPI: PCI Root Bridge [PCI0] (0000:00)
[    0.183584] pci_root PNP0A08:00: ignoring host bridge windows from 
ACPI; boot with "pci=use_crs" to use them
[    0.188651] pci_root PNP0A08:00: host bridge window [io 
0x0000-0x0cf7] (ignored)
[    0.188660] pci_root PNP0A08:00: host bridge window [io 
0x0d00-0xffff] (ignored)
[    0.188669] pci_root PNP0A08:00: host bridge window [mem 
0x000a0000-0x000bffff] (ignored)
[    0.188679] pci_root PNP0A08:00: host bridge window [mem 
0x40000000-0xfebfffff] (ignored)
[    0.188786] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.188793] pci 0000:00:01.0: PME# disabled
[    0.188831] pci 0000:00:07.0: reg 10: [mem 0x50404000-0x50404fff]
[    0.188933] pci 0000:00:1b.0: reg 10: [mem 0x50400000-0x50403fff 64bit]
[    0.189004] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.189012] pci 0000:00:1b.0: PME# disabled
[    0.189118] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.189127] pci 0000:00:1c.0: PME# disabled
[    0.189236] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.189244] pci 0000:00:1c.1: PME# disabled
[    0.189353] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[    0.189362] pci 0000:00:1c.2: PME# disabled
[    0.189437] pci 0000:00:1d.0: reg 20: [io  0x4080-0x409f]
[    0.189510] pci 0000:00:1d.1: reg 20: [io  0x4060-0x407f]
[    0.189583] pci 0000:00:1d.2: reg 20: [io  0x4040-0x405f]
[    0.189664] pci 0000:00:1d.3: reg 20: [io  0x4020-0x403f]
[    0.189735] pci 0000:00:1d.7: reg 10: [mem 0x50405400-0x504057ff]
[    0.189803] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
[    0.189812] pci 0000:00:1d.7: PME# disabled
[    0.189992] pci 0000:00:1f.0: quirk: [io  0x0400-0x047f] claimed by 
ICH6 ACPI/GPIO/TCO
[    0.190004] pci 0000:00:1f.0: quirk: [io  0x0500-0x053f] claimed by 
ICH6 GPIO
[    0.190012] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 
0680 (mask 000f)
[    0.190022] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 
1640 (mask 000f)
[    0.190035] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 4 PIO at 
0300 (mask 001f)
[    0.190132] pci 0000:00:1f.1: reg 10: [io  0x40d8-0x40df]
[    0.190144] pci 0000:00:1f.1: reg 14: [io  0x40ec-0x40ef]
[    0.190155] pci 0000:00:1f.1: reg 18: [io  0x40d0-0x40d7]
[    0.190166] pci 0000:00:1f.1: reg 1c: [io  0x40e8-0x40eb]
[    0.190177] pci 0000:00:1f.1: reg 20: [io  0x40b0-0x40bf]
[    0.190238] pci 0000:00:1f.2: reg 10: [io  0x40c8-0x40cf]
[    0.190250] pci 0000:00:1f.2: reg 14: [io  0x40e4-0x40e7]
[    0.190261] pci 0000:00:1f.2: reg 18: [io  0x40c0-0x40c7]
[    0.190272] pci 0000:00:1f.2: reg 1c: [io  0x40e0-0x40e3]
[    0.190283] pci 0000:00:1f.2: reg 20: [io  0x40a0-0x40af]
[    0.190295] pci 0000:00:1f.2: reg 24: [mem 0x50405000-0x504053ff]
[    0.190329] pci 0000:00:1f.2: PME# supported from D3hot
[    0.190337] pci 0000:00:1f.2: PME# disabled
[    0.190407] pci 0000:00:1f.3: reg 20: [io  0xefa0-0xefbf]
[    0.190485] pci 0000:01:00.0: reg 10: [mem 0x40000000-0x47ffffff pref]
[    0.190497] pci 0000:01:00.0: reg 14: [io  0x3000-0x30ff]
[    0.190509] pci 0000:01:00.0: reg 18: [mem 0x50300000-0x5030ffff]
[    0.190531] pci 0000:01:00.0: reg 30: [mem 0xfffe0000-0xffffffff pref]
[    0.190561] pci 0000:01:00.0: supports D1 D2
[    0.190626] pci 0000:00:01.0: PCI bridge to [bus 01-01]
[    0.190633] pci 0000:00:01.0:   bridge window [io  0x3000-0x3fff]
[    0.190640] pci 0000:00:01.0:   bridge window [mem 0x50300000-0x503fffff]
[    0.190649] pci 0000:00:01.0:   bridge window [mem 
0x40000000-0x47ffffff 64bit pref]
[    0.190723] pci 0000:02:00.0: reg 10: [mem 0x50200000-0x50203fff 64bit]
[    0.190738] pci 0000:02:00.0: reg 18: [io  0x2000-0x20ff]
[    0.190777] pci 0000:02:00.0: reg 30: [mem 0xfffe0000-0xffffffff pref]
[    0.190836] pci 0000:02:00.0: supports D1 D2
[    0.190841] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.190851] pci 0000:02:00.0: PME# disabled
[    0.190918] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.190926] pci 0000:00:1c.0:   bridge window [io  0x2000-0x2fff]
[    0.190935] pci 0000:00:1c.0:   bridge window [mem 0x50200000-0x502fffff]
[    0.191017] pci 0000:03:00.0: reg 10: [mem 0x50100000-0x5010ffff 64bit]
[    0.191114] pci 0000:03:00.0: supports D1
[    0.191119] pci 0000:03:00.0: PME# supported from D0 D1 D3hot
[    0.191129] pci 0000:03:00.0: PME# disabled
[    0.191205] pci 0000:00:1c.1: PCI bridge to [bus 03-03]
[    0.191216] pci 0000:00:1c.1:   bridge window [mem 0x50100000-0x501fffff]
[    0.191291] pci 0000:00:1c.2: PCI bridge to [bus 04-0b]
[    0.191299] pci 0000:00:1c.2:   bridge window [io  0x1000-0x1fff]
[    0.191308] pci 0000:00:1c.2:   bridge window [mem 0x4c100000-0x500fffff]
[    0.191320] pci 0000:00:1c.2:   bridge window [mem 
0x48000000-0x4bffffff 64bit pref]
[    0.191385] pci 0000:0c:03.0: reg 10: [mem 0x4c004000-0x4c0047ff]
[    0.191398] pci 0000:0c:03.0: reg 14: [mem 0x4c000000-0x4c003fff]
[    0.191466] pci 0000:0c:03.0: supports D1 D2
[    0.191471] pci 0000:0c:03.0: PME# supported from D0 D1 D2 D3hot
[    0.191481] pci 0000:0c:03.0: PME# disabled
[    0.191548] pci 0000:00:1e.0: PCI bridge to [bus 0c-0c] (subtractive 
decode)
[    0.191560] pci 0000:00:1e.0:   bridge window [mem 0x4c000000-0x4c0fffff]
[    0.191599] pci_bus 0000:00: on NUMA node 0
[    0.191610] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.192869] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEGP._PRT]
[    0.193290] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.193699] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
[    0.194113] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP03._PRT]
[    0.194586] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT]
[    0.228230] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 
14 15) *11
[    0.228564] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 *11 12 
14 15)
[    0.228902] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 
14 15) *11
[    0.229239] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 *11 12 
14 15)
[    0.229568] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 
14 15) *0, disabled.
[    0.229907] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 
14 15) *0, disabled.
[    0.230249] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 *10 12 
14 15)
[    0.230581] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *11 12 14 15)
[    0.231100] vgaarb: device added: 
PCI:0000:01:00.0,decodes=io+mem,owns=io+mem,locks=none
[    0.231100] vgaarb: loaded
[    0.232081] SCSI subsystem initialized
[    0.232081] libata version 3.00 loaded.
[    0.232110] usbcore: registered new interface driver usbfs
[    0.232110] usbcore: registered new interface driver hub
[    0.233021] usbcore: registered new device driver usb
[    0.233096] PCI: Using ACPI for IRQ routing
[    0.233096] PCI: pci_cache_line_size set to 64 bytes
[    0.234251] cfg80211: Calling CRDA to update world regulatory domain
[    0.235029] NetLabel: Initializing
[    0.235029] NetLabel:  domain hash size = 128
[    0.235029] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.235071] NetLabel:  unlabeled traffic allowed by default
[    0.235082] HPET: 3 timers in total, 0 timers will be used for 
per-cpu timer
[    0.235093] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[    0.235101] hpet0: 3 comparators, 64-bit 14.318180 MHz counter
[    0.238007] Switching to clocksource tsc
[    0.249831] pnp: PnP ACPI init
[    0.249886] ACPI: bus type pnp registered
[    0.256306] pnp 00:07: disabling [io  0x1640-0x164f] because it 
overlaps 0000:00:1c.2 BAR 7 [io  0x1000-0x1fff]
[    0.261321] pnp: PnP ACPI: found 9 devices
[    0.261327] ACPI: ACPI bus type pnp unregistered
[    0.261347] system 00:01: [mem 0xf0000000-0xf3ffffff] has been reserved
[    0.261356] system 00:01: [mem 0xfed14000-0xfed17fff] has been reserved
[    0.261363] system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.261371] system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.261379] system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.261387] system 00:01: [mem 0xfed20000-0xfed8ffff] has been reserved
[    0.261401] system 00:05: [mem 0xfed00000-0xfed003ff] has been reserved
[    0.261415] system 00:07: [io  0x0680-0x06ef] has been reserved
[    0.261423] system 00:07: [io  0x0800-0x080f] has been reserved
[    0.261430] system 00:07: [io  0x0810-0x0817] has been reserved
[    0.261437] system 00:07: [io  0x0400-0x047f] has been reserved
[    0.261445] system 00:07: [io  0x0500-0x053f] has been reserved
[    0.267603] pci 0000:01:00.0: no compatible bridge window for [mem 
0xfffe0000-0xffffffff pref]
[    0.267615] pci 0000:02:00.0: no compatible bridge window for [mem 
0xfffe0000-0xffffffff pref]
[    0.267679] pci 0000:00:1c.0: BAR 9: assigned [mem 
0x50500000-0x506fffff pref]
[    0.267689] pci 0000:00:1c.1: BAR 9: assigned [mem 
0x50700000-0x508fffff 64bit pref]
[    0.267699] pci 0000:00:1c.1: BAR 7: assigned [io  0x5000-0x5fff]
[    0.267707] pci 0000:01:00.0: BAR 6: assigned [mem 
0x50320000-0x5033ffff pref]
[    0.267716] pci 0000:00:01.0: PCI bridge to [bus 01-01]
[    0.267722] pci 0000:00:01.0:   bridge window [io  0x3000-0x3fff]
[    0.267730] pci 0000:00:01.0:   bridge window [mem 0x50300000-0x503fffff]
[    0.267738] pci 0000:00:01.0:   bridge window [mem 
0x40000000-0x47ffffff 64bit pref]
[    0.267750] pci 0000:02:00.0: BAR 6: assigned [mem 
0x50500000-0x5051ffff pref]
[    0.267759] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.267766] pci 0000:00:1c.0:   bridge window [io  0x2000-0x2fff]
[    0.267776] pci 0000:00:1c.0:   bridge window [mem 0x50200000-0x502fffff]
[    0.267785] pci 0000:00:1c.0:   bridge window [mem 
0x50500000-0x506fffff pref]
[    0.267798] pci 0000:00:1c.1: PCI bridge to [bus 03-03]
[    0.267805] pci 0000:00:1c.1:   bridge window [io  0x5000-0x5fff]
[    0.267815] pci 0000:00:1c.1:   bridge window [mem 0x50100000-0x501fffff]
[    0.267824] pci 0000:00:1c.1:   bridge window [mem 
0x50700000-0x508fffff 64bit pref]
[    0.267838] pci 0000:00:1c.2: PCI bridge to [bus 04-0b]
[    0.267845] pci 0000:00:1c.2:   bridge window [io  0x1000-0x1fff]
[    0.267855] pci 0000:00:1c.2:   bridge window [mem 0x4c100000-0x500fffff]
[    0.267864] pci 0000:00:1c.2:   bridge window [mem 
0x48000000-0x4bffffff 64bit pref]
[    0.267878] pci 0000:00:1e.0: PCI bridge to [bus 0c-0c]
[    0.267883] pci 0000:00:1e.0:   bridge window [io  disabled]
[    0.267893] pci 0000:00:1e.0:   bridge window [mem 0x4c000000-0x4c0fffff]
[    0.267901] pci 0000:00:1e.0:   bridge window [mem pref disabled]
[    0.267928] pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    0.267936] pci 0000:00:01.0: setting latency timer to 64
[    0.267951] pci 0000:00:1c.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[    0.267960] pci 0000:00:1c.0: setting latency timer to 64
[    0.267974] pci 0000:00:1c.1: PCI INT B -> GSI 16 (level, low) -> IRQ 16
[    0.267983] pci 0000:00:1c.1: setting latency timer to 64
[    0.267998] pci 0000:00:1c.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    0.268007] pci 0000:00:1c.2: setting latency timer to 64
[    0.268183] pci 0000:00:1e.0: power state changed by ACPI to D0
[    0.268194] pci 0000:00:1e.0: setting latency timer to 64
[    0.268202] pci_bus 0000:00: resource 0 [io  0x0000-0xffff]
[    0.268208] pci_bus 0000:00: resource 1 [mem 
0x00000000-0xffffffffffffffff]
[    0.268215] pci_bus 0000:01: resource 0 [io  0x3000-0x3fff]
[    0.268220] pci_bus 0000:01: resource 1 [mem 0x50300000-0x503fffff]
[    0.268227] pci_bus 0000:01: resource 2 [mem 0x40000000-0x47ffffff 
64bit pref]
[    0.268235] pci_bus 0000:02: resource 0 [io  0x2000-0x2fff]
[    0.268241] pci_bus 0000:02: resource 1 [mem 0x50200000-0x502fffff]
[    0.268247] pci_bus 0000:02: resource 2 [mem 0x50500000-0x506fffff pref]
[    0.268253] pci_bus 0000:03: resource 0 [io  0x5000-0x5fff]
[    0.268258] pci_bus 0000:03: resource 1 [mem 0x50100000-0x501fffff]
[    0.268264] pci_bus 0000:03: resource 2 [mem 0x50700000-0x508fffff 
64bit pref]
[    0.268273] pci_bus 0000:04: resource 0 [io  0x1000-0x1fff]
[    0.268278] pci_bus 0000:04: resource 1 [mem 0x4c100000-0x500fffff]
[    0.268285] pci_bus 0000:04: resource 2 [mem 0x48000000-0x4bffffff 
64bit pref]
[    0.268293] pci_bus 0000:0c: resource 1 [mem 0x4c000000-0x4c0fffff]
[    0.268299] pci_bus 0000:0c: resource 3 [io  0x0000-0xffff]
[    0.268305] pci_bus 0000:0c: resource 4 [mem 
0x00000000-0xffffffffffffffff]
[    0.268344] NET: Registered protocol family 2
[    0.268447] IP route cache hash table entries: 32768 (order: 6, 
262144 bytes)
[    0.269006] TCP established hash table entries: 131072 (order: 9, 
2097152 bytes)
[    0.270072] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes)
[    0.271493] TCP: Hash tables configured (established 131072 bind 65536)
[    0.271502] TCP reno registered
[    0.271515] UDP hash table entries: 512 (order: 3, 49152 bytes)
[    0.271555] UDP-Lite hash table entries: 512 (order: 3, 49152 bytes)
[    0.271820] NET: Registered protocol family 1
[    0.272046] pci 0000:01:00.0: Boot video device
[    0.272069] PCI: CLS mismatch (256 != 64), using 64 bytes
[    0.276213] microcode: CPU0 sig=0x6f6, pf=0x20, revision=0xc7
[    0.276228] microcode: CPU1 sig=0x6f6, pf=0x20, revision=0xc7
[    0.276371] microcode: Microcode Update Driver: v2.00 
<tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    0.278331] Initializing RT-Tester: OK
[    0.278488] audit: initializing netlink socket (enabled)
[    0.278520] type=2000 audit(1273564311.277:1): initialized
[    0.289010] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    0.312491] ROMFS MTD (C) 2007 Red Hat, Inc.
[    0.312849] fuse init (API version 7.13)
[    0.313639] msgmni has been set to 1970
[    0.314039] SELinux:  Registering netfilter hooks
[    0.315444] alg: No test for stdrng (krng)
[    0.315473] io scheduler noop registered
[    0.316055] io scheduler cfq registered (default)
[    0.317292] vesafb: framebuffer at 0x40000000, mapped to 
0xffffc90000100000, using 3072k, total 3072k
[    0.317302] vesafb: mode is 1024x768x32, linelength=4096, pages=0
[    0.317308] vesafb: scrolling: redraw
[    0.317313] vesafb: Truecolor: size=0:8:8:8, shift=0:16:8:0
[    0.365593] Console: switching to colour frame buffer device 128x48
[    0.409799] fb0: VESA VGA frame buffer device
[    0.427032] Linux agpgart interface v0.103
[    0.430944] loop: module loaded
[    0.431433] input: Macintosh mouse button emulation as 
/devices/virtual/input/input0
[    0.433482] ata_piix 0000:00:1f.1: version 2.13
[    0.434018] ata_piix 0000:00:1f.1: power state changed by ACPI to D0
[    0.434600] ata_piix 0000:00:1f.1: PCI INT A -> GSI 18 (level, low) 
-> IRQ 18
[    0.435295] ata_piix 0000:00:1f.1: setting latency timer to 64
[    0.435933] scsi0 : ata_piix
[    0.437058] scsi1 : ata_piix
[    0.439950] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x40b0 
irq 14
[    0.440578] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x40b8 
irq 15
[    0.441243] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) 
-> IRQ 19
[    0.441974] ata_piix 0000:00:1f.2: MAP [ P0 P2 -- -- ]
[    0.592917] ata_piix 0000:00:1f.2: setting latency timer to 64
[    0.593624] scsi2 : ata_piix
[    0.594249] scsi3 : ata_piix
[    0.599362] ata3: SATA max UDMA/133 cmd 0x40c8 ctl 0x40e4 bmdma 
0x40a0 irq 19
[    0.606272] ata1.00: ATAPI: MATSHITADVD-R   UJ-857D, KCV9, max UDMA/66
[    0.612186] ata1.00: configured for UDMA/66
[    0.614239] scsi 0:0:0:0: CD-ROM            MATSHITA DVD-R   UJ-857D 
  KCV9 PQ: 0 ANSI: 5
[    0.618804] sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
[    0.618808] Uniform CD-ROM driver Revision: 3.20
[    0.619234] sr 0:0:0:0: Attached scsi CD-ROM sr0
[    0.619570] sr 0:0:0:0: Attached scsi generic sg0 type 5
[    0.672582] ata4: SATA max UDMA/133 cmd 0x40c0 ctl 0x40e0 bmdma 
0x40a8 irq 19
[    0.683734] usbcore: registered new interface driver usblcd
[    0.695028] usbcore: registered new interface driver usbled
[    0.706743] PNP: No PS/2 controller found. Probing ports directly.
[    0.719281] i8042.c: No controller found.
[    0.731646] mice: PS/2 mouse device common for all mice
[    0.744183] Linux video capture interface: v2.00
[    0.758609] device-mapper: ioctl: 4.16.0-ioctl (2009-11-05) 
initialised: dm-devel@redhat.com
[    0.772251] EDAC MC: Ver: 2.1.0 May 11 2010
[    0.786504] cpuidle: using governor ladder
[    0.800663] cpuidle: using governor menu
[    0.819254] usbcore: registered new interface driver hiddev
[    0.845104] usbcore: registered new interface driver usbhid
[    0.860799] usbhid: USB HID core driver
[    0.876015] oprofile: using NMI interrupt.
[    0.891376] ata3.01: ATA-8: FUJITSU MHW2120BH, 00810013, max UDMA/100
[    0.891695] IPVS: Registered protocols (TCP, AH, ESP)
[    0.891924] IPVS: Connection hash table configured (size=4096, 
memory=64Kbytes)
[    0.891971] IPVS: ipvs loaded.
[    0.892225] Initializing XFRM netlink socket
[    0.892244] NET: Registered protocol family 17
[    0.892301] NET: Registered protocol family 15
[    0.892303] lib80211: common routines for IEEE802.11 drivers
[    0.892306] lib80211_crypt: registered algorithm 'NULL'
[    0.892821] No TPM chip found, activating TPM-bypass!
[    1.047840] ata3.01: 234441648 sectors, multi 16: LBA48 NCQ (depth 0/32)
[    1.067656] ata3.01: configured for UDMA/100
[    1.083567] scsi 2:0:1:0: Direct-Access     ATA      FUJITSU MHW2120B 
0081 PQ: 0 ANSI: 5
[    1.100377] sd 2:0:1:0: [sda] 234441648 512-byte logical blocks: (120 
GB/111 GiB)
[    1.100545] sd 2:0:1:0: Attached scsi generic sg1 type 0
[    1.133413] sd 2:0:1:0: [sda] Write Protect is off
[    1.149624] sd 2:0:1:0: [sda] Mode Sense: 00 3a 00 00
[    1.165896] sd 2:0:1:0: [sda] Write cache: enabled, read cache: 
enabled, doesn't support DPO or FUA
[    1.182967]  sda: sda1 sda2 sda3 sda4
[    1.270559] sd 2:0:1:0: [sda] Attached SCSI disk
[    1.344159] EXT4-fs (sda3): mounted filesystem with ordered data mode
[    1.361097] VFS: Mounted root (ext4 filesystem) readonly on device 8:3.
[    1.378046] Freeing unused kernel memory: 504k freed
[    1.926899] SELinux: 8192 avtab hash slots, 175799 rules.
[    2.095133] SELinux: 8192 avtab hash slots, 175799 rules.
[    2.473851] SELinux:  7 users, 14 roles, 3026 types, 119 bools, 1 
sens, 256 cats
[    2.490458] SELinux:  77 classes, 175799 rules
[    2.517920] SELinux:  Completing initialization.
[    2.534250] SELinux:  Setting up existing superblocks.
[    2.550371] SELinux: initialized (dev sda3, type ext4), uses xattr
[    2.567134] SELinux: initialized (dev securityfs, type securityfs), 
uses genfs_contexts
[    2.583746] SELinux: initialized (dev selinuxfs, type selinuxfs), 
uses genfs_contexts
[    2.600372] SELinux: initialized (dev mqueue, type mqueue), uses 
transition SIDs
[    2.616955] SELinux: initialized (dev hugetlbfs, type hugetlbfs), 
uses transition SIDs
[    2.633622] SELinux: initialized (dev devpts, type devpts), uses 
transition SIDs
[    2.649964] SELinux: initialized (dev inotifyfs, type inotifyfs), 
uses genfs_contexts
[    2.666100] SELinux: initialized (dev anon_inodefs, type 
anon_inodefs), uses genfs_contexts
[    2.682442] SELinux: initialized (dev pipefs, type pipefs), uses task 
SIDs
[    2.698997] SELinux: initialized (dev debugfs, type debugfs), uses 
genfs_contexts
[    2.716410] SELinux: initialized (dev sockfs, type sockfs), uses task 
SIDs
[    2.733275] SELinux: initialized (dev tmpfs, type tmpfs), uses 
transition SIDs
[    2.750141] SELinux: initialized (dev proc, type proc), uses 
genfs_contexts
[    2.767070] SELinux: initialized (dev bdev, type bdev), uses 
genfs_contexts
[    2.783638] SELinux: initialized (dev rootfs, type rootfs), uses 
genfs_contexts
[    2.800155] SELinux: initialized (dev sysfs, type sysfs), uses 
genfs_contexts
[    2.837370] type=1403 audit(1273564313.837:2): policy loaded 
auid=4294967295 ses=4294967295
[    3.689816] usbcore: registered new interface driver uvcvideo
[    3.707461] USB Video Class driver (v0.1.0)
[    3.732724] applesmc: Apple MacBook Pro detected:
[    3.751037] applesmc:  - Model with accelerometer
[    3.769847] applesmc:  - Model with light sensors and backlight
[    3.788595] applesmc:  - Model with 12 temperature sensors
[    3.807926] applesmc: device has already been initialized (0xe0, 0x00).
[    3.807928] applesmc: device successfully initialized.
[    3.826909] applesmc: 2 fans found.
[    3.846517] input: applesmc as 
/devices/platform/applesmc.768/input/input1
[    3.865125] Registered led device: smc::kbd_backlight
[    3.883846] applesmc: driver successfully loaded.
[    3.914201] usbcore: registered new interface driver appletouch
[    3.953843] ACPI: SSDT 000000003feb8c10 002AE (v01 APPLE   Cpu0Ist 
00003000 INTL 20050309)
[    3.974371] ACPI: SSDT 000000003feb8910 002A0 (v01 APPLE   Cpu0Cst 
00003001 INTL 20050309)
[    3.994867] Monitor-Mwait will be used to enter C-1 state
[    3.994913] Monitor-Mwait will be used to enter C-2 state
[    3.994957] Monitor-Mwait will be used to enter C-3 state
[    3.994968] Marking TSC unstable due to TSC halts in idle
[    4.014243] Switching to clocksource hpet
[    4.016958] ACPI: SSDT 000000003feb8f10 00087 (v01 APPLE   Cpu1Ist 
00003000 INTL 20050309)
[    4.018244] ACPI: SSDT 000000003feb7f10 00085 (v01 APPLE   Cpu1Cst 
00003000 INTL 20050309)
[    4.130576] Bluetooth: Core ver 2.15
[    4.156847] NET: Registered protocol family 31
[    4.176676] Bluetooth: HCI device and connection manager initialized
[    4.196874] Bluetooth: HCI socket layer initialized
[    4.221076] Bluetooth: L2CAP ver 2.14
[    4.240644] Bluetooth: L2CAP socket layer initialized
[    4.270139] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    4.296119] Bluetooth: Generic Bluetooth USB driver ver 0.6
[    4.316286] usbcore: registered new interface driver btusb
[    4.357507] Bluetooth: RFCOMM TTY layer initialized
[    4.383453] Bluetooth: RFCOMM socket layer initialized
[    4.403365] Bluetooth: RFCOMM ver 1.11
[    4.429141] Bluetooth: HCI UART driver ver 2.2
[    4.448753] Bluetooth: HCI H4 protocol initialized
[    4.474685] Bluetooth: HCI BCSP protocol initialized
[    4.511455] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.531880] ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 23 (level, low) 
-> IRQ 23
[    4.552618] ehci_hcd 0000:00:1d.7: setting latency timer to 64
[    4.552622] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[    4.573402] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned 
bus number 1
[    4.594424] ehci_hcd 0000:00:1d.7: using broken periodic workaround
[    4.615250] ehci_hcd 0000:00:1d.7: debug port 1
[    4.639400] ehci_hcd 0000:00:1d.7: cache line size of 64 is not supported
[    4.639454] ehci_hcd 0000:00:1d.7: irq 23, io mem 0x50405400
[    4.668385] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[    4.694746] hub 1-0:1.0: USB hub found
[    4.714313] hub 1-0:1.0: 8 ports detected
[    4.739510] uhci_hcd: USB Universal Host Controller Interface driver
[    4.758513] uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) 
-> IRQ 23
[    4.777234] uhci_hcd 0000:00:1d.0: setting latency timer to 64
[    4.777239] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[    4.795119] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned 
bus number 2
[    4.813348] uhci_hcd 0000:00:1d.0: irq 23, io base 0x00004080
[    4.832039] hub 2-0:1.0: USB hub found
[    4.850074] hub 2-0:1.0: 2 ports detected
[    4.868308] uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) 
-> IRQ 19
[    4.886493] uhci_hcd 0000:00:1d.1: setting latency timer to 64
[    4.886497] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[    4.904293] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned 
bus number 3
[    4.922338] uhci_hcd 0000:00:1d.1: irq 19, io base 0x00004060
[    4.940626] hub 3-0:1.0: USB hub found
[    4.957767] hub 3-0:1.0: 2 ports detected
[    4.974696] uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) 
-> IRQ 18
[    4.991448] uhci_hcd 0000:00:1d.2: setting latency timer to 64
[    4.991452] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[    5.008039] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned 
bus number 4
[    5.024827] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00004040
[    5.042044] hub 4-0:1.0: USB hub found
[    5.058252] hub 4-0:1.0: 2 ports detected
[    5.074516] uhci_hcd 0000:00:1d.3: PCI INT D -> GSI 16 (level, low) 
-> IRQ 16
[    5.090776] uhci_hcd 0000:00:1d.3: setting latency timer to 64
[    5.090780] uhci_hcd 0000:00:1d.3: UHCI Host Controller
[    5.106837] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned 
bus number 5
[    5.123264] uhci_hcd 0000:00:1d.3: irq 16, io base 0x00004020
[    5.140224] hub 5-0:1.0: USB hub found
[    5.156436] hub 5-0:1.0: 2 ports detected
[    5.190290] usb 1-4: new high speed USB device using ehci_hcd and 
address 3
[    5.194416] ieee1394: raw1394: /dev/raw1394 device initialized
[    5.314194] alg: No test for cipher_null (cipher_null-generic)
[    5.358777] alg: No test for ecb(cipher_null) (ecb-cipher_null)
[    5.376514] alg: No test for digest_null (digest_null-generic)
[    5.394044] alg: No test for compress_null (compress_null-generic)
[    5.413146] uvcvideo: Found UVC 1.00 device Built-in iSight (05ac:8501)
[    5.433446] uvcvideo: UVC non compliance - GET_DEF(PROBE) not 
supported. Enabling workaround.
[    5.577940] SELinux: initialized (dev tmpfs, type tmpfs), uses 
transition SIDs
[    5.862068] usb 2-2: new full speed USB device using uhci_hcd and 
address 2
[    5.934341] udev: starting version 147
[    6.091059] input: Apple Computer Apple Internal Keyboard / Trackpad 
as /devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/input/input2
[    6.195742] apple 0003:05AC:021A.0001: input: USB HID v1.11 Keyboard 
[Apple Computer Apple Internal Keyboard / Trackpad] on 
usb-0000:00:1d.0-2/input0
[    6.197493] i801_smbus 0000:00:1f.3: PCI INT B -> GSI 19 (level, low) 
-> IRQ 19
[    6.197500] ACPI: I/O resource 0000:00:1f.3 [0xefa0-0xefbf] conflicts 
with ACPI region SMBI [0xefa0-0xefaf]
[    6.197502] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[    7.017921] input: Lid Switch as 
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input3
[    7.022182] sky2 driver version 1.26
[    7.022239] sky2 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    7.022255] sky2 0000:02:00.0: setting latency timer to 64
[    7.022297] sky2 0000:02:00.0: Yukon-2 EC chip revision 2
[    7.022423] sky2 0000:02:00.0: irq 24 for MSI/MSI-X
[    7.025070] sky2 eth0: addr 00:17:f2:cb:e3:71
[    7.027629] ohci1394 0000:0c:03.0: PCI INT A -> GSI 19 (level, low) 
-> IRQ 19
[    7.158316] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[19] 
MMIO=[4c004000-4c0047ff]  Max Packet=[4096]  IR/IT contexts=[4/8]
[    7.250215] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) 
-> IRQ 22
[    7.338005] ACPI: Lid Switch [LID0]
[    7.341490] HDA Intel 0000:00:1b.0: irq 25 for MSI/MSI-X
[    7.341548] HDA Intel 0000:00:1b.0: setting latency timer to 64
[    7.357595] appletouch: Geyser mode initialized.
[    7.357759] input: appletouch as 
/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.1/input/input4
[    7.363772] input: Apple Computer Apple Internal Keyboard / Trackpad 
as /devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.2/input/input5
[    7.363878] apple 0003:05AC:021A.0002: input: USB HID v1.11 Device 
[Apple Computer Apple Internal Keyboard / Trackpad] on 
usb-0000:00:1d.0-2/input2
[    7.518433] power_supply ADP1: uevent
[    7.518436] power_supply ADP1: No power supply yet
[    7.518467] power_supply ADP1: power_supply_changed
[    7.518472] ACPI: AC Adapter [ADP1] (on-line)
[    7.544264] power_supply ADP1: power_supply_changed_work
[    7.544267] power_supply ADP1: power_supply_update_gen_leds 1
[    7.544286] power_supply ADP1: uevent
[    7.544288] power_supply ADP1: POWER_SUPPLY_NAME=ADP1
[    7.544292] power_supply ADP1: Static prop TYPE=Mains
[    7.544296] power_supply ADP1: 1 dynamic props
[    7.544299] power_supply ADP1: prop ONLINE=1
[    7.613988] power_supply BAT0: uevent
[    7.613994] power_supply BAT0: No power supply yet
[    7.614137] power_supply BAT0: power_supply_changed
[    7.614149] power_supply BAT0: power_supply_changed_work
[    7.640451] power_supply BAT0: power_supply_update_bat_leds 0
[    7.640925] power_supply BAT0: uevent
[    7.640930] power_supply BAT0: POWER_SUPPLY_NAME=BAT0
[    7.640939] power_supply BAT0: Static prop TYPE=Battery
[    7.641023] power_supply BAT0: 13 dynamic props
[    7.641037] power_supply BAT0: prop STATUS=Unknown
[    7.641048] power_supply BAT0: prop PRESENT=1
[    7.641059] power_supply BAT0: prop TECHNOLOGY=Unknown
[    7.641068] power_supply BAT0: prop VOLTAGE_MIN_DESIGN=10800000
[    7.641079] power_supply BAT0: prop VOLTAGE_NOW=12481000
[    7.641087] power_supply BAT0: prop CURRENT_NOW=0
[    7.641095] power_supply BAT0: prop POWER_NOW=0
[    7.641103] power_supply BAT0: prop ENERGY_FULL_DESIGN=55000000
[    7.641114] power_supply BAT0: prop ENERGY_FULL=47360000
[    7.641122] power_supply BAT0: prop ENERGY_NOW=46810000
[    7.641131] power_supply BAT0: prop MODEL_NAME=ASMB012
[    7.641139] power_supply BAT0: prop MANUFACTURER=SMPN012
[    7.641147] power_supply BAT0: prop SERIAL_NUMBER=
[    7.641507] power_supply BAT0: uevent
[    7.641513] power_supply BAT0: POWER_SUPPLY_NAME=BAT0
[    7.641522] power_supply BAT0: Static prop TYPE=Battery
[    7.641530] power_supply BAT0: 13 dynamic props
[    7.641537] power_supply BAT0: prop STATUS=Unknown
[    7.641546] power_supply BAT0: prop PRESENT=1
[    7.641556] power_supply BAT0: prop TECHNOLOGY=Unknown
[    7.641566] power_supply BAT0: prop VOLTAGE_MIN_DESIGN=10800000
[    7.641578] power_supply BAT0: prop VOLTAGE_NOW=12481000
[    7.641587] power_supply BAT0: prop CURRENT_NOW=0
[    7.641596] power_supply BAT0: prop POWER_NOW=0
[    7.641606] power_supply BAT0: prop ENERGY_FULL_DESIGN=55000000
[    7.641616] power_supply BAT0: prop ENERGY_FULL=47360000
[    7.641626] power_supply BAT0: prop ENERGY_NOW=46810000
[    7.641636] power_supply BAT0: prop MODEL_NAME=ASMB012
[    7.641645] power_supply BAT0: prop MANUFACTURER=SMPN012
[    7.641655] power_supply BAT0: prop SERIAL_NUMBER=
[    7.663896] ACPI: Battery Slot [BAT0] (battery present)
[    7.698556] input: Power Button as 
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input6
[    7.735281] ACPI: Power Button [PWRB]
[    7.748032] usb 4-2: new full speed USB device using uhci_hcd and 
address 2
[    7.772215] ath9k 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> 
IRQ 17
[    7.772228] ath9k 0000:03:00.0: setting latency timer to 64
[    7.847212] input: Sleep Button as 
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input7
[    7.896301] ACPI: Sleep Button [SLPB]
[    7.906715] ath: EEPROM regdomain: 0x64
[    7.906717] ath: EEPROM indicates we should expect a direct regpair map
[    7.906721] ath: Country alpha2 being used: 00
[    7.906722] ath: Regpair used: 0x64
[    7.931261] input: Power Button as 
/devices/LNXSYSTM:00/LNXPWRBN:00/input/input8
[    7.935534] hda_codec: STAC922x, Apple subsys_id=106b1e00
[    7.990526] ACPI: Power Button [PWRF]
[    7.997530] phy0: Selected rate control algorithm 'ath9k_rate_control'
[    7.998053] Registered led device: ath9k-phy0::radio
[    7.998108] Registered led device: ath9k-phy0::assoc
[    7.998170] Registered led device: ath9k-phy0::tx
[    7.998225] Registered led device: ath9k-phy0::rx
[    7.998273] phy0: Atheros AR5418 MAC/BB Rev:2 AR5133 RF Rev:81 
mem=0xffffc90000bc0000, irq=17
[    8.041727] generic-usb 0003:05AC:8240.0003: hiddev0: USB HID v1.11 
Device [Apple Computer, Inc. IR Receiver] on usb-0000:00:1d.2-2/input0
[    8.323115] usb 5-1: new full speed USB device using uhci_hcd and 
address 2
[    8.554846] usbhid 5-1:1.0: couldn't find an input interrupt endpoint
[    8.615707] ieee1394: Host added: ID:BUS[0-00:1023] 
GUID[0019e3fffe2ad87e]
[    8.681077] usb 5-1: usbfs: USBDEVFS_CONTROL failed cmd hid2hci rqt 
64 rq 0 len 0 ret -84
[    8.705141] usb 5-1: USB disconnect, address 2
[    8.916170] SELinux: initialized (dev tmpfs, type tmpfs), uses 
transition SIDs
[    9.009347] Adding 390616k swap on /dev/sda4.  Priority:1 extents:1 
across:390616k
[    9.411314] usb 5-1: new full speed USB device using uhci_hcd and 
address 3
[   10.944574] ip_tables: (C) 2000-2006 Netfilter Core Team
[   10.981399] nf_conntrack version 0.5.0 (7884 buckets, 31536 max)
[   10.984245] CONFIG_NF_CT_ACCT is deprecated and will be removed soon. 
Please use
[   10.984248] nf_conntrack.acct=1 kernel parameter, acct=1 nf_conntrack 
module option or
[   10.984250] sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
[   13.176234] applesmc: light sensor data length set to 6
[   16.399290] sky2 eth0: enabling interface
[   19.924510] type=1100 audit(1273564330.924:3): user pid=2016 uid=0 
auid=4294967295 ses=4294967295 
subj=system_u:system_r:local_login_t:s0-s0:c0.c255 
msg='op=PAM:authentication acct="name" exe="/bin/login" hostname=? 
addr=? terminal=/dev/tty1 res=success'
[   19.934946] type=1101 audit(1273564330.934:4): user pid=2016 uid=0 
auid=4294967295 ses=4294967295 
subj=system_u:system_r:local_login_t:s0-s0:c0.c255 
msg='op=PAM:accounting acct="name" exe="/bin/login" hostname=? addr=? 
terminal=/dev/tty1 res=success'
[   20.009616] type=1006 audit(1273564331.009:5): login pid=2016 uid=0 
old auid=4294967295 new auid=1000 old ses=4294967295 new ses=1
[   20.095026] type=2300 audit(1273564331.094:6): user pid=2016 uid=0 
auid=1000 ses=1 subj=system_u:system_r:local_login_t:s0-s0:c0.c255 
msg='pam: default-context=name:staff_r:staff_t:s0 
selected-context=name:staff_r:staff_t:s0: exe="/bin/login" hostname=? 
addr=? terminal=tty1 res=success'
[   20.178135] type=1105 audit(1273564331.178:7): user pid=2016 uid=0 
auid=1000 ses=1 subj=system_u:system_r:local_login_t:s0-s0:c0.c255 
msg='op=PAM:session_open acct="name" exe="/bin/login" hostname=? addr=? 
terminal=/dev/tty1 res=success'
[   20.191074] type=1103 audit(1273564331.190:8): user pid=2016 uid=0 
auid=1000 ses=1 subj=system_u:system_r:local_login_t:s0-s0:c0.c255 
msg='op=PAM:setcred acct="name" exe="/bin/login" hostname=? addr=? 
terminal=/dev/tty1 res=success'
[   20.191379] type=1112 audit(1273564331.191:9): user pid=2016 uid=0 
auid=1000 ses=1 subj=system_u:system_r:local_login_t:s0-s0:c0.c255 
msg='op=login acct="name" exe="/bin/login" hostname=? addr=? 
terminal=/dev/tty1 res=success'
[   22.308976] wlan0: direct probe to AP 00:1e:2a:00:67:f0 (try 1)
[   22.311733] wlan0: direct probe responded
[   22.311741] wlan0: authenticate with AP 00:1e:2a:00:67:f0 (try 1)
[   22.318090] wlan0: authenticated
[   22.318223] wlan0: associate with AP 00:1e:2a:00:67:f0 (try 1)
[   22.320730] wlan0: RX AssocResp from 00:1e:2a:00:67:f0 (capab=0x431 
status=0 aid=1)
[   22.320736] wlan0: associated
[   23.713535] [drm] Initialized drm 1.1.0 20060810
[   23.849540] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   23.849545] Bluetooth: BNEP filters: protocol multicast
[   23.928446] Bluetooth: SCO (Voice Link) ver 0.6
[   23.928449] Bluetooth: SCO socket layer initialized
[   23.929616] [drm] radeon defaulting to userspace modesetting.
[   23.930408] pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[   23.930416] pci 0000:01:00.0: setting latency timer to 64
[   23.930766] [drm] Initialized radeon 1.32.0 20080528 for 0000:01:00.0 
on minor 0
[   24.156429] [drm] Setting GART location based on new memory map
[   24.158069] [drm] Loading R500 Microcode
[   24.158077] platform radeon_cp.0: firmware: requesting radeon/R520_cp.bin
[   24.295079] [drm] Num pipes: 1
[   24.295092] [drm] writeback test succeeded in 1 usecs
[   27.435674] magicmouse 0005:05AC:030D.0004: claimed by neither input, 
hiddev nor hidraw
[   27.435686] magicmouse 0005:05AC:030D.0004: magicmouse hw start failed
[   27.435753] type=1400 audit(1273564338.435:10): avc:  denied  { 
search } for  pid=2105 comm="bluetoothd" name="hid" dev=debugfs ino=1056 
scontext=system_u:system_r:bluetooth_t:s0-s0:c0.c255 
tcontext=system_u:object_r:debugfs_t:s0 tclass=dir
[   27.435927] type=1300 audit(1273564338.435:10): arch=c000003e 
syscall=16 success=yes exit=0 a0=18 a1=400448c8 a2=7fd2680460f0 a3=10 
items=0 ppid=1 pid=2105 auid=4294967295 uid=0 gid=0 euid=0 suid=0 
fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 
comm="bluetoothd" exe="/usr/sbin/bluetoothd" 
subj=system_u:system_r:bluetooth_t:s0-s0:c0.c255 key=(null)
[   74.910194] usb 2-1: new low speed USB device using uhci_hcd and 
address 3
[   75.094202] input: Mitsumi Electric Apple Optical USB Mouse as 
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input9
[   75.094598] apple 0003:05AC:0304.0005: input: USB HID v1.10 Mouse 
[Mitsumi Electric Apple Optical USB Mouse] on usb-0000:00:1d.0-1/input0


I'm a bit tired now.. will test commits
in the morning over here with git revert

Justin P. Mattock

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox