Skip to contentSkip to conversation

Increasing HIDP_DEFAULT_MTU ?

Bluez-devel Pascal 2 participants 6 messages May 28, 2007 – May 30, 2007 Bluetooth drivers

lore
Share & tools
lore

Pascal

author
#0 lore raw

Hi,

I have a Bluetooth HID peripheral which sends 50-byte payloads on L2CAP psm 19, even though it has accepted a Config req with MTU 48. As a result, the data never reaches userspace. Is this a bug in the device ?

Besides, even if the device implemented segmentation with DATC, a MTU of 48 might be a significant performance penalty (generating twice as many packets on the radio channel ?).

So would it be appropriate to change bluez-libs-3.11/include/hidp.h:#define HIDP_DEFAULT_MTU 48 to 672, as recommmended by HID_SPEC_V10 section 7.5.2 ?

Or maybe make it a command-line option for hidd and bluetoothd-service-input ?

Pascal

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

maintainer
#1 lore raw

Hi Pascal,

Quoted 4 lines

I have a Bluetooth HID peripheral which sends 50-byte payloads on L2CAP psm 19, even though it has accepted a Config req with MTU 48. As a result, the data never reaches userspace. Is this a bug in the device ?

which device is this. I might need to have one of it at home for testing.

Quoted 3 lines

Besides, even if the device implemented segmentation with DATC, a MTU of 48 might be a significant performance penalty (generating twice as many packets on the radio channel ?).

Actually we are not really supporting segmentation by ourself. If I had one of the devices for testing, I might be able to fix that easily. Hint hint :)

Quoted 6 lines

So would it be appropriate to change bluez-libs-3.11/include/hidp.h:#define HIDP_DEFAULT_MTU 48 to 672, as recommmended by HID_SPEC_V10 section 7.5.2 ?

Or maybe make it a command-line option for hidd and bluetoothd-service-input ?

I fixed the input service now. We will see how this works out. In addition the 2.6.22-rc3 kernel contains a patch to fix a bug in the L2CAP config handling.

Regards

Marcel

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

author
#2 lore raw
Quoted 3 lines · Marcel Holtmann

Actually we are not really supporting segmentation by ourself. If I had one of the devices for testing, I might be able to fix that easily. Hint hint :)

It's that wireless joystick from Sony. Be sure to ask for the console that goes with it, it makes debugging much easier :-)

Note: when polled with HIDP_TRANS_GET_REPORT on the control channel, it does use DATC (unlike what happens on the interrupt channel). So maybe it would be a good platform for testing reassembly code.

Quoted 3 lines

I fixed the input service now. We will see how this works out. In addition the 2.6.22-rc3 kernel contains a patch to fix a bug in the L2CAP config handling.

Thanks; the device now works out-of-the box with ps3-linux 2.6.22-rc3 and bluetoothd-service-input from bluez-utils-cvs (except I couldn't figure how the new authorization framework works, so I renamed /var/lib/bluetooth/*/hidd to /var/lib/bluetooth/*/input instead).

Pascal

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

maintainer
#3 lore raw

Hi Pascal,

Quoted 6 lines
Quoted 3 lines

Actually we are not really supporting segmentation by ourself. If I had one of the devices for testing, I might be able to fix that easily. Hint hint :)

It's that wireless joystick from Sony. Be sure to ask for the console that goes with it, it makes debugging much easier :-)

do you mean the controller that comes with the PS3?

Quoted 3 lines

Note: when polled with HIDP_TRANS_GET_REPORT on the control channel, it does use DATC (unlike what happens on the interrupt channel). So maybe it would be a good platform for testing reassembly code.

Yes. We need to fix that.

Quoted 8 lines
Quoted 3 lines

I fixed the input service now. We will see how this works out. In addition the 2.6.22-rc3 kernel contains a patch to fix a bug in the L2CAP config handling.

Thanks; the device now works out-of-the box with ps3-linux 2.6.22-rc3 and bluetoothd-service-input from bluez-utils-cvs (except I couldn't figure how the new authorization framework works, so I renamed /var/lib/bluetooth/*/hidd to /var/lib/bluetooth/*/input instead).

That can produce some strange settings. The input file format is a little bit different than the hidd file format.

Regards

Marcel

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

author
#4 lore raw

Marcel,

Quoted 1 line

do you mean the controller that comes with the PS3?

Yes, a.k.a. "sixaxis". It is not really advertised as a HIDP device, but it behaves pretty much like one. Sony also has a TV-style Bluetooth remote, which I have not tested.

Regards,

Pascal

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

maintainer
#5 lore raw

Hi Pascal,

Quoted 5 lines
Quoted 1 line

do you mean the controller that comes with the PS3?

Yes, a.k.a. "sixaxis". It is not really advertised as a HIDP device, but it behaves pretty much like one. Sony also has a TV-style Bluetooth remote, which I have not tested.

actually I have both of them. The controller is kinda nasty and I have to integrate the cable-based authentication somehow nicely with udev and the input service.

The remote uses a total weird HID report format. Doesn't make sense to push that through the kernel. We will use a fake HID inside the input service and then uinput to create the input device.

Regards

Marcel

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel