From a8e592e1bcedd211eee9a77dbbc486fafe3b7605 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Mon, 7 Sep 2015 12:29:19 -0400 Subject: [PATCH] hidraw: add ratbag_close_hidraw Better to clean up the hidraw node too. Signed-off-by: Benjamin Tissoires --- src/driver-etekcity.c | 1 + src/driver-hidpp10.c | 2 ++ src/driver-hidpp20.c | 2 ++ src/libratbag-hidraw.c | 7 +++++++ src/libratbag-hidraw.h | 7 +++++++ 5 files changed, 19 insertions(+) diff --git a/src/driver-etekcity.c b/src/driver-etekcity.c index df81b7bc..bd8a015b 100644 --- a/src/driver-etekcity.c +++ b/src/driver-etekcity.c @@ -731,6 +731,7 @@ err: static void etekcity_remove(struct ratbag_device *device) { + ratbag_close_hidraw(device); free(ratbag_get_drv_data(device)); } diff --git a/src/driver-hidpp10.c b/src/driver-hidpp10.c index d262b4f0..276574bd 100644 --- a/src/driver-hidpp10.c +++ b/src/driver-hidpp10.c @@ -247,6 +247,8 @@ hidpp10drv_remove(struct ratbag_device *device) struct hidpp10drv_data *drv_data; struct hidpp10_device *dev; + ratbag_close_hidraw(device); + drv_data = ratbag_get_drv_data(device); dev = drv_data->dev; diff --git a/src/driver-hidpp20.c b/src/driver-hidpp20.c index a2d7f30f..7a31ba44 100644 --- a/src/driver-hidpp20.c +++ b/src/driver-hidpp20.c @@ -478,6 +478,8 @@ hidpp20drv_remove(struct ratbag_device *device) { struct hidpp20drv_data *drv_data = ratbag_get_drv_data(device); + ratbag_close_hidraw(device); + free(drv_data->controls); free(drv_data->sensors); free(drv_data); diff --git a/src/libratbag-hidraw.c b/src/libratbag-hidraw.c index 78fb5dfd..1bcb0529 100644 --- a/src/libratbag-hidraw.c +++ b/src/libratbag-hidraw.c @@ -69,6 +69,13 @@ err: return -errno; } +void +ratbag_close_hidraw(struct ratbag_device *device) +{ + ratbag_close_fd(device, device->hidraw_fd); + device->hidraw_fd = -1; +} + int ratbag_hidraw_raw_request(struct ratbag_device *device, unsigned char reportnum, uint8_t *buf, size_t len, unsigned char rtype, int reqtype) diff --git a/src/libratbag-hidraw.h b/src/libratbag-hidraw.h index ea826952..de08c305 100644 --- a/src/libratbag-hidraw.h +++ b/src/libratbag-hidraw.h @@ -43,6 +43,13 @@ */ int ratbag_open_hidraw(struct ratbag_device *device); +/** + * Close the hidraw device associated with the device. + * + * @param device the ratbag device + */ +void ratbag_close_hidraw(struct ratbag_device *device); + /** * Send report request to device *