summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Szewczyk <p.szewczyk@samsung.com>2018-10-15 11:35:21 (GMT)
committerPaweł Szewczyk <p.szewczyk@samsung.com>2018-10-15 11:35:21 (GMT)
commit61fd9d32edc765ffbb393d1b2a6811de6f5a259e (patch)
tree9142111e42cd6c15224e70037545c6c31eac8bee
parent2b95d87b5fd4c8cd133588e777fcf7126066b626 (diff)
downloadlibdevice-node-61fd9d32edc765ffbb393d1b2a6811de6f5a259e.zip
libdevice-node-61fd9d32edc765ffbb393d1b2a6811de6f5a259e.tar.gz
libdevice-node-61fd9d32edc765ffbb393d1b2a6811de6f5a259e.tar.bz2
usb: Move ffs services cleanup to hw_cfs_gadget_closesubmit/tizen/20181015.121248refs/changes/94/191294/1
Change-Id: I1fc61542b8228ff038b64ee1df3cd5b6c3947a1c Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
-rw-r--r--hw/usb_cfs_client_common.c50
1 files changed, 25 insertions, 25 deletions
diff --git a/hw/usb_cfs_client_common.c b/hw/usb_cfs_client_common.c
index 0fd1912..8069f4d 100644
--- a/hw/usb_cfs_client_common.c
+++ b/hw/usb_cfs_client_common.c
@@ -836,8 +836,6 @@ static int cfs_enable(struct usb_client *usb)
static int cfs_disable(struct usb_client *usb)
{
struct cfs_client *cfs_client;
- usbg_function *func;
- int ret;
if (!usb)
return -EINVAL;
@@ -845,29 +843,6 @@ static int cfs_disable(struct usb_client *usb)
cfs_client = container_of(usb, struct cfs_client,
client);
- usbg_for_each_function(func, cfs_client->gadget) {
- char *name = (char *)usbg_get_function_type_str(
- usbg_get_function_type(func));
- char *instance = (char *)usbg_get_function_instance(func);
- struct usb_function *usb_func;
-
- ret = cfs_find_func(name, instance);
- if (ret < 0)
- continue;
-
- usb_func = _available_funcs[ret];
- if (usb_func->function_group ==
- USB_FUNCTION_GROUP_WITH_SERVICE) {
- struct usb_function_with_service *fws;
-
- fws = container_of(usb_func,
- struct usb_function_with_service,
- func);
- systemd_stop_socket(fws->service);
- systemd_stop_service(fws->service);
- }
- }
-
return usbg_disable_gadget(cfs_client->gadget);
}
@@ -926,6 +901,8 @@ EXPORT
int hw_cfs_gadget_close(struct hw_common *common)
{
struct cfs_client *cfs_client;
+ usbg_function *func;
+ int ret;
if (!common)
return -EINVAL;
@@ -933,6 +910,29 @@ int hw_cfs_gadget_close(struct hw_common *common)
cfs_client = container_of(common, struct cfs_client,
client.common);
+ usbg_for_each_function(func, cfs_client->gadget) {
+ char *name = (char *)usbg_get_function_type_str(
+ usbg_get_function_type(func));
+ char *instance = (char *)usbg_get_function_instance(func);
+ struct usb_function *usb_func;
+
+ ret = cfs_find_func(name, instance);
+ if (ret < 0)
+ continue;
+
+ usb_func = _available_funcs[ret];
+ if (usb_func->function_group ==
+ USB_FUNCTION_GROUP_WITH_SERVICE) {
+ struct usb_function_with_service *fws;
+
+ fws = container_of(usb_func,
+ struct usb_function_with_service,
+ func);
+ systemd_stop_socket(fws->service);
+ systemd_stop_service(fws->service);
+ }
+ }
+
/*
* For now we don't check for errors
* but we should somehow handle them