From d01b0b739c5102b9f48e4a848526153aeb93cbdd Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Mon, 2 Aug 2021 07:11:21 +0000 Subject: [PATCH] Add input patch-file Signed-off-by: YOUR_NAME --- kernel.mk | 3 +- .../hi3516dv300_small_patch/hdf_input.patch | 200 ++++++ .../hi3516dv300_small.patch | 580 ++++++------------ 3 files changed, 392 insertions(+), 391 deletions(-) create mode 100755 linux-4.19/hi3516dv300_small_patch/hdf_input.patch diff --git a/kernel.mk b/kernel.mk index e565401..c799582 100644 --- a/kernel.mk +++ b/kernel.mk @@ -64,6 +64,7 @@ ifneq ($(findstring $(PRODUCT_NAME), hi3516dv300 Hi3516DV300),) HI3516DV300_PATCH_DIR := $(OHOS_BUILD_HOME)/kernel/linux/patches/linux-4.19/hi3516dv300_small_patch HI3516DV300_PATCH_FILE := $(HI3516DV300_PATCH_DIR)/hi3516dv300_small.patch HDF_PATCH_FILE := $(HI3516DV300_PATCH_DIR)/hdf.patch +HDF_INPUT_PATCH_FILE := $(HI3516DV300_PATCH_DIR)/hdf_input.patch KERNEL_IMAGE_FILE := $(KERNEL_SRC_TMP_PATH)/arch/arm/boot/uImage ifeq ($(PRODUCT_NAME), hi3516dv300) DEFCONFIG_FILE := hi3516dv300_small_defconfig @@ -76,7 +77,7 @@ export PRODUCT_PATH=vendor/hisilicon/hispark_taurus_linux $(KERNEL_IMAGE_FILE): $(hide) echo "build kernel..." $(hide) rm -rf $(KERNEL_SRC_TMP_PATH);mkdir -p $(KERNEL_SRC_TMP_PATH);cp -arfL $(KERNEL_SRC_PATH)/* $(KERNEL_SRC_TMP_PATH)/ - $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(HDF_PATCH_FILE) && patch -p1 < $(HI3516DV300_PATCH_FILE) + $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(HDF_PATCH_FILE) && patch -p1 < $(HI3516DV300_PATCH_FILE) && patch -p1 < $(HDF_INPUT_PATCH_FILE) $(hide) cp -rf $(KERNEL_CONFIG_PATH)/. $(KERNEL_SRC_TMP_PATH)/ $(hide) $(KERNEL_MAKE) -C $(KERNEL_SRC_TMP_PATH) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) distclean $(hide) $(KERNEL_MAKE) -C $(KERNEL_SRC_TMP_PATH) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(DEFCONFIG_FILE) diff --git a/linux-4.19/hi3516dv300_small_patch/hdf_input.patch b/linux-4.19/hi3516dv300_small_patch/hdf_input.patch new file mode 100755 index 0000000..51b2658 --- /dev/null +++ b/linux-4.19/hi3516dv300_small_patch/hdf_input.patch @@ -0,0 +1,200 @@ +diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile +index bd7ac53b7..d7efd1e3d 100644 +--- a/drivers/hid/Makefile ++++ b/drivers/hid/Makefile +@@ -2,6 +2,15 @@ + # + # Makefile for the HID driver + # ++HDF_ROOT_DIR = -Idrivers/hdf ++ccflags-$(CONFIG_DRIVERS_HDF_INPUT) += $(HDF_ROOT_DIR)/framework/model/input/driver \ ++ $(HDF_ROOT_DIR)/framework/include/core \ ++ $(HDF_ROOT_DIR)/framework/core/common/include/host \ ++ $(HDF_ROOT_DIR)/framework/include/utils \ ++ $(HDF_ROOT_DIR)/framework/include/osal \ ++ $(HDF_ROOT_DIR)/framework/ability/sbuf/include \ ++ $(HDF_ROOT_DIR)/khdf/osal/include \ ++ -I../../../../../third_party/FreeBSD/sys/dev/evdev + hid-y := hid-core.o hid-input.o hid-quirks.o + hid-$(CONFIG_DEBUG_FS) += hid-debug.o + +diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c +index 05122167d..94cfdfbbf 100644 +--- a/drivers/hid/hid-core.c ++++ b/drivers/hid/hid-core.c +@@ -36,6 +36,9 @@ + #include + #include + ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++#include "hdf_hid_adapter.h" ++#endif + #include "hid-ids.h" + + /* +@@ -1340,6 +1343,11 @@ static void hid_process_event(struct hid_device *hid, struct hid_field *field, + hidinput_hid_event(hid, field, usage, value); + if (hid->claimed & HID_CLAIMED_HIDDEV && interrupt && hid->hiddev_hid_event) + hid->hiddev_hid_event(hid, field, usage, value); ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++ if (hid->input_dev) { ++ HidReportEvent(hid->input_dev, usage->type, usage->code, value); ++ } ++#endif + } + + /* +@@ -1743,6 +1751,53 @@ static const struct device_attribute dev_attr_country = { + .show = show_country, + }; + ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++static bool check_mouse(char *name) ++{ ++ static char *option[]={"Mouse", "mouse", "MOUSE", "Razer"}; ++ for (int i = 0; i < 4; i++) { ++ if (strstr(name, option[i])) ++ return true; ++ } ++ return false; ++} ++static bool check_kbd(char *name) ++{ ++ static char *option[]={"Keyboard", "keyboard"}; ++ for (int i = 0; i < 2; i++) { ++ if (strstr(name, option[i])) ++ return true; ++ } ++ return false; ++} ++static void notify_connect_event(struct hid_device *hdev) ++{ ++ bool check; ++ int type = -1; ++ HidInfo *dev = (HidInfo *)kmalloc(sizeof(HidInfo), GFP_KERNEL); ++ if (dev == NULL) { ++ printk("%s: malloc failed", __func__); ++ return; ++ } ++ type = check_mouse(hdev->name)?HID_TYPE_MOUSE:type; ++ type = check_kbd(hdev->name)?HID_TYPE_KEYBOARD:type; ++ if ( type < 0) { ++ kfree(dev); ++ dev = NULL; ++ return; ++ } ++ ++ dev->devType = type; ++ dev->devName = hdev->name; ++ hdev->input_dev = HidRegisterHdfInputDev(dev); ++ if (hdev->input_dev == NULL) { ++ printk("%s: RegisterInputDevice failed\n", __func__); ++ } ++ kfree(dev); ++ dev = NULL; ++} ++#endif ++ + int hid_connect(struct hid_device *hdev, unsigned int connect_mask) + { + static const char *types[] = { "Device", "Pointer", "Mouse", "Device", +@@ -1833,6 +1888,10 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask) + buf, bus, hdev->version >> 8, hdev->version & 0xff, + type, hdev->name, hdev->phys); + ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++ notify_connect_event(hdev); ++#endif ++ + return 0; + } + EXPORT_SYMBOL_GPL(hid_connect); +@@ -1847,6 +1906,10 @@ void hid_disconnect(struct hid_device *hdev) + if (hdev->claimed & HID_CLAIMED_HIDRAW) + hidraw_disconnect(hdev); + hdev->claimed = 0; ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++ if (hdev->input_dev) ++ HidUnregisterHdfInputDev(hdev->input_dev); ++#endif + } + EXPORT_SYMBOL_GPL(hid_disconnect); + +diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c +index 11bd2ca22..6f7805698 100644 +--- a/drivers/hid/hid-input.c ++++ b/drivers/hid/hid-input.c +@@ -32,6 +32,10 @@ + #include + #include + ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++#include "hdf_hid_adapter.h" ++#endif ++ + #include "hid-ids.h" + + #define unk KEY_UNKNOWN +@@ -1365,7 +1369,15 @@ void hidinput_report_event(struct hid_device *hid, struct hid_report *report) + return; + + list_for_each_entry(hidinput, &hid->inputs, list) ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++ { ++#endif + input_sync(hidinput->input); ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++ if(hid->input_dev) ++ HidReportEvent(hid->input_dev, EV_SYN, SYN_REPORT, 0); ++ } ++#endif + } + EXPORT_SYMBOL_GPL(hidinput_report_event); + +@@ -1729,6 +1741,35 @@ static inline void hidinput_configure_usages(struct hid_input *hidinput, + report->field[i]->usage + j); + } + ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++static void transfer_info(struct input_dev *dev) ++{ ++ HidInfo *info = (HidInfo *)kmalloc(sizeof(HidInfo),GFP_KERNEL); ++ if (info == NULL) { ++ printk("%s: malloc failed\n",__func__); ++ return; ++ } ++ info->devName = dev->name; ++ memcpy(info->devProp, dev->propbit, sizeof(unsigned long) * BITS_TO_LONGS(INPUT_PROP_CNT)); ++ memcpy(info->eventType, dev->evbit, sizeof(unsigned long) * BITS_TO_LONGS(EV_CNT)); ++ memcpy(info->keyCode, dev->keybit, sizeof(unsigned long) * BITS_TO_LONGS(KEY_CNT)); ++ memcpy(info->relCode, dev->relbit, sizeof(unsigned long) * BITS_TO_LONGS(REL_CNT)); ++ memcpy(info->absCode, dev->absbit, sizeof(unsigned long) * BITS_TO_LONGS(ABS_CNT)); ++ memcpy(info->miscCode, dev->mscbit, sizeof(unsigned long) * BITS_TO_LONGS(MSC_CNT)); ++ memcpy(info->ledCode, dev->ledbit, sizeof(unsigned long) * BITS_TO_LONGS(LED_CNT)); ++ memcpy(info->soundCode, dev->sndbit, sizeof(unsigned long) * BITS_TO_LONGS(SND_CNT)); ++ memcpy(info->forceCode, dev->ffbit, sizeof(unsigned long) * BITS_TO_LONGS(FF_CNT)); ++ memcpy(info->switchCode, dev->swbit, sizeof(unsigned long) * BITS_TO_LONGS(SW_CNT)); ++ info->bustype = dev->id.bustype; ++ info->vendor = dev->id.vendor; ++ info->product = dev->id.product; ++ info->version = dev->id.version; ++ SendInfoToHdf(info); ++ kfree(info); ++ info = NULL; ++} ++#endif ++ + /* + * Register the input device; print a message. + * Configure the input layer interface +@@ -1811,7 +1852,9 @@ int hidinput_connect(struct hid_device *hid, unsigned int force) + hidinput_cleanup_hidinput(hid, hidinput); + continue; + } +- ++#if defined(CONFIG_DRIVERS_HDF_INPUT) ++ transfer_info(hidinput->input); ++#endif + if (input_register_device(hidinput->input)) + goto out_unwind; + hidinput->registered = true; diff --git a/linux-4.19/hi3516dv300_small_patch/hi3516dv300_small.patch b/linux-4.19/hi3516dv300_small_patch/hi3516dv300_small.patch index 1a912b6..cef9780 100644 --- a/linux-4.19/hi3516dv300_small_patch/hi3516dv300_small.patch +++ b/linux-4.19/hi3516dv300_small_patch/hi3516dv300_small.patch @@ -338977,196 +338977,196 @@ index 000000000000..8b9a11d8cac2 --- /dev/null +++ b/drivers/net/ethernet/hisilicon/hisi-femac/festa_s28v115_2c02.h @@ -0,0 +1,191 @@ -+/* -+ * Copyright (c) Hisilicon Technologies Co., Ltd. 2018-2020. All rights reserved. -+ * Description: Hieth driver festa_s28v115_2c02 phy fixup paramters -+ * Author: KTP_BSP -+ * Create: 2018-10-08 -+ */ -+ -+#ifndef __HIETH_FESTA_S28V115_2C02_H__ -+#define __HIETH_FESTA_S28V115_2C02_H__ -+ 0x33f9, 0xbd, 0x33fa, 0x34, 0x33fb, 0x00, -+ 0x33fc, 0x39, 0x3400, 0x39, 0x3401, 0xCC, -+ 0x3402, 0x2C, 0x3403, 0x02, 0x3404, 0xFD, -+ 0x3405, 0xFF, 0x3406, 0xF0, 0x3407, 0xF6, -+ 0x3408, 0x36, 0x3409, 0x18, 0x340A, 0x26, -+ 0x340B, 0x05, 0x340C, 0xC6, 0x340D, 0x01, -+ 0x340E, 0xF7, 0x340F, 0x36, 0x3410, 0x18, -+ 0x3411, 0xCC, 0x3412, 0x35, 0x3413, 0x9F, -+ 0x3414, 0x1A, 0x3415, 0xB3, 0x3416, 0x00, -+ 0x3417, 0xD2, 0x3418, 0x27, 0x3419, 0x09, -+ 0x341A, 0xFD, 0x341B, 0x00, 0x341C, 0xD2, -+ 0x341D, 0x7F, 0x341E, 0x01, 0x341F, 0xBF, -+ 0x3420, 0x7F, 0x3421, 0x01, 0x3422, 0xB1, -+ 0x3423, 0x39, 0x3424, 0x3C, 0x3425, 0x3C, -+ 0x3426, 0x30, 0x3427, 0xF6, 0x3428, 0x30, -+ 0x3429, 0x55, 0x342A, 0xC0, 0x342B, 0x07, -+ 0x342C, 0x18, 0x342D, 0xFE, 0x342E, 0x30, -+ 0x342F, 0x4C, 0x3430, 0x18, 0x3431, 0x3A, -+ 0x3432, 0x18, 0x3433, 0xE6, 0x3434, 0x00, -+ 0x3435, 0x5C, 0x3436, 0xE7, 0x3437, 0x01, -+ 0x3438, 0xC1, 0x3439, 0x07, 0x343A, 0x23, -+ 0x343B, 0x04, 0x343C, 0xC6, 0x343D, 0x07, -+ 0x343E, 0xE7, 0x343F, 0x01, 0x3440, 0x58, -+ 0x3441, 0x58, 0x3442, 0x58, 0x3443, 0x58, -+ 0x3444, 0x58, 0x3445, 0xE7, 0x3446, 0x00, -+ 0x3447, 0xF6, 0x3448, 0x20, 0x3449, 0x04, -+ 0x344A, 0xC4, 0x344B, 0x1F, 0x344C, 0xEA, -+ 0x344D, 0x00, 0x344E, 0xF7, 0x344F, 0x20, -+ 0x3450, 0x04, 0x3451, 0x38, 0x3452, 0x38, -+ 0x3453, 0x39, 0x3454, 0x3C, 0x3455, 0x37, -+ 0x3456, 0x36, 0x3457, 0x30, 0x3458, 0x1A, -+ 0x3459, 0xEE, 0x345A, 0x00, 0x345B, 0x18, -+ 0x345C, 0xE6, 0x345D, 0x00, 0x345E, 0x26, -+ 0x345F, 0x1C, 0x3460, 0xF6, 0x3461, 0x00, -+ 0x3462, 0x5C, 0x3463, 0xC5, 0x3464, 0x04, -+ 0x3465, 0x27, 0x3466, 0x06, 0x3467, 0xCC, -+ 0x3468, 0x36, 0x3469, 0x12, 0x346A, 0xBD, -+ 0x346B, 0xF0, 0x346C, 0xA5, 0x346D, 0xF6, -+ 0x346E, 0x00, 0x346F, 0x47, 0x3470, 0xC4, -+ 0x3471, 0xF3, 0x3472, 0xF7, 0x3473, 0x00, -+ 0x3474, 0x47, 0x3475, 0xC6, 0x3476, 0x01, -+ 0x3477, 0x1A, 0x3478, 0xEE, 0x3479, 0x00, -+ 0x347A, 0x20, 0x347B, 0x10, 0x347C, 0x5A, -+ 0x347D, 0x26, 0x347E, 0x14, 0x347F, 0xF6, -+ 0x3480, 0x00, 0x3481, 0x46, 0x3482, 0x4F, -+ 0x3483, 0xC4, 0x3484, 0x0C, 0x3485, 0x83, -+ 0x3486, 0x00, 0x3487, 0x08, 0x3488, 0x26, -+ 0x3489, 0x05, 0x348A, 0xC6, 0x348B, 0x02, -+ 0x348C, 0x18, 0x348D, 0xE7, 0x348E, 0x00, -+ 0x348F, 0x5F, 0x3490, 0x38, 0x3491, 0x38, -+ 0x3492, 0x39, 0x3493, 0xF6, 0x3494, 0x00, -+ 0x3495, 0x5C, 0x3496, 0xC5, 0x3497, 0x04, -+ 0x3498, 0x27, 0x3499, 0x06, 0x349A, 0xCC, -+ 0x349B, 0x36, 0x349C, 0x08, 0x349D, 0xBD, -+ 0x349E, 0xF0, 0x349F, 0xA5, 0x34A0, 0xF6, -+ 0x34A1, 0x00, 0x34A2, 0x47, 0x34A3, 0xC4, -+ 0x34A4, 0xF3, 0x34A5, 0xCA, 0x34A6, 0x08, -+ 0x34A7, 0xF7, 0x34A8, 0x00, 0x34A9, 0x47, -+ 0x34AA, 0x18, 0x34AB, 0xFE, 0x34AC, 0x00, -+ 0x34AD, 0xB6, 0x34AE, 0x18, 0x34AF, 0xAD, -+ 0x34B0, 0x00, 0x34B1, 0xBD, 0x34B2, 0x34, -+ 0x34B3, 0x24, 0x34B4, 0xF6, 0x34B5, 0x1E, -+ 0x34B6, 0x05, 0x34B7, 0xC5, 0x34B8, 0x02, -+ 0x34B9, 0x27, 0x34BA, 0x0A, 0x34BB, 0xF6, -+ 0x34BC, 0x1E, 0x34BD, 0x07, 0x34BE, 0xC5, -+ 0x34BF, 0x02, 0x34C0, 0x27, 0x34C1, 0x03, -+ 0x34C2, 0xBD, 0x34C3, 0xC0, 0x34C4, 0x33, -+ 0x34C5, 0xF6, 0x34C6, 0x31, 0x34C7, 0x1F, -+ 0x34C8, 0x37, 0x34C9, 0xC6, 0x34CA, 0x52, -+ 0x34CB, 0xBD, 0x34CC, 0xDC, 0x34CD, 0x53, -+ 0x34CE, 0x31, 0x34CF, 0xF6, 0x34D0, 0x00, -+ 0x34D1, 0x41, 0x34D2, 0xC5, 0x34D3, 0x10, -+ 0x34D4, 0x26, 0x34D5, 0x04, 0x34D6, 0x13, -+ 0x34D7, 0x23, 0x34D8, 0x40, 0x34D9, 0x0D, -+ 0x34DA, 0xBD, 0x34DB, 0x93, 0x34DC, 0xCE, -+ 0x34DD, 0x1A, 0x34DE, 0xEE, 0x34DF, 0x00, -+ 0x34E0, 0x18, 0x34E1, 0x6F, 0x34E2, 0x00, -+ 0x34E3, 0xC6, 0x34E4, 0x04, 0x34E5, 0x20, -+ 0x34E6, 0xA9, 0x34E7, 0x1A, 0x34E8, 0xEE, -+ 0x34E9, 0x00, 0x34EA, 0x18, 0x34EB, 0x6F, -+ 0x34EC, 0x00, 0x34ED, 0xC6, 0x34EE, 0x01, -+ 0x34EF, 0x20, 0x34F0, 0x9F, 0x34F1, 0x3C, -+ 0x34F2, 0x37, 0x34F3, 0x36, 0x34F4, 0x30, -+ 0x34F5, 0x1A, 0x34F6, 0xEE, 0x34F7, 0x00, -+ 0x34F8, 0x18, 0x34F9, 0xE6, 0x34FA, 0x00, -+ 0x34FB, 0x26, 0x34FC, 0x49, 0x34FD, 0xF6, -+ 0x34FE, 0x00, 0x34FF, 0x5C, 0x3500, 0xC5, -+ 0x3501, 0x04, 0x3502, 0x27, 0x3503, 0x06, -+ 0x3504, 0xCC, 0x3505, 0x35, 0x3506, 0xFC, -+ 0x3507, 0xBD, 0x3508, 0xF0, 0x3509, 0xA5, -+ 0x350A, 0xC6, 0x350B, 0x52, 0x350C, 0xBD, -+ 0x350D, 0xDC, 0x350E, 0xF3, 0x350F, 0x5D, -+ 0x3510, 0x27, 0x3511, 0x03, 0x3512, 0xBD, -+ 0x3513, 0xC0, 0x3514, 0x22, 0x3515, 0xF6, -+ 0x3516, 0x00, 0x3517, 0x46, 0x3518, 0xC5, -+ 0x3519, 0x0C, 0x351A, 0x26, 0x351B, 0x0A, -+ 0x351C, 0x1A, 0x351D, 0xEE, 0x351E, 0x00, -+ 0x351F, 0x18, 0x3520, 0x6F, 0x3521, 0x00, -+ 0x3522, 0xC6, 0x3523, 0x07, 0x3524, 0x20, -+ 0x3525, 0x1D, 0x3526, 0xFC, 0x3527, 0x30, -+ 0x3528, 0x0C, 0x3529, 0xBD, 0x352A, 0x93, -+ 0x352B, 0x19, 0x352C, 0xBD, 0x352D, 0x9F, -+ 0x352E, 0x0B, 0x352F, 0xC6, 0x3530, 0x02, -+ 0x3531, 0x37, 0x3532, 0xC6, 0x3533, 0x51, -+ 0x3534, 0xBD, 0x3535, 0xDC, 0x3536, 0x53, -+ 0x3537, 0x31, 0x3538, 0x7F, 0x3539, 0x02, -+ 0x353A, 0x07, 0x353B, 0xC6, 0x353C, 0x02, -+ 0x353D, 0x1A, 0x353E, 0xEE, 0x353F, 0x00, -+ 0x3540, 0x18, 0x3541, 0xE7, 0x3542, 0x00, -+ 0x3543, 0x38, 0x3544, 0x38, 0x3545, 0x39, -+ 0x3546, 0xC6, 0x3547, 0x52, 0x3548, 0xBD, -+ 0x3549, 0xDC, 0x354A, 0xF3, 0x354B, 0x5D, -+ 0x354C, 0x27, 0x354D, 0x03, 0x354E, 0xBD, -+ 0x354F, 0xC0, 0x3550, 0x22, 0x3551, 0xF6, -+ 0x3552, 0x00, 0x3553, 0x46, 0x3554, 0xC5, -+ 0x3555, 0x0C, 0x3556, 0x26, 0x3557, 0x0A, -+ 0x3558, 0x1A, 0x3559, 0xEE, 0x355A, 0x00, -+ 0x355B, 0x18, 0x355C, 0x6F, 0x355D, 0x00, -+ 0x355E, 0xC6, 0x355F, 0x07, 0x3560, 0x20, -+ 0x3561, 0xE1, 0x3562, 0xC6, 0x3563, 0x51, -+ 0x3564, 0xBD, 0x3565, 0xDC, 0x3566, 0xF3, -+ 0x3567, 0x5D, 0x3568, 0x26, 0x3569, 0x04, -+ 0x356A, 0xC6, 0x356B, 0x02, 0x356C, 0x20, -+ 0x356D, 0xD5, 0x356E, 0xF6, 0x356F, 0x00, -+ 0x3570, 0x41, 0x3571, 0xC5, 0x3572, 0x10, -+ 0x3573, 0x26, 0x3574, 0x20, 0x3575, 0xF6, -+ 0x3576, 0x02, 0x3577, 0x07, 0x3578, 0xC1, -+ 0x3579, 0x02, 0x357A, 0x24, 0x357B, 0x19, -+ 0x357C, 0x18, 0x357D, 0xFE, 0x357E, 0x02, -+ 0x357F, 0x08, 0x3580, 0x18, 0x3581, 0xAD, -+ 0x3582, 0x00, 0x3583, 0xF6, 0x3584, 0x02, -+ 0x3585, 0x06, 0x3586, 0x27, 0x3587, 0x0D, -+ 0x3588, 0xC6, 0x3589, 0x02, 0x358A, 0x37, -+ 0x358B, 0xC6, 0x358C, 0x51, 0x358D, 0xBD, -+ 0x358E, 0xDC, 0x358F, 0x53, 0x3590, 0x31, -+ 0x3591, 0xC6, 0x3592, 0x02, 0x3593, 0x20, -+ 0x3594, 0xAE, 0x3595, 0x1A, 0x3596, 0xEE, -+ 0x3597, 0x00, 0x3598, 0x18, 0x3599, 0x6F, -+ 0x359A, 0x00, 0x359B, 0xC6, 0x359C, 0x03, -+ 0x359D, 0x20, 0x359E, 0xA4, 0x359F, 0xF6, -+ 0x35A0, 0x01, 0x35A1, 0xBF, 0x35A2, 0xC1, -+ 0x35A3, 0x08, 0x35A4, 0x24, 0x35A5, 0x55, -+ 0x35A6, 0xBD, 0x35A7, 0xF6, 0x35A8, 0xD3, -+ 0x35A9, 0x35, 0x35AA, 0xBA, 0x35AB, 0x35, -+ 0x35AC, 0xC2, 0x35AD, 0x35, 0x35AE, 0xCA, -+ 0x35AF, 0x35, 0x35B0, 0xD2, 0x35B1, 0x35, -+ 0x35B2, 0xDA, 0x35B3, 0x35, 0x35B4, 0xE2, -+ 0x35B5, 0x35, 0x35B6, 0xEA, 0x35B7, 0x35, -+ 0x35B8, 0xF2, 0x35B9, 0x39, 0x35BA, 0xCC, -+ 0x35BB, 0x01, 0x35BC, 0xB1, 0x35BD, 0xBD, -+ 0x35BE, 0x34, 0x35BF, 0x54, 0x35C0, 0x20, -+ 0x35C1, 0x36, 0x35C2, 0xCC, 0x35C3, 0x01, -+ 0x35C4, 0xB1, 0x35C5, 0xBD, 0x35C6, 0xC1, -+ 0x35C7, 0x52, 0x35C8, 0x20, 0x35C9, 0x2E, -+ 0x35CA, 0xCC, 0x35CB, 0x01, 0x35CC, 0xB1, -+ 0x35CD, 0xBD, 0x35CE, 0x34, 0x35CF, 0xF1, -+ 0x35D0, 0x20, 0x35D1, 0x26, 0x35D2, 0xCC, -+ 0x35D3, 0x01, 0x35D4, 0xB1, 0x35D5, 0xBD, -+ 0x35D6, 0xC3, 0x35D7, 0x9A, 0x35D8, 0x20, -+ 0x35D9, 0x1E, 0x35DA, 0xCC, 0x35DB, 0x01, -+ 0x35DC, 0xB1, 0x35DD, 0xBD, 0x35DE, 0xC4, -+ 0x35DF, 0x39, 0x35E0, 0x20, 0x35E1, 0x16, -+ 0x35E2, 0xCC, 0x35E3, 0x01, 0x35E4, 0xB1, -+ 0x35E5, 0xBD, 0x35E6, 0xC5, 0x35E7, 0x0B, -+ 0x35E8, 0x20, 0x35E9, 0x0E, 0x35EA, 0xCC, -+ 0x35EB, 0x01, 0x35EC, 0xB1, 0x35ED, 0xBD, -+ 0x35EE, 0xC6, 0x35EF, 0x3A, 0x35F0, 0x20, -+ 0x35F1, 0x06, 0x35F2, 0xCC, 0x35F3, 0x01, -+ 0x35F4, 0xB1, 0x35F5, 0xBD, 0x35F6, 0xC7, -+ 0x35F7, 0xC2, 0x35F8, 0xF7, 0x35F9, 0x01, -+ 0x35FA, 0xBF, 0x35FB, 0x39, 0x35FC, 0x43, -+ 0x35FD, 0x3A, 0x35FE, 0x41, 0x35FF, 0x44, -+ 0x3600, 0x54, 0x3601, 0x5F, 0x3602, 0x41, -+ 0x3603, 0x54, 0x3604, 0x4E, 0x3605, 0x0A, -+ 0x3606, 0x0D, 0x3607, 0x00, 0x3608, 0x43, -+ 0x3609, 0x3A, 0x360A, 0x45, 0x360B, 0x6E, -+ 0x360C, 0x5F, 0x360D, 0x53, 0x360E, 0x74, -+ 0x360F, 0x0A, 0x3610, 0x0D, 0x3611, 0x00, -+ 0x3612, 0x43, 0x3613, 0x3A, 0x3614, 0x49, -+ 0x3615, 0x0A, 0x3616, 0x0D, 0x3617, 0x00, -+ 0x3618, 0x00, 0x3400, 0x01, 0x33f8, 0x01 ++/* ++ * Copyright (c) Hisilicon Technologies Co., Ltd. 2018-2020. All rights reserved. ++ * Description: Hieth driver festa_s28v115_2c02 phy fixup paramters ++ * Author: KTP_BSP ++ * Create: 2018-10-08 ++ */ ++ ++#ifndef __HIETH_FESTA_S28V115_2C02_H__ ++#define __HIETH_FESTA_S28V115_2C02_H__ ++ 0x33f9, 0xbd, 0x33fa, 0x34, 0x33fb, 0x00, ++ 0x33fc, 0x39, 0x3400, 0x39, 0x3401, 0xCC, ++ 0x3402, 0x2C, 0x3403, 0x02, 0x3404, 0xFD, ++ 0x3405, 0xFF, 0x3406, 0xF0, 0x3407, 0xF6, ++ 0x3408, 0x36, 0x3409, 0x18, 0x340A, 0x26, ++ 0x340B, 0x05, 0x340C, 0xC6, 0x340D, 0x01, ++ 0x340E, 0xF7, 0x340F, 0x36, 0x3410, 0x18, ++ 0x3411, 0xCC, 0x3412, 0x35, 0x3413, 0x9F, ++ 0x3414, 0x1A, 0x3415, 0xB3, 0x3416, 0x00, ++ 0x3417, 0xD2, 0x3418, 0x27, 0x3419, 0x09, ++ 0x341A, 0xFD, 0x341B, 0x00, 0x341C, 0xD2, ++ 0x341D, 0x7F, 0x341E, 0x01, 0x341F, 0xBF, ++ 0x3420, 0x7F, 0x3421, 0x01, 0x3422, 0xB1, ++ 0x3423, 0x39, 0x3424, 0x3C, 0x3425, 0x3C, ++ 0x3426, 0x30, 0x3427, 0xF6, 0x3428, 0x30, ++ 0x3429, 0x55, 0x342A, 0xC0, 0x342B, 0x07, ++ 0x342C, 0x18, 0x342D, 0xFE, 0x342E, 0x30, ++ 0x342F, 0x4C, 0x3430, 0x18, 0x3431, 0x3A, ++ 0x3432, 0x18, 0x3433, 0xE6, 0x3434, 0x00, ++ 0x3435, 0x5C, 0x3436, 0xE7, 0x3437, 0x01, ++ 0x3438, 0xC1, 0x3439, 0x07, 0x343A, 0x23, ++ 0x343B, 0x04, 0x343C, 0xC6, 0x343D, 0x07, ++ 0x343E, 0xE7, 0x343F, 0x01, 0x3440, 0x58, ++ 0x3441, 0x58, 0x3442, 0x58, 0x3443, 0x58, ++ 0x3444, 0x58, 0x3445, 0xE7, 0x3446, 0x00, ++ 0x3447, 0xF6, 0x3448, 0x20, 0x3449, 0x04, ++ 0x344A, 0xC4, 0x344B, 0x1F, 0x344C, 0xEA, ++ 0x344D, 0x00, 0x344E, 0xF7, 0x344F, 0x20, ++ 0x3450, 0x04, 0x3451, 0x38, 0x3452, 0x38, ++ 0x3453, 0x39, 0x3454, 0x3C, 0x3455, 0x37, ++ 0x3456, 0x36, 0x3457, 0x30, 0x3458, 0x1A, ++ 0x3459, 0xEE, 0x345A, 0x00, 0x345B, 0x18, ++ 0x345C, 0xE6, 0x345D, 0x00, 0x345E, 0x26, ++ 0x345F, 0x1C, 0x3460, 0xF6, 0x3461, 0x00, ++ 0x3462, 0x5C, 0x3463, 0xC5, 0x3464, 0x04, ++ 0x3465, 0x27, 0x3466, 0x06, 0x3467, 0xCC, ++ 0x3468, 0x36, 0x3469, 0x12, 0x346A, 0xBD, ++ 0x346B, 0xF0, 0x346C, 0xA5, 0x346D, 0xF6, ++ 0x346E, 0x00, 0x346F, 0x47, 0x3470, 0xC4, ++ 0x3471, 0xF3, 0x3472, 0xF7, 0x3473, 0x00, ++ 0x3474, 0x47, 0x3475, 0xC6, 0x3476, 0x01, ++ 0x3477, 0x1A, 0x3478, 0xEE, 0x3479, 0x00, ++ 0x347A, 0x20, 0x347B, 0x10, 0x347C, 0x5A, ++ 0x347D, 0x26, 0x347E, 0x14, 0x347F, 0xF6, ++ 0x3480, 0x00, 0x3481, 0x46, 0x3482, 0x4F, ++ 0x3483, 0xC4, 0x3484, 0x0C, 0x3485, 0x83, ++ 0x3486, 0x00, 0x3487, 0x08, 0x3488, 0x26, ++ 0x3489, 0x05, 0x348A, 0xC6, 0x348B, 0x02, ++ 0x348C, 0x18, 0x348D, 0xE7, 0x348E, 0x00, ++ 0x348F, 0x5F, 0x3490, 0x38, 0x3491, 0x38, ++ 0x3492, 0x39, 0x3493, 0xF6, 0x3494, 0x00, ++ 0x3495, 0x5C, 0x3496, 0xC5, 0x3497, 0x04, ++ 0x3498, 0x27, 0x3499, 0x06, 0x349A, 0xCC, ++ 0x349B, 0x36, 0x349C, 0x08, 0x349D, 0xBD, ++ 0x349E, 0xF0, 0x349F, 0xA5, 0x34A0, 0xF6, ++ 0x34A1, 0x00, 0x34A2, 0x47, 0x34A3, 0xC4, ++ 0x34A4, 0xF3, 0x34A5, 0xCA, 0x34A6, 0x08, ++ 0x34A7, 0xF7, 0x34A8, 0x00, 0x34A9, 0x47, ++ 0x34AA, 0x18, 0x34AB, 0xFE, 0x34AC, 0x00, ++ 0x34AD, 0xB6, 0x34AE, 0x18, 0x34AF, 0xAD, ++ 0x34B0, 0x00, 0x34B1, 0xBD, 0x34B2, 0x34, ++ 0x34B3, 0x24, 0x34B4, 0xF6, 0x34B5, 0x1E, ++ 0x34B6, 0x05, 0x34B7, 0xC5, 0x34B8, 0x02, ++ 0x34B9, 0x27, 0x34BA, 0x0A, 0x34BB, 0xF6, ++ 0x34BC, 0x1E, 0x34BD, 0x07, 0x34BE, 0xC5, ++ 0x34BF, 0x02, 0x34C0, 0x27, 0x34C1, 0x03, ++ 0x34C2, 0xBD, 0x34C3, 0xC0, 0x34C4, 0x33, ++ 0x34C5, 0xF6, 0x34C6, 0x31, 0x34C7, 0x1F, ++ 0x34C8, 0x37, 0x34C9, 0xC6, 0x34CA, 0x52, ++ 0x34CB, 0xBD, 0x34CC, 0xDC, 0x34CD, 0x53, ++ 0x34CE, 0x31, 0x34CF, 0xF6, 0x34D0, 0x00, ++ 0x34D1, 0x41, 0x34D2, 0xC5, 0x34D3, 0x10, ++ 0x34D4, 0x26, 0x34D5, 0x04, 0x34D6, 0x13, ++ 0x34D7, 0x23, 0x34D8, 0x40, 0x34D9, 0x0D, ++ 0x34DA, 0xBD, 0x34DB, 0x93, 0x34DC, 0xCE, ++ 0x34DD, 0x1A, 0x34DE, 0xEE, 0x34DF, 0x00, ++ 0x34E0, 0x18, 0x34E1, 0x6F, 0x34E2, 0x00, ++ 0x34E3, 0xC6, 0x34E4, 0x04, 0x34E5, 0x20, ++ 0x34E6, 0xA9, 0x34E7, 0x1A, 0x34E8, 0xEE, ++ 0x34E9, 0x00, 0x34EA, 0x18, 0x34EB, 0x6F, ++ 0x34EC, 0x00, 0x34ED, 0xC6, 0x34EE, 0x01, ++ 0x34EF, 0x20, 0x34F0, 0x9F, 0x34F1, 0x3C, ++ 0x34F2, 0x37, 0x34F3, 0x36, 0x34F4, 0x30, ++ 0x34F5, 0x1A, 0x34F6, 0xEE, 0x34F7, 0x00, ++ 0x34F8, 0x18, 0x34F9, 0xE6, 0x34FA, 0x00, ++ 0x34FB, 0x26, 0x34FC, 0x49, 0x34FD, 0xF6, ++ 0x34FE, 0x00, 0x34FF, 0x5C, 0x3500, 0xC5, ++ 0x3501, 0x04, 0x3502, 0x27, 0x3503, 0x06, ++ 0x3504, 0xCC, 0x3505, 0x35, 0x3506, 0xFC, ++ 0x3507, 0xBD, 0x3508, 0xF0, 0x3509, 0xA5, ++ 0x350A, 0xC6, 0x350B, 0x52, 0x350C, 0xBD, ++ 0x350D, 0xDC, 0x350E, 0xF3, 0x350F, 0x5D, ++ 0x3510, 0x27, 0x3511, 0x03, 0x3512, 0xBD, ++ 0x3513, 0xC0, 0x3514, 0x22, 0x3515, 0xF6, ++ 0x3516, 0x00, 0x3517, 0x46, 0x3518, 0xC5, ++ 0x3519, 0x0C, 0x351A, 0x26, 0x351B, 0x0A, ++ 0x351C, 0x1A, 0x351D, 0xEE, 0x351E, 0x00, ++ 0x351F, 0x18, 0x3520, 0x6F, 0x3521, 0x00, ++ 0x3522, 0xC6, 0x3523, 0x07, 0x3524, 0x20, ++ 0x3525, 0x1D, 0x3526, 0xFC, 0x3527, 0x30, ++ 0x3528, 0x0C, 0x3529, 0xBD, 0x352A, 0x93, ++ 0x352B, 0x19, 0x352C, 0xBD, 0x352D, 0x9F, ++ 0x352E, 0x0B, 0x352F, 0xC6, 0x3530, 0x02, ++ 0x3531, 0x37, 0x3532, 0xC6, 0x3533, 0x51, ++ 0x3534, 0xBD, 0x3535, 0xDC, 0x3536, 0x53, ++ 0x3537, 0x31, 0x3538, 0x7F, 0x3539, 0x02, ++ 0x353A, 0x07, 0x353B, 0xC6, 0x353C, 0x02, ++ 0x353D, 0x1A, 0x353E, 0xEE, 0x353F, 0x00, ++ 0x3540, 0x18, 0x3541, 0xE7, 0x3542, 0x00, ++ 0x3543, 0x38, 0x3544, 0x38, 0x3545, 0x39, ++ 0x3546, 0xC6, 0x3547, 0x52, 0x3548, 0xBD, ++ 0x3549, 0xDC, 0x354A, 0xF3, 0x354B, 0x5D, ++ 0x354C, 0x27, 0x354D, 0x03, 0x354E, 0xBD, ++ 0x354F, 0xC0, 0x3550, 0x22, 0x3551, 0xF6, ++ 0x3552, 0x00, 0x3553, 0x46, 0x3554, 0xC5, ++ 0x3555, 0x0C, 0x3556, 0x26, 0x3557, 0x0A, ++ 0x3558, 0x1A, 0x3559, 0xEE, 0x355A, 0x00, ++ 0x355B, 0x18, 0x355C, 0x6F, 0x355D, 0x00, ++ 0x355E, 0xC6, 0x355F, 0x07, 0x3560, 0x20, ++ 0x3561, 0xE1, 0x3562, 0xC6, 0x3563, 0x51, ++ 0x3564, 0xBD, 0x3565, 0xDC, 0x3566, 0xF3, ++ 0x3567, 0x5D, 0x3568, 0x26, 0x3569, 0x04, ++ 0x356A, 0xC6, 0x356B, 0x02, 0x356C, 0x20, ++ 0x356D, 0xD5, 0x356E, 0xF6, 0x356F, 0x00, ++ 0x3570, 0x41, 0x3571, 0xC5, 0x3572, 0x10, ++ 0x3573, 0x26, 0x3574, 0x20, 0x3575, 0xF6, ++ 0x3576, 0x02, 0x3577, 0x07, 0x3578, 0xC1, ++ 0x3579, 0x02, 0x357A, 0x24, 0x357B, 0x19, ++ 0x357C, 0x18, 0x357D, 0xFE, 0x357E, 0x02, ++ 0x357F, 0x08, 0x3580, 0x18, 0x3581, 0xAD, ++ 0x3582, 0x00, 0x3583, 0xF6, 0x3584, 0x02, ++ 0x3585, 0x06, 0x3586, 0x27, 0x3587, 0x0D, ++ 0x3588, 0xC6, 0x3589, 0x02, 0x358A, 0x37, ++ 0x358B, 0xC6, 0x358C, 0x51, 0x358D, 0xBD, ++ 0x358E, 0xDC, 0x358F, 0x53, 0x3590, 0x31, ++ 0x3591, 0xC6, 0x3592, 0x02, 0x3593, 0x20, ++ 0x3594, 0xAE, 0x3595, 0x1A, 0x3596, 0xEE, ++ 0x3597, 0x00, 0x3598, 0x18, 0x3599, 0x6F, ++ 0x359A, 0x00, 0x359B, 0xC6, 0x359C, 0x03, ++ 0x359D, 0x20, 0x359E, 0xA4, 0x359F, 0xF6, ++ 0x35A0, 0x01, 0x35A1, 0xBF, 0x35A2, 0xC1, ++ 0x35A3, 0x08, 0x35A4, 0x24, 0x35A5, 0x55, ++ 0x35A6, 0xBD, 0x35A7, 0xF6, 0x35A8, 0xD3, ++ 0x35A9, 0x35, 0x35AA, 0xBA, 0x35AB, 0x35, ++ 0x35AC, 0xC2, 0x35AD, 0x35, 0x35AE, 0xCA, ++ 0x35AF, 0x35, 0x35B0, 0xD2, 0x35B1, 0x35, ++ 0x35B2, 0xDA, 0x35B3, 0x35, 0x35B4, 0xE2, ++ 0x35B5, 0x35, 0x35B6, 0xEA, 0x35B7, 0x35, ++ 0x35B8, 0xF2, 0x35B9, 0x39, 0x35BA, 0xCC, ++ 0x35BB, 0x01, 0x35BC, 0xB1, 0x35BD, 0xBD, ++ 0x35BE, 0x34, 0x35BF, 0x54, 0x35C0, 0x20, ++ 0x35C1, 0x36, 0x35C2, 0xCC, 0x35C3, 0x01, ++ 0x35C4, 0xB1, 0x35C5, 0xBD, 0x35C6, 0xC1, ++ 0x35C7, 0x52, 0x35C8, 0x20, 0x35C9, 0x2E, ++ 0x35CA, 0xCC, 0x35CB, 0x01, 0x35CC, 0xB1, ++ 0x35CD, 0xBD, 0x35CE, 0x34, 0x35CF, 0xF1, ++ 0x35D0, 0x20, 0x35D1, 0x26, 0x35D2, 0xCC, ++ 0x35D3, 0x01, 0x35D4, 0xB1, 0x35D5, 0xBD, ++ 0x35D6, 0xC3, 0x35D7, 0x9A, 0x35D8, 0x20, ++ 0x35D9, 0x1E, 0x35DA, 0xCC, 0x35DB, 0x01, ++ 0x35DC, 0xB1, 0x35DD, 0xBD, 0x35DE, 0xC4, ++ 0x35DF, 0x39, 0x35E0, 0x20, 0x35E1, 0x16, ++ 0x35E2, 0xCC, 0x35E3, 0x01, 0x35E4, 0xB1, ++ 0x35E5, 0xBD, 0x35E6, 0xC5, 0x35E7, 0x0B, ++ 0x35E8, 0x20, 0x35E9, 0x0E, 0x35EA, 0xCC, ++ 0x35EB, 0x01, 0x35EC, 0xB1, 0x35ED, 0xBD, ++ 0x35EE, 0xC6, 0x35EF, 0x3A, 0x35F0, 0x20, ++ 0x35F1, 0x06, 0x35F2, 0xCC, 0x35F3, 0x01, ++ 0x35F4, 0xB1, 0x35F5, 0xBD, 0x35F6, 0xC7, ++ 0x35F7, 0xC2, 0x35F8, 0xF7, 0x35F9, 0x01, ++ 0x35FA, 0xBF, 0x35FB, 0x39, 0x35FC, 0x43, ++ 0x35FD, 0x3A, 0x35FE, 0x41, 0x35FF, 0x44, ++ 0x3600, 0x54, 0x3601, 0x5F, 0x3602, 0x41, ++ 0x3603, 0x54, 0x3604, 0x4E, 0x3605, 0x0A, ++ 0x3606, 0x0D, 0x3607, 0x00, 0x3608, 0x43, ++ 0x3609, 0x3A, 0x360A, 0x45, 0x360B, 0x6E, ++ 0x360C, 0x5F, 0x360D, 0x53, 0x360E, 0x74, ++ 0x360F, 0x0A, 0x3610, 0x0D, 0x3611, 0x00, ++ 0x3612, 0x43, 0x3613, 0x3A, 0x3614, 0x49, ++ 0x3615, 0x0A, 0x3616, 0x0D, 0x3617, 0x00, ++ 0x3618, 0x00, 0x3400, 0x01, 0x33f8, 0x01 +#endif \ No newline at end of file diff --git a/drivers/net/ethernet/hisilicon/hisi-femac/festa_s28v202_2e01.h b/drivers/net/ethernet/hisilicon/hisi-femac/festa_s28v202_2e01.h @@ -364589,204 +364589,4 @@ index 67048f922ff2..e950f32243b6 100755 ipv6_route_test|ipv6_rt) ipv6_route_test;; ipv4_route_test|ipv4_rt) ipv4_route_test;; ipv6_addr_metric) ipv6_addr_metric_test;; -diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile -index bd7ac53b7..d7efd1e3d 100644 ---- a/drivers/hid/Makefile -+++ b/drivers/hid/Makefile -@@ -2,6 +2,15 @@ - # - # Makefile for the HID driver - # -+HDF_ROOT_DIR = -Idrivers/hdf -+ccflags-$(CONFIG_DRIVERS_HDF_INPUT) += $(HDF_ROOT_DIR)/framework/model/input/driver \ -+ $(HDF_ROOT_DIR)/framework/include/core \ -+ $(HDF_ROOT_DIR)/framework/core/common/include/host \ -+ $(HDF_ROOT_DIR)/framework/include/utils \ -+ $(HDF_ROOT_DIR)/framework/include/osal \ -+ $(HDF_ROOT_DIR)/framework/ability/sbuf/include \ -+ $(HDF_ROOT_DIR)/khdf/osal/include \ -+ -I../../../../../third_party/FreeBSD/sys/dev/evdev - hid-y := hid-core.o hid-input.o hid-quirks.o - hid-$(CONFIG_DEBUG_FS) += hid-debug.o - -diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c -index 05122167d..94cfdfbbf 100644 ---- a/drivers/hid/hid-core.c -+++ b/drivers/hid/hid-core.c -@@ -36,6 +36,9 @@ - #include - #include - -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+#include "hdf_hid_adapter.h" -+#endif - #include "hid-ids.h" - - /* -@@ -1340,6 +1343,11 @@ static void hid_process_event(struct hid_device *hid, struct hid_field *field, - hidinput_hid_event(hid, field, usage, value); - if (hid->claimed & HID_CLAIMED_HIDDEV && interrupt && hid->hiddev_hid_event) - hid->hiddev_hid_event(hid, field, usage, value); -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+ if (hid->input_dev) { -+ HidReportEvent(hid->input_dev, usage->type, usage->code, value); -+ } -+#endif - } - - /* -@@ -1743,6 +1751,53 @@ static const struct device_attribute dev_attr_country = { - .show = show_country, - }; - -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+static bool check_mouse(char *name) -+{ -+ static char *option[]={"Mouse", "mouse", "MOUSE", "Razer"}; -+ for (int i = 0; i < 4; i++) { -+ if (strstr(name, option[i])) -+ return true; -+ } -+ return false; -+} -+static bool check_kbd(char *name) -+{ -+ static char *option[]={"Keyboard", "keyboard"}; -+ for (int i = 0; i < 2; i++) { -+ if (strstr(name, option[i])) -+ return true; -+ } -+ return false; -+} -+static void notify_connect_event(struct hid_device *hdev) -+{ -+ bool check; -+ int type = -1; -+ HidInfo *dev = (HidInfo *)kmalloc(sizeof(HidInfo), GFP_KERNEL); -+ if (dev == NULL) { -+ printk("%s: malloc failed", __func__); -+ return; -+ } -+ type = check_mouse(hdev->name)?HID_TYPE_MOUSE:type; -+ type = check_kbd(hdev->name)?HID_TYPE_KEYBOARD:type; -+ if ( type < 0) { -+ kfree(dev); -+ dev = NULL; -+ return; -+ } -+ -+ dev->devType = type; -+ dev->devName = hdev->name; -+ hdev->input_dev = HidRegisterHdfInputDev(dev); -+ if (hdev->input_dev == NULL) { -+ printk("%s: RegisterInputDevice failed\n", __func__); -+ } -+ kfree(dev); -+ dev = NULL; -+} -+#endif -+ - int hid_connect(struct hid_device *hdev, unsigned int connect_mask) - { - static const char *types[] = { "Device", "Pointer", "Mouse", "Device", -@@ -1833,6 +1888,10 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask) - buf, bus, hdev->version >> 8, hdev->version & 0xff, - type, hdev->name, hdev->phys); - -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+ notify_connect_event(hdev); -+#endif -+ - return 0; - } - EXPORT_SYMBOL_GPL(hid_connect); -@@ -1847,6 +1906,10 @@ void hid_disconnect(struct hid_device *hdev) - if (hdev->claimed & HID_CLAIMED_HIDRAW) - hidraw_disconnect(hdev); - hdev->claimed = 0; -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+ if (hdev->input_dev) -+ HidUnregisterHdfInputDev(hdev->input_dev); -+#endif - } - EXPORT_SYMBOL_GPL(hid_disconnect); - -diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c -index 11bd2ca22..6f7805698 100644 ---- a/drivers/hid/hid-input.c -+++ b/drivers/hid/hid-input.c -@@ -32,6 +32,10 @@ - #include - #include - -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+#include "hdf_hid_adapter.h" -+#endif -+ - #include "hid-ids.h" - - #define unk KEY_UNKNOWN -@@ -1365,7 +1369,15 @@ void hidinput_report_event(struct hid_device *hid, struct hid_report *report) - return; - - list_for_each_entry(hidinput, &hid->inputs, list) -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+ { -+#endif - input_sync(hidinput->input); -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+ if(hid->input_dev) -+ HidReportEvent(hid->input_dev, EV_SYN, SYN_REPORT, 0); -+ } -+#endif - } - EXPORT_SYMBOL_GPL(hidinput_report_event); - -@@ -1729,6 +1741,35 @@ static inline void hidinput_configure_usages(struct hid_input *hidinput, - report->field[i]->usage + j); - } - -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+static void transfer_info(struct input_dev *dev) -+{ -+ HidInfo *info = (HidInfo *)kmalloc(sizeof(HidInfo),GFP_KERNEL); -+ if (info == NULL) { -+ printk("%s: malloc failed\n",__func__); -+ return; -+ } -+ info->devName = dev->name; -+ memcpy(info->devProp, dev->propbit, sizeof(unsigned long) * BITS_TO_LONGS(INPUT_PROP_CNT)); -+ memcpy(info->eventType, dev->evbit, sizeof(unsigned long) * BITS_TO_LONGS(EV_CNT)); -+ memcpy(info->keyCode, dev->keybit, sizeof(unsigned long) * BITS_TO_LONGS(KEY_CNT)); -+ memcpy(info->relCode, dev->relbit, sizeof(unsigned long) * BITS_TO_LONGS(REL_CNT)); -+ memcpy(info->absCode, dev->absbit, sizeof(unsigned long) * BITS_TO_LONGS(ABS_CNT)); -+ memcpy(info->miscCode, dev->mscbit, sizeof(unsigned long) * BITS_TO_LONGS(MSC_CNT)); -+ memcpy(info->ledCode, dev->ledbit, sizeof(unsigned long) * BITS_TO_LONGS(LED_CNT)); -+ memcpy(info->soundCode, dev->sndbit, sizeof(unsigned long) * BITS_TO_LONGS(SND_CNT)); -+ memcpy(info->forceCode, dev->ffbit, sizeof(unsigned long) * BITS_TO_LONGS(FF_CNT)); -+ memcpy(info->switchCode, dev->swbit, sizeof(unsigned long) * BITS_TO_LONGS(SW_CNT)); -+ info->bustype = dev->id.bustype; -+ info->vendor = dev->id.vendor; -+ info->product = dev->id.product; -+ info->version = dev->id.version; -+ SendInfoToHdf(info); -+ kfree(info); -+ info = NULL; -+} -+#endif -+ - /* - * Register the input device; print a message. - * Configure the input layer interface -@@ -1811,7 +1852,9 @@ int hidinput_connect(struct hid_device *hid, unsigned int force) - hidinput_cleanup_hidinput(hid, hidinput); - continue; - } -- -+#if defined(CONFIG_DRIVERS_HDF_INPUT) -+ transfer_info(hidinput->input); -+#endif - if (input_register_device(hidinput->input)) - goto out_unwind; - hidinput->registered = true; -- Gitee