Commit Graph

53 Commits

Author SHA1 Message Date
Szymon Janc
3576214b5b android/hidhost: Improve error messages 2014-04-23 14:17:48 +02:00
Szymon Janc
40f7f261d2 android/hidhost: Check if hex2buf succeed
Fail if received string contains illegal characters.
2014-04-23 10:03:36 +02:00
Szymon Janc
c803cf88eb android/hidhost: Don't use sscanf in hex2buf
Add cheaper version (based on similar code in oFono) that doesn't
require sscanf.
2014-04-23 10:03:36 +02:00
Szymon Janc
35cd7eddbf android/hidhost: Cleanup handle_uhid_output 2014-04-23 10:03:36 +02:00
Szymon Janc
4a0ac907ca android/hidhost: Fix handle_uhid_output
Data from kernel is not in form of hex string. Just copy it instead of
converting from hex string.
2014-04-23 10:03:35 +02:00
Szymon Janc
ee1c0375ff android/hidhost: Fix hex string to buffer convertion
Due to missing limit specifier buffer was always filled with last hex
value in string.
2014-04-09 20:03:07 +02:00
Claudio Takahasi
7899d71215 Replace bt_put_le16() by put_le16() 2014-03-14 15:29:35 +02:00
Szymon Janc
14fc3c5403 android: Pass mode parameter to registered services 2014-03-04 10:18:27 +01:00
Szymon Janc
7d95d027b1 android: Create comon header for IPC
This header contains IPC specific structures and code not related to
BT and audio HAL protocols. This allows to fully decouple IPC from
HAL messages.

This is first step to make HAL part of IPC unit-testable and reusable
between BT HAL and audio HAL.
2014-02-28 15:22:45 +01:00
Szymon Janc
dd1e44fce1 android: Refactor IPC init
This allows to pass socket path and max service ID while initializaing
IPC. This is first step to allow use it both for BT and Audio HALs.
2014-02-28 15:22:45 +01:00
Anderson Lizardo
cdbede8514 android/hidhost: Trivial coding style fix
Fix two lines over 80 columns.
2014-02-12 11:26:56 +02:00
Anderson Lizardo
9b00e93b11 android: Use 16-bit UUID for SDP search
These UUIDs are assigned by BT-SIG and therefore there is no need to
use full 128-bit UUIDs. This also avoids unnecessary conversion from
string representation.
2014-02-12 11:26:56 +02:00
Marcel Holtmann
cde69653e0 android: Update copyright and license details 2014-02-11 10:42:56 -08:00
Luiz Augusto von Dentz
1d1fc983e4 android/hidhost: Use g_slist_free_full to free devices list
Calling g_slist_remove within the callback of g_slist_foreach is very
inefficient as it has to iterate twice in the list to figure which
element to remove.
2014-02-06 15:23:00 +02:00
Anderson Lizardo
c8886711d4 android: Trivial replacement of tabs where spaces are expected 2014-01-27 21:48:02 +01:00
Marcel Holtmann
c1add0ff9f android: Use src/log.h include instead of just log.h 2014-01-26 00:23:15 -08:00
Szymon Janc
f1c4969ff8 android/hidhost: Verify set info command correctness
Although it is not implemented verify command correctness for IPC
completeness.
2014-01-24 00:05:37 +01:00
Andrzej Kaczmarek
c95e067c3e android/hidhost: Fix vid and pid information
For HID device vendor, product and version numbers should be retrieved
using Device ID profile which is mandatory for devices implementing
HIDP.
2014-01-22 23:50:58 +01:00
Ravi kumar Veeramally
9d30a5a539 android/hidhost: Fix miscalculation of get report event notification length
Event length is size of struct + data len (if any). It is miscalulated.
2014-01-21 16:18:03 +01:00
Johan Hedberg
1a9051e9ee Rename glib-helper to uuid-helper 2014-01-21 14:12:47 +02:00
Ravi kumar Veeramally
a2d6586eff android/hidhost: Remove unnecessary check
HID device will return unsupported or invalid response for unsupported
or invalid get/set protocol request. Need not to check prior to that.
2014-01-20 16:23:38 +01:00
Ravi kumar Veeramally
3abb6d368d android/hidhost: Fix connection state notification on profile unregister
Issue found while writing end2end tests. Usually profile unregister is
called when final cleanup of bluetoothd. Freeing connected hid devices
through g_slist_foreach is a asynchronous call. Profile is cleaned up
and and ipc also complete cleanup. But free_hid_devices tries to notify
hal which doesn't exist that time. So behaviour is unexpected.
2014-01-20 16:23:06 +01:00
Szymon Janc
cada0c0896 core: Add flags parameter to bt_search_service
This allows to pass custom SDP flags to sdp_connect.
2014-01-20 15:19:25 +02:00
Szymon Janc
47e30d43c5 android/hidhost: Move set_report parameter check to daemon
HAL library is to be as simple as possible and parameters values should
be verified by daemon for robustness anyway. Move this check to daemon.
2013-12-31 11:34:32 +02:00
Szymon Janc
33c2a480a8 android/hidhost: Move get_report parameter check to daemon
HAL library is to be as simple as possible and parameters values should
be verified by daemon for robustness anyway. Move this check to daemon.
2013-12-31 11:34:30 +02:00
Szymon Janc
af6b7bef23 android/hidhost: Move set_protocol parameter check to daemon
HAL library is to be as simple as possible and parameters values should
be verified by daemon for robustness anyway. Move this check to daemon.
2013-12-31 11:34:28 +02:00
Szymon Janc
81617ffdfc android/hidhost: Move get_protocol parameter check to daemon
HAL library is to be as simple as possible and parameters values should
be verified by daemon for robustness anyway. Move this check to daemon.
2013-12-31 11:34:05 +02:00
Szymon Janc
9a706710e4 bluetooth/hidhost: Fix using feature event as output event
Rename handle_uhid_event to handle_uhid_output and make it handle only
output events.
2013-12-18 10:01:30 +02:00
Szymon Janc
ffb856322c android: Use G_N_ELEMENTS macro for table elements calculation
It is more common in codebase to use this macro instead of opencoded
(sizeof(foo)/sizeof(foo[0])).
2013-12-03 13:44:04 +02:00
Szymon Janc
24c9fb1e12 android/hidhost: Use generic IPC message handling for commands
Handlers are registered on service register and unregistered on
unregister.
2013-12-02 16:24:02 +02:00
Andrei Emeltchenko
995d19a8d4 android/hidhost: Shutdown ctrl_io channel if intr_io fails
This fix possible memory leak.
2013-11-29 10:29:55 +02:00
Szymon Janc
7624ea2d42 android: Don't pass notification socket on services register
It is no longer needed as proper socket is use by IPC helpers.
2013-11-28 18:02:27 +02:00
Szymon Janc
daf1186c38 android: Use ipc_send_notif for sending notifications 2013-11-28 18:02:26 +02:00
Szymon Janc
6456e15664 android: Remove socket parameter from ipc_send_rsp
Use command socket provided to IPC on init.
2013-11-28 18:02:26 +02:00
Johan Hedberg
497bbf94d0 android/hidhost: Fix misuse of errno 2013-11-19 18:20:13 +02:00
Ravi kumar Veeramally
a3d66e91fa android/hidhost: Handle error case properly in interrupt_connect_cb
In case of conn_err in interrupt_connect_cb, device is freed but
connection status is not notified. Declared a local variable and
handled error case properly in case of conn_err and uhid failures.
Now connection status notified before freeing device.
2013-11-19 18:18:39 +02:00
Ravi kumar Veeramally
b3132fe966 android/hidhost: Free all connected devices in profile cleanup call
This can be easily verified with haltest tool.
2013-11-19 18:15:37 +02:00
Ravi kumar Veeramally
b32461d42d android: Handle multiple init(register) and cleanup(unregister) calls properly
This can be tested with haltest.
2013-11-19 18:15:37 +02:00
Szymon Janc
fc10c55498 android: Improve IPC helper to not send invalid status response
This fix issue with sending invalid success response from several
places where ipc_send_rsp was used for reporting success. Instead of
using using ipc_send for success response, make helper handle that.
2013-11-18 15:17:22 +02:00
Szymon Janc
a332daeba9 android/hidhost: Use adapter address provided on register
There is no need to use bt_adapter_get_address every time local address
is needed.
2013-11-14 14:55:30 +02:00
Andrei Emeltchenko
b17fdd8adb android/hidhost: Use correct error structure 2013-11-13 16:47:39 +02:00
Andrei Emeltchenko
04a1fc903b android/hidhost: Fix memory leak 2013-11-13 16:47:38 +02:00
Ravi kumar Veeramally
d95bae6d86 android/hidhost: Set info request from HAL is not supported
Data from hal_cmd_hidhost_set_info is usefull only when we create
UHID device. Once device is created all the transactions will be
done through the fd. There is no way to use this information
once device is created with HID internals.
2013-11-13 11:26:38 +02:00
Ravi kumar Veeramally
d69ce902b7 android/hidhost: Handle uhid output and feature events
Data read on uhid events output and feature has to be send through
SET_REPORT request to HID device.
2013-11-13 11:26:33 +02:00
Ravi kumar Veeramally
fa0ce2cbb4 android/hidhost: Fix error handling issue incase of G_IO_HUP
Incase of G_IO_HUP on GIOCondtion when hid device disconnected,
GIOCondition is combination of G_IO_IN and G_IO_HUP. Current code
tries to read as soon as it finds G_IO_IN in condition.
Apparently there is no data to read and loop continues.
2013-11-12 15:26:52 +02:00
Ravi kumar Veeramally
ff9e27b9de android/hidhost: Fix uhid create failure case
If uhid open or create fails then notify state and free the device.
Otherwise it replies bogus success return value on connect request.
2013-11-12 15:26:52 +02:00
Ravi kumar Veeramally
651522716f android/hid: Handle virtual unplug event from hid device
If hid host receives the virtual unplug event from hid device
recipient shall destroy or invalidate all bluetooth bonding and
virtual cable information
2013-11-11 10:30:37 +02:00
Johan Hedberg
97a5801394 android/hidhost: Fix up error logs to contain exact error 2013-11-08 15:46:31 +02:00
Ravi kumar Veeramally
e9c52e40fb android/hid: Add virtual unplug implemention in daemon
Send virtual unplug command to hid device and disconnect and remove
hid device details.
2013-11-08 15:28:59 +02:00
Ravi kumar Veeramally
c5408ef4ac android/hid: Add send data implemention in daemon
Send data on interrupt channel on request from hid host.
2013-11-08 15:28:40 +02:00