* [PATCH BlueZ v5 1/3] hog-lib: Don't destroy UHID device on detach
@ 2024-02-14 18:57 Luiz Augusto von Dentz
2024-02-14 18:57 ` [PATCH BlueZ v5 2/3] input.conf: Make UserspaceHID defaults to true Luiz Augusto von Dentz
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Luiz Augusto von Dentz @ 2024-02-14 18:57 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes bt_hog_detach not to destroy UHID device which means the
device node don't need to be recreated in case of reconnections which
speeds up the process.
Fixes: https://github.com/bluez/bluez/issues/737
---
profiles/input/hog-lib.c | 48 ++++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/profiles/input/hog-lib.c b/profiles/input/hog-lib.c
index 7ff1ede3db35..67492a63eca3 100644
--- a/profiles/input/hog-lib.c
+++ b/profiles/input/hog-lib.c
@@ -1309,11 +1309,35 @@ static bool cancel_gatt_req(const void *data, const void *user_data)
return g_attrib_cancel(hog->attrib, req->id);
}
+static void uhid_destroy(struct bt_hog *hog)
+{
+ int err;
+ struct uhid_event ev;
+
+ if (!hog->uhid_created)
+ return;
+
+ bt_uhid_unregister_all(hog->uhid);
+
+ memset(&ev, 0, sizeof(ev));
+ ev.type = UHID_DESTROY;
+
+ err = bt_uhid_send(hog->uhid, &ev);
+
+ if (err < 0) {
+ error("bt_uhid_send: %s", strerror(-err));
+ return;
+ }
+
+ hog->uhid_created = false;
+}
+
static void hog_free(void *data)
{
struct bt_hog *hog = data;
bt_hog_detach(hog);
+ uhid_destroy(hog);
queue_destroy(hog->input, free);
queue_destroy(hog->bas, (void *) bt_bas_unref);
@@ -1823,29 +1847,6 @@ bool bt_hog_attach(struct bt_hog *hog, void *gatt)
return true;
}
-static void uhid_destroy(struct bt_hog *hog)
-{
- int err;
- struct uhid_event ev;
-
- if (!hog->uhid_created)
- return;
-
- bt_uhid_unregister_all(hog->uhid);
-
- memset(&ev, 0, sizeof(ev));
- ev.type = UHID_DESTROY;
-
- err = bt_uhid_send(hog->uhid, &ev);
-
- if (err < 0) {
- error("bt_uhid_send: %s", strerror(-err));
- return;
- }
-
- hog->uhid_created = false;
-}
-
void bt_hog_detach(struct bt_hog *hog)
{
GSList *l;
@@ -1879,7 +1880,6 @@ void bt_hog_detach(struct bt_hog *hog)
queue_remove_all(hog->gatt_op, cancel_gatt_req, hog, destroy_gatt_req);
g_attrib_unref(hog->attrib);
hog->attrib = NULL;
- uhid_destroy(hog);
}
int bt_hog_set_control_point(struct bt_hog *hog, bool suspend)
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH BlueZ v5 2/3] input.conf: Make UserspaceHID defaults to true
2024-02-14 18:57 [PATCH BlueZ v5 1/3] hog-lib: Don't destroy UHID device on detach Luiz Augusto von Dentz
@ 2024-02-14 18:57 ` Luiz Augusto von Dentz
2024-02-14 18:57 ` [PATCH BlueZ v5 3/3] input/device: Don't destroy UHID device on disconnect Luiz Augusto von Dentz
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Luiz Augusto von Dentz @ 2024-02-14 18:57 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes UserspaceHID defaults to true so the plugin has more control
over the input device lifetime.
---
profiles/input/device.c | 2 +-
profiles/input/input.conf | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/profiles/input/device.c b/profiles/input/device.c
index 6c64ff1c1c52..ff7e3482d0eb 100644
--- a/profiles/input/device.c
+++ b/profiles/input/device.c
@@ -81,7 +81,7 @@ struct input_device {
};
static int idle_timeout = 0;
-static bool uhid_enabled = false;
+static bool uhid_enabled = true;
static bool classic_bonded_only = true;
void input_set_idle_timeout(int timeout)
diff --git a/profiles/input/input.conf b/profiles/input/input.conf
index d8645f3dd664..00a34eb63de1 100644
--- a/profiles/input/input.conf
+++ b/profiles/input/input.conf
@@ -9,7 +9,7 @@
#IdleTimeout=30
# Enable HID protocol handling in userspace input profile
-# Defaults to false (HIDP handled in HIDP kernel module)
+# Defaults to true (Use UHID instead of kernel HIDP)
#UserspaceHID=true
# Limit HID connections to bonded devices
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH BlueZ v5 3/3] input/device: Don't destroy UHID device on disconnect
2024-02-14 18:57 [PATCH BlueZ v5 1/3] hog-lib: Don't destroy UHID device on detach Luiz Augusto von Dentz
2024-02-14 18:57 ` [PATCH BlueZ v5 2/3] input.conf: Make UserspaceHID defaults to true Luiz Augusto von Dentz
@ 2024-02-14 18:57 ` Luiz Augusto von Dentz
2024-02-14 20:28 ` [BlueZ,v5,1/3] hog-lib: Don't destroy UHID device on detach bluez.test.bot
2024-02-14 22:50 ` [PATCH BlueZ v5 1/3] " patchwork-bot+bluetooth
3 siblings, 0 replies; 5+ messages in thread
From: Luiz Augusto von Dentz @ 2024-02-14 18:57 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes classic HID behave like HoG which keeps the UHID device
around while disconnected so it doesn't have to be recreated on every
reconnection.
---
profiles/input/device.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/profiles/input/device.c b/profiles/input/device.c
index ff7e3482d0eb..0d32b705bd00 100644
--- a/profiles/input/device.c
+++ b/profiles/input/device.c
@@ -985,6 +985,10 @@ static int uhid_disconnect(struct input_device *idev)
if (!idev->uhid_created)
return 0;
+ /* Only destroy the node if virtual cable unplug flag has been set */
+ if (!idev->virtual_cable_unplug)
+ return 0;
+
bt_uhid_unregister_all(idev->uhid);
memset(&ev, 0, sizeof(ev));
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* RE: [BlueZ,v5,1/3] hog-lib: Don't destroy UHID device on detach
2024-02-14 18:57 [PATCH BlueZ v5 1/3] hog-lib: Don't destroy UHID device on detach Luiz Augusto von Dentz
2024-02-14 18:57 ` [PATCH BlueZ v5 2/3] input.conf: Make UserspaceHID defaults to true Luiz Augusto von Dentz
2024-02-14 18:57 ` [PATCH BlueZ v5 3/3] input/device: Don't destroy UHID device on disconnect Luiz Augusto von Dentz
@ 2024-02-14 20:28 ` bluez.test.bot
2024-02-14 22:50 ` [PATCH BlueZ v5 1/3] " patchwork-bot+bluetooth
3 siblings, 0 replies; 5+ messages in thread
From: bluez.test.bot @ 2024-02-14 20:28 UTC (permalink / raw)
To: linux-bluetooth, luiz.dentz
[-- Attachment #1: Type: text/plain, Size: 947 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=826115
---Test result---
Test Summary:
CheckPatch PASS 1.29 seconds
GitLint PASS 0.90 seconds
BuildEll PASS 24.20 seconds
BluezMake PASS 716.57 seconds
MakeCheck PASS 11.67 seconds
MakeDistcheck PASS 164.95 seconds
CheckValgrind PASS 228.39 seconds
CheckSmatch PASS 331.35 seconds
bluezmakeextell PASS 108.34 seconds
IncrementalBuild PASS 2053.08 seconds
ScanBuild PASS 960.58 seconds
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH BlueZ v5 1/3] hog-lib: Don't destroy UHID device on detach
2024-02-14 18:57 [PATCH BlueZ v5 1/3] hog-lib: Don't destroy UHID device on detach Luiz Augusto von Dentz
` (2 preceding siblings ...)
2024-02-14 20:28 ` [BlueZ,v5,1/3] hog-lib: Don't destroy UHID device on detach bluez.test.bot
@ 2024-02-14 22:50 ` patchwork-bot+bluetooth
3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+bluetooth @ 2024-02-14 22:50 UTC (permalink / raw)
To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
Hello:
This series was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Wed, 14 Feb 2024 13:57:16 -0500 you wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
>
> This makes bt_hog_detach not to destroy UHID device which means the
> device node don't need to be recreated in case of reconnections which
> speeds up the process.
>
> Fixes: https://github.com/bluez/bluez/issues/737
>
> [...]
Here is the summary with links:
- [BlueZ,v5,1/3] hog-lib: Don't destroy UHID device on detach
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=247ae8524888
- [BlueZ,v5,2/3] input.conf: Make UserspaceHID defaults to true
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=9698870015b0
- [BlueZ,v5,3/3] input/device: Don't destroy UHID device on disconnect
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=ee880bee8586
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-02-14 22:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-14 18:57 [PATCH BlueZ v5 1/3] hog-lib: Don't destroy UHID device on detach Luiz Augusto von Dentz
2024-02-14 18:57 ` [PATCH BlueZ v5 2/3] input.conf: Make UserspaceHID defaults to true Luiz Augusto von Dentz
2024-02-14 18:57 ` [PATCH BlueZ v5 3/3] input/device: Don't destroy UHID device on disconnect Luiz Augusto von Dentz
2024-02-14 20:28 ` [BlueZ,v5,1/3] hog-lib: Don't destroy UHID device on detach bluez.test.bot
2024-02-14 22:50 ` [PATCH BlueZ v5 1/3] " patchwork-bot+bluetooth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).