samsung: remove old fingerprint and lights hal
authorJan Altensen <info@stricted.net>
Tue, 26 Nov 2019 18:47:02 +0000 (19:47 +0100)
committerJan Altensen <info@stricted.net>
Tue, 26 Nov 2019 18:47:33 +0000 (19:47 +0100)
 * there are hidl replacements available, use them

Change-Id: I36243259627aeb76c2dfbfc2b6b4e219c509cfb5

Android.mk
fingerprint/Android.mk [deleted file]
fingerprint/bauth/Android.mk [deleted file]
fingerprint/bauth/fingerprint.c [deleted file]
liblights/Android.mk [deleted file]
liblights/NOTICE [deleted file]
liblights/include/liblights/samsung_lights_helper.h [deleted file]
liblights/include/samsung_lights.h [deleted file]
liblights/lights.c [deleted file]
liblights/lights_helper.c [deleted file]

index 69862808951b0582edafc88ab355aff0c6d5c930..e5fbb59e4447f1f49c67aeb7d1f32a644e601895 100644 (file)
@@ -45,9 +45,7 @@ include $(SAM_ROOT)/AdvancedDisplay/Android.mk
 include $(SAM_ROOT)/audio/Android.mk
 include $(SAM_ROOT)/consumerir/Android.mk
 include $(SAM_ROOT)/dtbhtool/Android.mk
-include $(SAM_ROOT)/fingerprint/Android.mk
 include $(SAM_ROOT)/hidl/Android.mk
-include $(SAM_ROOT)/liblights/Android.mk
 include $(SAM_ROOT)/modemloader/Android.mk
 include $(SAM_ROOT)/power/Android.mk
 include $(SAM_ROOT)/ril/Android.mk
diff --git a/fingerprint/Android.mk b/fingerprint/Android.mk
deleted file mode 100644 (file)
index 51fd331..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-FP_ROOT := $(call my-dir)
-
-ifneq ($(TARGET_SEC_FP_HAL_VARIANT),)
-include $(FP_ROOT)/$(TARGET_SEC_FP_HAL_VARIANT)/Android.mk
-endif
diff --git a/fingerprint/bauth/Android.mk b/fingerprint/bauth/Android.mk
deleted file mode 100644 (file)
index e4041da..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
-    fingerprint.c
-
-LOCAL_SHARED_LIBRARIES := \
-    libhardware liblog
-
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_MODULE := fingerprint.$(TARGET_BOARD_PLATFORM)
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_SHARED_LIBRARY)
diff --git a/fingerprint/bauth/fingerprint.c b/fingerprint/bauth/fingerprint.c
deleted file mode 100644 (file)
index c2ee914..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (C) 2017 Jesse Chan, The LineageOS Project
- *
- * 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.
- */
-
-#define LOG_TAG "SS Fingerprint HAL"
-
-#include <dlfcn.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-
-#include <cutils/log.h>
-
-#include <hardware/hardware.h>
-#include <hardware/fingerprint.h>
-#include <utils/threads.h>
-
-typedef struct {
-    void *libhandle;
-    int (*ss_fingerprint_close)(void);
-    uint64_t (*ss_fingerprint_pre_enroll)(void);
-    int (*ss_fingerprint_enroll)(const hw_auth_token_t *hat, uint32_t gid, uint32_t timeout_sec);
-    int (*ss_fingerprint_post_enroll)(void);
-    uint64_t (*ss_fingerprint_get_auth_id)(void);
-    int (*ss_fingerprint_remove)(uint32_t gid, uint32_t fid);
-    int (*ss_fingerprint_set_active_group)(uint32_t gid, const char *store_path);
-    int (*ss_fingerprint_authenticate)(uint64_t operation_id, uint32_t gid);
-    int (*ss_set_notify_callback)(fingerprint_notify_t notify);
-    int (*ss_fingerprint_cancel)(void);
-    int (*ss_fingerprint_open)(const char *id);
-} bauth_server_handle_t;
-
-bauth_server_handle_t* bauth_handle;
-
-static fingerprint_notify_t original_notify;
-
-static int load_bauth_server(void)
-{
-    bauth_handle = (bauth_server_handle_t *)malloc(sizeof(bauth_server_handle_t));
-    if (bauth_handle == NULL)
-        goto no_memory;
-
-    void *libhandle = bauth_handle->libhandle;
-
-    libhandle = dlopen("libbauthserver.so", RTLD_NOW);
-    bauth_handle->ss_fingerprint_close = dlsym(libhandle, "ss_fingerprint_close");
-    bauth_handle->ss_fingerprint_pre_enroll = dlsym(libhandle, "ss_fingerprint_pre_enroll");
-    bauth_handle->ss_fingerprint_enroll = dlsym(libhandle, "ss_fingerprint_enroll");
-    bauth_handle->ss_fingerprint_post_enroll = dlsym(libhandle, "ss_fingerprint_post_enroll");
-    bauth_handle->ss_fingerprint_get_auth_id = dlsym(libhandle, "ss_fingerprint_get_auth_id");
-    bauth_handle->ss_fingerprint_remove = dlsym(libhandle, "ss_fingerprint_remove");
-    bauth_handle->ss_fingerprint_set_active_group = dlsym(libhandle, "ss_fingerprint_set_active_group");
-    bauth_handle->ss_fingerprint_authenticate = dlsym(libhandle, "ss_fingerprint_authenticate");
-    bauth_handle->ss_set_notify_callback = dlsym(libhandle, "ss_set_notify_callback");
-    bauth_handle->ss_fingerprint_cancel = dlsym(libhandle, "ss_fingerprint_cancel");
-    bauth_handle->ss_fingerprint_open = dlsym(libhandle, "ss_fingerprint_open");
-
-    return 0;
-
-no_memory:
-    ALOGE("%s: not enough memory to load the libhandle", __func__);
-    return -ENOMEM;
-}
-
-static void hal_notify_convert(const fingerprint_msg_t *msg)
-{
-    fingerprint_msg_t *new_msg = (fingerprint_msg_t *)msg;
-
-    switch (msg->type) {
-        case FINGERPRINT_TEMPLATE_ENROLLING:
-            new_msg->data.enroll.samples_remaining = 100 - msg->data.enroll.samples_remaining;
-            break;
-
-        default:
-            break;
-    }
-
-    return original_notify(new_msg);
-}
-
-static int fingerprint_close(hw_device_t *dev)
-{
-    bauth_handle->ss_fingerprint_close();
-
-    if (dev)
-        free(dev);
-
-    return 0;
-}
-
-static uint64_t fingerprint_pre_enroll(struct fingerprint_device __unused *dev)
-{
-    return bauth_handle->ss_fingerprint_pre_enroll();
-}
-
-static int fingerprint_enroll(struct fingerprint_device __unused *dev, const hw_auth_token_t *hat,
-        uint32_t gid, uint32_t timeout_sec)
-{
-    return bauth_handle->ss_fingerprint_enroll(hat, gid, timeout_sec);
-}
-
-static int fingerprint_post_enroll(struct fingerprint_device __unused *dev)
-{
-    return bauth_handle->ss_fingerprint_post_enroll();
-}
-
-static uint64_t fingerprint_get_auth_id(struct fingerprint_device __unused *dev)
-{
-    return bauth_handle->ss_fingerprint_get_auth_id();
-}
-
-static int fingerprint_cancel(struct fingerprint_device __unused *dev)
-{
-    fingerprint_msg_t *cancel_msg;
-    int ret = 0;
-
-    ret = bauth_handle->ss_fingerprint_cancel();
-
-    cancel_msg = (fingerprint_msg_t *)malloc(sizeof(fingerprint_msg_t));
-    memset(cancel_msg, 0, sizeof(fingerprint_msg_t));
-
-    cancel_msg->type = FINGERPRINT_ERROR;
-    cancel_msg->data.error = FINGERPRINT_ERROR_CANCELED;
-
-    original_notify(cancel_msg);
-    return ret;
-}
-
-static int fingerprint_remove(struct fingerprint_device __unused *dev, uint32_t gid, uint32_t fid)
-{
-    return bauth_handle->ss_fingerprint_remove(gid, fid);
-}
-
-static int fingerprint_set_active_group(struct fingerprint_device __unused *dev, uint32_t gid,
-        const char *store_path)
-{
-    return bauth_handle->ss_fingerprint_set_active_group(gid, store_path);
-}
-
-static int fingerprint_authenticate(struct fingerprint_device __unused *dev, uint64_t operation_id,
-        uint32_t gid)
-{
-    return bauth_handle->ss_fingerprint_authenticate(operation_id, gid);
-}
-
-static int set_notify_callback(struct fingerprint_device *dev, fingerprint_notify_t notify)
-{
-    /* Decorate with locks */
-    dev->notify = notify;
-    original_notify = notify;
-    return bauth_handle->ss_set_notify_callback(hal_notify_convert);
-}
-
-static int enumerate(struct fingerprint_device *dev __unused)
-{
-    return -1;
-}
-
-static int fingerprint_open(const hw_module_t* module, const char *id, hw_device_t** device)
-{
-    int ret;
-    fingerprint_device_t *dev = NULL;
-
-    if (device == NULL) {
-        ALOGE("NULL device on open");
-        ret = -ENODEV;
-        goto fail;
-    }
-
-    ret = load_bauth_server();
-    if (ret < 0)
-        goto fail;
-
-    dev = (fingerprint_device_t*)calloc(1, sizeof(fingerprint_device_t));
-    if (dev == NULL) {
-        ret = -ENOMEM;
-        goto fail;
-    }
-
-    dev->common.tag = HARDWARE_DEVICE_TAG;
-    dev->common.version = FINGERPRINT_MODULE_API_VERSION_2_1;
-    dev->common.module = (struct hw_module_t*) module;
-    dev->common.close = fingerprint_close;
-
-    dev->pre_enroll = fingerprint_pre_enroll;
-    dev->enroll = fingerprint_enroll;
-    dev->post_enroll = fingerprint_post_enroll;
-    dev->get_authenticator_id = fingerprint_get_auth_id;
-    dev->cancel = fingerprint_cancel;
-    dev->remove = fingerprint_remove;
-    dev->set_active_group = fingerprint_set_active_group;
-    dev->authenticate = fingerprint_authenticate;
-    dev->set_notify = set_notify_callback;
-    dev->enumerate = enumerate;
-    dev->notify = NULL;
-
-    *device = (hw_device_t*) dev;
-    return (*bauth_handle->ss_fingerprint_open)(id);
-
-fail:
-    ALOGE("%s: failed to open FP device (ret=%d)", __func__, ret);
-    return ret;
-}
-
-static struct hw_module_methods_t fingerprint_module_methods = {
-    .open = fingerprint_open,
-};
-
-fingerprint_module_t HAL_MODULE_INFO_SYM = {
-    .common = {
-        .tag                = HARDWARE_MODULE_TAG,
-        .module_api_version = FINGERPRINT_MODULE_API_VERSION_2_1,
-        .hal_api_version    = HARDWARE_HAL_API_VERSION,
-        .id                 = FINGERPRINT_HARDWARE_MODULE_ID,
-        .name               = "Samsung TZ Fingerprint HAL",
-        .author             = "The LineageOS Project",
-        .methods            = &fingerprint_module_methods,
-    },
-};
diff --git a/liblights/Android.mk b/liblights/Android.mk
deleted file mode 100644 (file)
index a1629f1..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2015-2016 The CyanogenMod Project
-#
-# 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.
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := lights_helper.c
-
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
-
-LOCAL_SHARED_LIBRARIES := liblog
-
-LOCAL_MODULE := liblights_helper
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_STATIC_LIBRARY)
-
-ifneq ($(TARGET_PROVIDES_LIBLIGHT),true)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := lights.c
-
-LOCAL_SHARED_LIBRARIES := liblog
-LOCAL_STATIC_LIBRARIES := liblights_helper
-
-LOCAL_MODULE := lights.$(TARGET_BOOTLOADER_BOARD_NAME)
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_MODULE_TAGS := optional
-LOCAL_PROPRIETARY_MODULE := true
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif
diff --git a/liblights/NOTICE b/liblights/NOTICE
deleted file mode 100644 (file)
index fc20c38..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-
-   Copyright (C) 2012 The Android Open Source Project
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-
-   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.
-
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
diff --git a/liblights/include/liblights/samsung_lights_helper.h b/liblights/include/liblights/samsung_lights_helper.h
deleted file mode 100644 (file)
index 4200207..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod Project
- *
- * 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.
- */
-
-#ifndef SAMSUNG_LIGHTS_HELPER_H
-#define SAMSUNG_LIGHTS_HELPER_H
-
-#include <samsung_lights.h>
-
-/*
- * Interfaces for other modules accessing lights HAL data.
- * For documentation, see lights_helper.c
- */
-extern int set_cur_button_brightness(const int brightness);
-extern int get_cur_panel_brightness();
-extern int get_max_panel_brightness();
-extern int set_cur_panel_brightness(const int brightness);
-extern int set_max_panel_brightness(const int brightness);
-
-#endif // SAMSUNG_LIGHTS_HELPER_H
diff --git a/liblights/include/samsung_lights.h b/liblights/include/samsung_lights.h
deleted file mode 100644 (file)
index b866a4e..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod Project
- * Copyright (C) 2017 The LineageOS Project
- *
- * 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.
- */
-
-#ifndef SAMSUNG_LIGHTS_H
-#define SAMSUNG_LIGHTS_H
-
-/*
- * Board specific nodes
- *
- * If your kernel exposes these controls in another place, you can either
- * symlink to the locations given here, or override this header in your
- * device tree.
- */
-#define PANEL_BRIGHTNESS_NODE "/sys/class/backlight/panel/brightness"
-#define PANEL_MAX_BRIGHTNESS_NODE "/sys/class/backlight/panel/max_brightness"
-#define BUTTON_BRIGHTNESS_NODE "/sys/class/sec/sec_touchkey/brightness"
-#define LED_BLINK_NODE "/sys/class/sec/led/led_blink"
-#define LED_BLN_NODE "/sys/class/misc/backlightnotification/notification_led"
-
-// Uncomment to enable variable button brightness
-//#define VAR_BUTTON_BRIGHTNESS 1
-
-/*
- * Brightness adjustment factors
- *
- * If one of your device's LEDs is more powerful than the others, use these
- * values to equalise them. This value is in the range 0.0-1.0.
- */
-#define LED_ADJUSTMENT_R 1.0
-#define LED_ADJUSTMENT_G 1.0
-#define LED_ADJUSTMENT_B 1.0
-
-/*
- * Light brightness factors
- *
- * It might make sense for all colours to be scaled down (for example, if your
- * LED is too bright). Use these values to adjust the brightness of each
- * light. This value is within the range 0-255.
- */
-#define LED_BRIGHTNESS_BATTERY 255
-#define LED_BRIGHTNESS_NOTIFICATION 255
-#define LED_BRIGHTNESS_ATTENTION 255
-
-#endif // SAMSUNG_LIGHTS_H
diff --git a/liblights/lights.c b/liblights/lights.c
deleted file mode 100644 (file)
index 92034ea..0000000
+++ /dev/null
@@ -1,431 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- * Copyright (C) 2015-2016 The CyanogenMod Project
- * Copyright (C) 2017 The LineageOS Project
- *
- * 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.
- */
-
-#define LOG_TAG "SamsungLightsHAL"
-/* #define LOG_NDEBUG 0 */
-
-#include <cutils/log.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <pthread.h>
-
-#include <sys/ioctl.h>
-#include <sys/types.h>
-
-#include <hardware/lights.h>
-#include <liblights/samsung_lights_helper.h>
-
-#include "samsung_lights.h"
-
-#define COLOR_MASK 0x00ffffff
-
-#define MAX_INPUT_BRIGHTNESS 255
-
-enum component_mask_t {
-    COMPONENT_BACKLIGHT = 0x1,
-    COMPONENT_BUTTON_LIGHT = 0x2,
-    COMPONENT_LED = 0x4,
-    COMPONENT_BLN = 0x8,
-};
-
-enum light_t {
-    TYPE_BATTERY = 0,
-    TYPE_NOTIFICATION = 1,
-    TYPE_ATTENTION = 2,
-};
-
-// Assume backlight is always supported
-static int hw_components = COMPONENT_BACKLIGHT;
-
-static pthread_once_t g_init = PTHREAD_ONCE_INIT;
-static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER;
-
-struct backlight_config {
-    int cur_brightness, max_brightness;
-};
-
-struct led_config {
-    unsigned int color;
-    int delay_on, delay_off;
-};
-
-static struct backlight_config g_backlight; // For panel backlight
-static struct led_config g_leds[3]; // For battery, notifications, and attention.
-static int g_cur_led = -1;          // Presently showing LED of the above.
-
-void check_component_support()
-{
-    if (access(BUTTON_BRIGHTNESS_NODE, W_OK) == 0)
-        hw_components |= COMPONENT_BUTTON_LIGHT;
-    if (access(LED_BLINK_NODE, W_OK) == 0)
-        hw_components |= COMPONENT_LED;
-#ifdef LED_BLN_NODE
-    if (access(LED_BLN_NODE, W_OK) == 0)
-        hw_components |= COMPONENT_BLN;
-#endif
-}
-
-void init_g_lock(void)
-{
-    pthread_mutex_init(&g_lock, NULL);
-}
-
-static int write_str(char const *path, const char* value)
-{
-    int fd;
-    static int already_warned;
-
-    already_warned = 0;
-
-    ALOGV("write_str: path %s, value %s", path, value);
-    fd = open(path, O_RDWR);
-
-    if (fd >= 0) {
-        int amt = write(fd, value, strlen(value));
-        close(fd);
-        return amt == -1 ? -errno : 0;
-    } else {
-        if (already_warned == 0) {
-            ALOGE("write_str failed to open %s", path);
-            already_warned = 1;
-        }
-        return -errno;
-    }
-}
-
-static int rgb_to_brightness(struct light_state_t const *state)
-{
-    int color = state->color & COLOR_MASK;
-
-    return ((77*((color>>16) & 0x00ff))
-        + (150*((color>>8) & 0x00ff)) + (29*(color & 0x00ff))) >> 8;
-}
-
-static int set_light_backlight(struct light_device_t *dev __unused,
-                               struct light_state_t const *state)
-{
-    int err = 0;
-    int brightness = rgb_to_brightness(state);
-    int max_brightness = g_backlight.max_brightness;
-
-    /*
-     * If max panel brightness is not the default (255),
-     * apply linear scaling across the accepted range.
-     */
-    if (max_brightness != MAX_INPUT_BRIGHTNESS) {
-        int old_brightness = brightness;
-        brightness = brightness * max_brightness / MAX_INPUT_BRIGHTNESS;
-        ALOGV("%s: scaling brightness %d => %d", __func__,
-            old_brightness, brightness);
-    }
-
-    pthread_mutex_lock(&g_lock);
-    err = set_cur_panel_brightness(brightness);
-    if (err == 0)
-        g_backlight.cur_brightness = brightness;
-
-    pthread_mutex_unlock(&g_lock);
-    return err;
-}
-
-static int set_light_buttons(struct light_device_t* dev __unused,
-                             struct light_state_t const* state)
-{
-    int err = 0;
-    pthread_mutex_lock(&g_lock);
-    int brightness = (state->color & COLOR_MASK) ? 1 : 0;
-
-#ifdef VAR_BUTTON_BRIGHTNESS
-    brightness = rgb_to_brightness(state);
-#endif
-    err = set_cur_button_brightness(brightness);
-    pthread_mutex_unlock(&g_lock);
-
-    return err;
-}
-
-static int close_lights(struct light_device_t *dev)
-{
-    ALOGV("close_light is called");
-    if (dev)
-        free(dev);
-
-    return 0;
-}
-
-/* LEDs */
-static int write_leds(const struct led_config *led)
-{
-    static const struct led_config led_off = {0, 0, 0};
-
-    char blink[32];
-    int count, err;
-
-    if (led == NULL)
-        led = &led_off;
-
-    count = snprintf(blink,
-                     sizeof(blink) - 1,
-                     "0x%08x %d %d",
-                     led->color,
-                     led->delay_on,
-                     led->delay_off);
-    if (count < 0) {
-        return -errno;
-    } else if ((unsigned int)count >= sizeof(blink)-1) {
-        ALOGE("%s: Truncated string: blink=\"%s\".", __func__, blink);
-        return -EINVAL;
-    }
-
-    ALOGV("%s: color=0x%08x, delay_on=%d, delay_off=%d, blink=%s",
-          __func__, led->color, led->delay_on, led->delay_off, blink);
-
-    /* Add '\n' here to make the above log message clean. */
-    blink[count]   = '\n';
-    blink[count+1] = '\0';
-
-    pthread_mutex_lock(&g_lock);
-    err = write_str(LED_BLINK_NODE, blink);
-    pthread_mutex_unlock(&g_lock);
-
-    return err;
-}
-
-static int calibrate_color(int color, int brightness)
-{
-    int red = ((color >> 16) & 0xFF) * LED_ADJUSTMENT_R;
-    int green = ((color >> 8) & 0xFF) * LED_ADJUSTMENT_G;
-    int blue = (color & 0xFF) * LED_ADJUSTMENT_B;
-
-    return (((red * brightness) / 255) << 16) + (((green * brightness) / 255) << 8) + ((blue * brightness) / 255);
-}
-
-static int set_light_leds(struct light_state_t const *state, int type)
-{
-    struct led_config *led;
-    int err = 0;
-    int adjusted_brightness;
-
-    ALOGV("%s: type=%d, color=0x%010x, fM=%d, fOnMS=%d, fOffMs=%d.", __func__,
-          type, state->color,state->flashMode, state->flashOnMS, state->flashOffMS);
-
-    if (type < 0 || (size_t)type >= sizeof(g_leds)/sizeof(g_leds[0])) {
-        return -EINVAL;
-    }
-
-    /* type is one of:
-     *   0. battery
-     *   1. notifications
-     *   2. attention
-     * which are multiplexed onto the same physical LED in the above order. */
-    led = &g_leds[type];
-
-    switch (state->flashMode) {
-    case LIGHT_FLASH_NONE:
-        /* Set LED to a solid color, spec is unclear on the exact behavior here. */
-        led->delay_on = led->delay_off = 0;
-        break;
-    case LIGHT_FLASH_TIMED:
-    case LIGHT_FLASH_HARDWARE:
-        led->delay_on  = state->flashOnMS;
-        led->delay_off = state->flashOffMS;
-        break;
-    default:
-        return -EINVAL;
-    }
-
-    switch (type) {
-    case TYPE_BATTERY:
-        adjusted_brightness = LED_BRIGHTNESS_BATTERY;
-        break;
-    case TYPE_NOTIFICATION:
-        adjusted_brightness = LED_BRIGHTNESS_NOTIFICATION;
-        break;
-    case TYPE_ATTENTION:
-        adjusted_brightness = LED_BRIGHTNESS_ATTENTION;
-        break;
-    default:
-        adjusted_brightness = 255;
-    }
-
-
-
-    led->color = calibrate_color(state->color & COLOR_MASK, adjusted_brightness);
-
-    if (led->color > 0) {
-        /* This LED is lit. */
-        if (type >= g_cur_led) {
-            /* And it has the highest priority, so show it. */
-            err = write_leds(led);
-            g_cur_led = type;
-        }
-    } else {
-        /* This LED is not (any longer) lit. */
-        if (type == g_cur_led) {
-            /* But it is currently showing, switch to a lower-priority LED. */
-            int i;
-
-            for (i = type-1; i >= 0; i--) {
-                if (g_leds[i].color > 0) {
-                    /* Found a lower-priority LED to switch to. */
-                    err = write_leds(&g_leds[i]);
-                    goto switched;
-                }
-            }
-
-            /* No LEDs are lit, turn off. */
-            err = write_leds(NULL);
-switched:
-            g_cur_led = i;
-        }
-    }
-
-    return err;
-}
-
-#ifdef LED_BLN_NODE
-static int set_light_bln_notifications(struct light_device_t *dev __unused,
-                                  struct light_state_t const *state)
-{
-    int err = 0;
-
-    pthread_mutex_lock(&g_lock);
-    err = write_str(LED_BLN_NODE, state->color & COLOR_MASK ? "1" : "0");
-    pthread_mutex_unlock(&g_lock);
-
-    return err;
-}
-#endif
-static int set_light_leds_battery(struct light_device_t *dev __unused,
-                                  struct light_state_t const *state)
-{
-    return set_light_leds(state, TYPE_BATTERY);
-}
-
-static int set_light_leds_notifications(struct light_device_t *dev __unused,
-                                        struct light_state_t const *state)
-{
-    return set_light_leds(state, TYPE_NOTIFICATION);
-}
-
-static int set_light_leds_attention(struct light_device_t *dev __unused,
-                                    struct light_state_t const *state)
-{
-    struct light_state_t fixed;
-
-    memcpy(&fixed, state, sizeof(fixed));
-
-    /* The framework does odd things with the attention lights, fix them up to
-     * do something sensible here. */
-    switch (fixed.flashMode) {
-    case LIGHT_FLASH_NONE:
-        /* LightsService.Light::stopFlashing calls with non-zero color. */
-        fixed.color = 0;
-        break;
-    case LIGHT_FLASH_HARDWARE:
-        /* PowerManagerService::setAttentionLight calls with onMS=3, offMS=0, which
-         * just makes for a slightly-dimmer LED. */
-        if (fixed.flashOnMS > 0 && fixed.flashOffMS == 0)
-            fixed.flashMode = LIGHT_FLASH_NONE;
-            fixed.color = 0x000000ff;
-        break;
-    }
-
-    return set_light_leds(&fixed, TYPE_ATTENTION);
-}
-
-static int open_lights(const struct hw_module_t *module, char const *name,
-                        struct hw_device_t **device)
-{
-    int requested_component;
-    int (*set_light)(struct light_device_t *dev,
-        struct light_state_t const *state);
-
-    check_component_support();
-
-    if (0 == strcmp(LIGHT_ID_BACKLIGHT, name)) {
-        requested_component = COMPONENT_BACKLIGHT;
-        set_light = set_light_backlight;
-    } else if (0 == strcmp(LIGHT_ID_BUTTONS, name)) {
-        requested_component = COMPONENT_BUTTON_LIGHT;
-        set_light = set_light_buttons;
-    } else if (0 == strcmp(LIGHT_ID_BATTERY, name)) {
-        requested_component = COMPONENT_LED;
-        set_light = set_light_leds_battery;
-    } else if (0 == strcmp(LIGHT_ID_NOTIFICATIONS, name)) {
-        requested_component = COMPONENT_LED;
-        set_light = set_light_leds_notifications;
-#ifdef LED_BLN_NODE
-        if (hw_components & COMPONENT_BLN) {
-            requested_component = COMPONENT_BLN;
-            set_light = set_light_bln_notifications;
-        }
-#endif
-    } else if (0 == strcmp(LIGHT_ID_ATTENTION, name)) {
-        requested_component = COMPONENT_LED;
-        set_light = set_light_leds_attention;
-    } else {
-        return -EINVAL;
-    }
-
-    if ((hw_components & requested_component) == 0) {
-        ALOGV("%s: component 0x%x not supported by device", __func__,
-            requested_component);
-        return -EINVAL;
-    }
-
-    int max_brightness = get_max_panel_brightness();
-    if (max_brightness < 0) {
-        ALOGE("%s: failed to read max panel brightness, fallback to 255!",
-            __func__);
-        max_brightness = 255;
-    }
-    g_backlight.max_brightness = max_brightness;
-
-    pthread_once(&g_init, init_g_lock);
-
-    struct light_device_t *dev = malloc(sizeof(struct light_device_t));
-    memset(dev, 0, sizeof(*dev));
-
-    dev->common.tag = HARDWARE_DEVICE_TAG;
-    dev->common.version = 0;
-    dev->common.module = (struct hw_module_t *)module;
-    dev->common.close = (int (*)(struct hw_device_t *))close_lights;
-    dev->set_light = set_light;
-
-    *device = (struct hw_device_t *)dev;
-
-    return 0;
-}
-
-static struct hw_module_methods_t lights_module_methods = {
-    .open =  open_lights,
-};
-
-struct hw_module_t HAL_MODULE_INFO_SYM = {
-    .tag = HARDWARE_MODULE_TAG,
-    .version_major = 1,
-    .version_minor = 0,
-    .id = LIGHTS_HARDWARE_MODULE_ID,
-    .name = "Samsung Lights Module",
-    .author = "The CyanogenMod Project",
-    .methods = &lights_module_methods,
-};
diff --git a/liblights/lights_helper.c b/liblights/lights_helper.c
deleted file mode 100644 (file)
index be59399..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod Project
- *
- * 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.
- */
-
-#define LOG_TAG "SamsungLightsHelper"
-/* #define LOG_NDEBUG 0 */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-#include <cutils/log.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include <liblights/samsung_lights_helper.h>
-
-/*
- * Reads an Integer from a file.
- *
- * @param path The absolute path string.
- * @return The Integer with decimal base, -1 or -errno on error.
- */
-static int read_int(char const *path)
-{
-    int fd, len;
-    int ret = 0;
-    const int INT_MAX_STRLEN = 10;
-    char buffer[INT_MAX_STRLEN+1];
-
-    fd = open(path, O_RDONLY);
-    if (fd < 0) {
-        ret = -errno;
-        ALOGE("%s: failed to open %s (%s)", __func__, path, strerror(errno));
-        goto exit;
-    }
-
-    len = read(fd, buffer, INT_MAX_STRLEN-1);
-    if (len < 0) {
-        ret = -errno;
-        ALOGE("%s: failed to read from %s (%s)", __func__, path, strerror(errno));
-        goto exit;
-    }
-
-    buffer[len] = '\0';
-
-    /* now parse the integer from buffer */
-    char *endptr = NULL;
-    ret = (int) strtol(buffer, &endptr, 10);
-    if (ret == 0 && endptr == NULL) {
-        ret = -1;
-        ALOGE("%s: failed to extract number from string %s", __func__, buffer);
-        goto exit;
-    }
-
-exit:
-    if (fd >= 0)
-        close(fd);
-    return ret;
-}
-
-/*
- * Writes an Integer to a file.
- *
- * @param path The absolute path string.
- * @param value The Integer value to be written.
- * @return 0 on success, -errno on error.
- */
-static int write_int(char const *path, const int value)
-{
-    int fd, len, num_bytes;
-    int ret = 0;
-    const int INT_MAX_STRLEN = 10;
-    char buffer[INT_MAX_STRLEN+1];
-
-    fd = open(path, O_WRONLY);
-    if (fd < 0) {
-        ret = -errno;
-        ALOGE("%s: failed to open %s (%s)", __func__, path, strerror(errno));
-        goto exit;
-    }
-
-    num_bytes = sprintf(buffer, "%d", value);
-    len = write(fd, buffer, num_bytes);
-    if (len < 0) {
-        ret = -errno;
-        ALOGE("%s: failed to write to %s (%s)", __func__, path, strerror(errno));
-        goto exit;
-    }
-
-exit:
-    if (fd >= 0)
-        close(fd);
-    return ret;
-}
-
-/*
- * Set the current button brightness via sysfs.
- *
- * @param brightness The brightness value.
- * @return 0 on success, errno on error.
- */
-inline int set_cur_button_brightness(const int brightness)
-{
-    return write_int(BUTTON_BRIGHTNESS_NODE, brightness);
-}
-
-/*
- * Read the current panel brightness from sysfs.
- *
- * @return The brightness as Integer, -1 on error.
- */
-inline int get_cur_panel_brightness()
-{
-    return read_int(PANEL_BRIGHTNESS_NODE);
-}
-
-/*
- * Read the maximum panel brightness from sysfs.
- *
- * @return The brightness as Integer, -1 on error.
- */
-inline int get_max_panel_brightness()
-{
-    return read_int(PANEL_MAX_BRIGHTNESS_NODE);
-}
-
-/*
- * Set the current panel brightness via sysfs.
- *
- * @param brightness The (scaled) brightness value.
- * @return 0 on success, errno on error.
- */
-inline int set_cur_panel_brightness(const int brightness)
-{
-    return write_int(PANEL_BRIGHTNESS_NODE, brightness);
-}
-
-/*
- * Set the maximum panel brightness via sysfs.
- *
- * @param brightness The brightness value.
- * @return 0 on success, errno on error.
- */
-inline int set_max_panel_brightness(const int brightness)
-{
-    return write_int(PANEL_MAX_BRIGHTNESS_NODE, brightness);
-}