Message ID | 20240214185718.536748-1-luiz.dentz@gmail.com |
---|---|
State | New |
Headers | show |
Series | [BlueZ,v5,1/3] hog-lib: Don't destroy UHID device on detach | expand |
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
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!
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)
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(-)