From 38a4bfd1377244d11598a118c2c4cf1202b7197d Mon Sep 17 00:00:00 2001 From: INSUN PYO Date: Tue, 19 Jan 2021 13:53:47 +0900 Subject: usb_gadget: apply next HAL architecture (hal api + backend) Change-Id: I47188c554266da93459fd805293d6955ae151aa5 --- CMakeLists.txt | 1 - hw/usb_client/CMakeLists.txt | 19 -------- hw/usb_client/usb_client.c | 29 ----------- hw/usb_gadget/CMakeLists.txt | 13 ++--- hw/usb_gadget/usb_gadget.c | 74 +++++++++++++++++++++++++---- packaging/device-manager-plugin-sc7730.spec | 3 +- 6 files changed, 72 insertions(+), 67 deletions(-) delete mode 100644 hw/usb_client/CMakeLists.txt delete mode 100644 hw/usb_client/usb_client.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 7617286..4d65860 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,5 @@ ADD_SUBDIRECTORY(hw/touchscreen) ADD_SUBDIRECTORY(hw/ir) ADD_SUBDIRECTORY(hw/thermal) ADD_SUBDIRECTORY(hw/usb_gadget) -ADD_SUBDIRECTORY(hw/usb_client) ADD_SUBDIRECTORY(hw/board) ADD_SUBDIRECTORY(hw/haptic) diff --git a/hw/usb_client/CMakeLists.txt b/hw/usb_client/CMakeLists.txt deleted file mode 100644 index 32183ab..0000000 --- a/hw/usb_client/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(usb_client C) - -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) - -INCLUDE(FindPkgConfig) -pkg_check_modules(usb_client_pkgs REQUIRED hwcommon dlog glib-2.0) - -FOREACH(flag ${usb_client_pkgs_CFLAGS}) - SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") -ENDFOREACH(flag) - -SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden") -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") - -ADD_LIBRARY(${PROJECT_NAME} MODULE usb_client.c) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${usb_client_pkgs_LDFLAGS}) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "") -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR}/hw COMPONENT RuntimeLibraries) diff --git a/hw/usb_client/usb_client.c b/hw/usb_client/usb_client.c deleted file mode 100644 index 5b4b61e..0000000 --- a/hw/usb_client/usb_client.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * device-node - * - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -HARDWARE_MODULE_STRUCTURE = { - .magic = HARDWARE_INFO_TAG, - .hal_version = HARDWARE_INFO_VERSION, - .device_version = USB_CLIENT_HARDWARE_DEVICE_VERSION, - .id = USB_CLIENT_HARDWARE_DEVICE_ID, - .name = "legacy-gadget", - .open = hw_legacy_gadget_open, - .close = hw_legacy_gadget_close, -}; diff --git a/hw/usb_gadget/CMakeLists.txt b/hw/usb_gadget/CMakeLists.txt index 039baa4..efebc32 100644 --- a/hw/usb_gadget/CMakeLists.txt +++ b/hw/usb_gadget/CMakeLists.txt @@ -1,12 +1,14 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(usb_gadget C) +PROJECT(hal-backend-device-usb-gadget C) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +INCLUDE_DIRECTORIES(../common) + INCLUDE(FindPkgConfig) -pkg_check_modules(usb_gadget_pkgs REQUIRED hwcommon) +pkg_check_modules(hal-backend-device-usb-gadget_pkgs REQUIRED dlog hal-backend-device-common) -FOREACH(flag ${usb_gadget_pkgs_CFLAGS}) +FOREACH(flag ${hal-backend-device-usb-gadget_pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) @@ -14,6 +16,5 @@ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") ADD_LIBRARY(${PROJECT_NAME} MODULE usb_gadget.c) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${usb_gadget_pkgs_LDFLAGS}) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "") -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR}/hw COMPONENT RuntimeLibraries) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${hal-backend-device-usb-gadget_pkgs_LDFLAGS}) +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /hal/lib COMPONENT RuntimeLibraries) diff --git a/hw/usb_gadget/usb_gadget.c b/hw/usb_gadget/usb_gadget.c index 2bf9d96..7ff9d71 100644 --- a/hw/usb_gadget/usb_gadget.c +++ b/hw/usb_gadget/usb_gadget.c @@ -16,14 +16,68 @@ * limitations under the License. */ -#include - -HARDWARE_MODULE_STRUCTURE = { - .magic = HARDWARE_INFO_TAG, - .hal_version = HARDWARE_INFO_VERSION, - .device_version = USB_GADGET_DEVICE_VERSION, - .id = USB_GADGET_DEVICE_ID, - .name = "simple_translator", - .open = simple_translator_open, - .close = simple_translator_close, +#include +#include + +#include +#include +#include + +#include "common.h" + +static int usb_gadget_init(void **data) +{ + hal_backend_usb_gadget_funcs *usb_gadget_funcs; + + if (!data) + return -EINVAL; + + usb_gadget_funcs = calloc(1, sizeof(hal_backend_usb_gadget_funcs)); + if (!usb_gadget_funcs) + return -ENOMEM; + + // usb_gadget_translator + if (simple_translator_open(usb_gadget_funcs)) { + _E("No USB gadget translator"); + goto error_translator_open; + } + + // usb_client + if (hw_legacy_gadget_open(usb_gadget_funcs)) { + _I("No USB client"); + goto error_gadget_open; + } + + *data = (void *)usb_gadget_funcs; + + return 0; + +error_gadget_open: + simple_translator_close(usb_gadget_funcs); + +error_translator_open: + free(usb_gadget_funcs); + + return -ENODEV; +} + +static int usb_gadget_exit(void *data) +{ + hal_backend_usb_gadget_funcs *usb_gadget_funcs = (hal_backend_usb_gadget_funcs *)data; + + if (usb_gadget_funcs) { + hw_legacy_gadget_close(usb_gadget_funcs); + simple_translator_close(usb_gadget_funcs); + free(usb_gadget_funcs); + } + + return 0; +} + +hal_backend EXPORT hal_backend_device_usb_gadget_data = { + .name = "usb_gadget", + .vendor = "SC7730", + .abi_version = HAL_ABI_VERSION_TIZEN_6_5, + .init = usb_gadget_init, + .exit = usb_gadget_exit, }; diff --git a/packaging/device-manager-plugin-sc7730.spec b/packaging/device-manager-plugin-sc7730.spec index f536e98..d2c19d4 100644 --- a/packaging/device-manager-plugin-sc7730.spec +++ b/packaging/device-manager-plugin-sc7730.spec @@ -10,12 +10,12 @@ Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig BuildRequires: cmake BuildRequires: pkgconfig(dlog) -BuildRequires: pkgconfig(hwcommon) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(hal-api-common) BuildRequires: pkgconfig(hal-api-device) BuildRequires: pkgconfig(libsyscommon) +BuildRequires: pkgconfig(hal-backend-device-common) %description Device manager plugin sc7730 @@ -45,7 +45,6 @@ install -m 644 rules/61-video.rules %{buildroot}%{_prefix}/lib/udev/rules.d %files /hal/lib/*.so* -%{_libdir}/hw/*.so %manifest %{name}.manifest %license LICENSE.Apache-2.0 %{_prefix}/lib/udev/rules.d/61-video.rules -- cgit v1.2.3