From 96ab8c0b86dbf7fe21dd0bb473cd574f9de1b425 Mon Sep 17 00:00:00 2001 From: shilong Date: Sun, 27 Apr 2025 03:14:57 +0000 Subject: [PATCH 01/10] =?UTF-8?q?=E5=8A=A0=E6=97=A5=E5=BF=97=20Signed-off-?= =?UTF-8?q?by:=20shilong=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework/model/input/driver/hdf_hid_adapter.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/model/input/driver/hdf_hid_adapter.c b/framework/model/input/driver/hdf_hid_adapter.c index c6d0016b9..8195529b2 100644 --- a/framework/model/input/driver/hdf_hid_adapter.c +++ b/framework/model/input/driver/hdf_hid_adapter.c @@ -123,6 +123,7 @@ static void FreeCachedInfo(void) static int32_t SetInputDevAbsAttr(InputDevice *inputDev, const HidInfo *info) { + HDF_LOGI("%s: Cache hid device", __func__); int32_t ret; int i; for (i = 0; i < BITS_TO_LONG(ABS_CNT); i++) { @@ -298,6 +299,7 @@ static void RepateEvent(const InputDevice *device) void HidReportEvent(const void *inputDev, uint32_t type, uint32_t code, int32_t value) { + HDF_LOGI("%s: AAA start", __func__); bool loaded = InputDriverLoaded(); if (!loaded) { HDF_LOGD("%s: device not loaded", __func__); -- Gitee From eab48491102765cdb96c55746aaacdecd665d3a9 Mon Sep 17 00:00:00 2001 From: shilong Date: Sun, 27 Apr 2025 02:58:02 +0000 Subject: [PATCH 02/10] =?UTF-8?q?=E5=8A=A0=E6=97=A5=E5=BF=97=20Signed-off-?= =?UTF-8?q?by:=20shilong=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- framework/model/input/driver/hdf_touch.c | 39 ++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/framework/model/input/driver/hdf_touch.c b/framework/model/input/driver/hdf_touch.c index dedb726dc..78ff7534b 100644 --- a/framework/model/input/driver/hdf_touch.c +++ b/framework/model/input/driver/hdf_touch.c @@ -45,6 +45,7 @@ static int SuspendFlag = 0; static int32_t SetGpioDirAndLevel(int gpio, int dir, int level) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; if ((dir == GPIO_DIR_IN) || (dir == GPIO_DIR_OUT)) { ret = GpioSetDir(gpio, dir); @@ -186,6 +187,7 @@ static int32_t InputPinMuxCfg(uint32_t regAddr, int32_t regSize, uint32_t regVal #if defined(CONFIG_ARCH_ROCKCHIP) static int32_t SetResetStatus(TouchDriver *driver) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; uint8_t writeBuf[5]; // 5: buffer size @@ -215,6 +217,7 @@ static int32_t SetResetStatus(TouchDriver *driver) static int32_t Gt1xRequestIo(ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; ret = SetGpio(chipDev->boardCfg->pins.rstGpio, 1, 0); if (ret != HDF_SUCCESS) { @@ -239,6 +242,7 @@ static int32_t Gt1xRequestIo(ChipDevice *chipDev) static int32_t HandleSeqArray(SeqArray *src, PowerEventHandler eventHandler, ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); int32_t i; SeqArray pwrTiming = {0}; int32_t ret = memcpy_s(&pwrTiming, sizeof(SeqArray), src, sizeof(SeqArray)); @@ -260,6 +264,7 @@ static int32_t HandleSeqArray(SeqArray *src, PowerEventHandler eventHandler, Chi static int32_t SetTiming(ChipDevice *chipDev, bool enable) { + HDF_LOGI("%s: AAA start", __func__); #if defined(CONFIG_ARCH_MESON) return HDF_SUCCESS; #endif @@ -304,6 +309,7 @@ static int32_t SetTiming(ChipDevice *chipDev, bool enable) static void EventHandle(TouchDriver *driver, ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; if ((chipDev->ops == NULL) || (chipDev->ops->DataHandle == NULL)) { return; @@ -317,6 +323,7 @@ static void EventHandle(TouchDriver *driver, ChipDevice *chipDev) static int32_t IrqHandle(uint16_t intGpioNum, void *data) { + HDF_LOGI("%s: AAA start", __func__); TouchDriver *driver = (TouchDriver *)data; int ret = GpioDisableIrq(intGpioNum); if (ret != HDF_SUCCESS) { @@ -336,6 +343,7 @@ static int32_t IrqHandle(uint16_t intGpioNum, void *data) static void InputFrameReport(TouchDriver *driver) { + HDF_LOGI("%s: AAA start", __func__); InputDevice *dev = driver->inputDev; FrameData *frame = &driver->frameData; int32_t i; @@ -361,6 +369,7 @@ static void InputFrameReport(TouchDriver *driver) static int32_t SetupChipIrq(ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); #if defined(CONFIG_ARCH_MESON) return HDF_SUCCESS; #endif @@ -390,6 +399,7 @@ static int32_t SetupChipIrq(ChipDevice *chipDev) static void ChipReset(ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); if (chipDev == NULL) { HDF_LOGE("%s: invalid param", __func__); return; @@ -488,6 +498,7 @@ static void Gt1xDeinitEsdProtect(void) static int32_t ChipEsdResetRetry(TouchDriver *driver) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; ChipDevice *chipDev = driver->device; uint16_t intGpioNum = driver->device->boardCfg->pins.intGpio; @@ -519,6 +530,7 @@ static int32_t ChipEsdResetRetry(TouchDriver *driver) static void Gt1xEsdCheckFunc(struct work_struct *work) { + HDF_LOGI("%s: AAA start", __func__); int32_t i = 0; int32_t ret = -1; if (time_after(jiffies, g_timeout)) { @@ -551,6 +563,7 @@ static void Gt1xEsdCheckFunc(struct work_struct *work) static int32_t ChipCheckResetRetry(ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); int32_t count = 20; // 20 : reset time int32_t ret; @@ -573,6 +586,7 @@ static int32_t ChipCheckResetRetry(ChipDevice *chipDev) static int32_t ChipDriverInit(ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); int32_t count = 20; // 20: reset time int32_t ret; #if defined(CONFIG_ARCH_ROCKCHIP) @@ -628,6 +642,7 @@ static int32_t ChipDriverInit(ChipDevice *chipDev) static InputDevice *InputDeviceInstance(ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); InputDevice *inputDev = (InputDevice *)OsalMemAlloc(sizeof(InputDevice)); if (inputDev == NULL) { HDF_LOGE("%s: instance input device failed", __func__); @@ -645,6 +660,7 @@ static InputDevice *InputDeviceInstance(ChipDevice *chipDev) static int32_t ChipMatchCheck(const ChipDevice *chipDev, const TouchDriver *driver) { + HDF_LOGI("%s: AAA start", __func__); const struct DeviceResourceNode *boardNode = driver->boardCfg->boardNode; const struct DeviceResourceNode *chipNode = chipDev->chipCfg->chipNode; @@ -668,6 +684,7 @@ static int32_t ChipMatchCheck(const ChipDevice *chipDev, const TouchDriver *driv static int32_t DeviceBindDriver(ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); TouchDriver *driver = NULL; int32_t ret = HDF_FAILURE; int32_t i; @@ -694,6 +711,7 @@ static int32_t DeviceBindDriver(ChipDevice *chipDev) int32_t RegisterTouchChipDevice(ChipDevice *chipDev) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; InputDevice *inputDev = NULL; if ((chipDev == NULL) || (chipDev->chipCfg == NULL)) { @@ -733,6 +751,7 @@ EXIT: static int32_t TouchGetDevType(TouchDriver *driver, struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); uint32_t devType = driver->devType; HDF_LOGI("%s: enter, devType is %u", __func__, devType); bool ret = HdfSbufWriteUint32(reply, devType); @@ -745,6 +764,7 @@ static int32_t TouchGetDevType(TouchDriver *driver, struct HdfSBuf *reply) static int32_t TouchSetPowerStatus(TouchDriver *driver, struct HdfSBuf *data) { + HDF_LOGI("%s: AAA start", __func__); uint32_t pwrStatus = 0; bool ret = HdfSbufReadUint32(data, &pwrStatus); if (!ret) { @@ -758,6 +778,7 @@ static int32_t TouchSetPowerStatus(TouchDriver *driver, struct HdfSBuf *data) static int32_t TouchGetPowerStatus(TouchDriver *driver, struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); uint32_t pwrStatus = driver->pwrStatus; bool ret = HdfSbufWriteUint32(reply, pwrStatus); if (!ret) { @@ -770,6 +791,7 @@ static int32_t TouchGetPowerStatus(TouchDriver *driver, struct HdfSBuf *reply) static int32_t TouchGetDeviceStrInfo(TouchDriver *driver, int32_t cmd, struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); const char *info = NULL; if ((driver->device == NULL) || (driver->device->chipCfg == NULL)) { HDF_LOGE("%s: parameter invalid", __func__); @@ -802,6 +824,7 @@ static int32_t TouchGetDeviceStrInfo(TouchDriver *driver, int32_t cmd, struct Hd static int32_t TouchGetDeviceAttr(TouchDriver *driver, struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); char *tempStr = "main_touch"; int32_t ret; if (driver->inputDev == NULL) { @@ -825,6 +848,7 @@ static int32_t TouchGetDeviceAttr(TouchDriver *driver, struct HdfSBuf *reply) static int32_t TouchGetDeviceAbility(TouchDriver *driver, struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); if (driver->inputDev == NULL) { return HDF_FAILURE; } @@ -840,6 +864,7 @@ static int32_t TouchGetDeviceAbility(TouchDriver *driver, struct HdfSBuf *reply) static int32_t TouchSetGestureMode(TouchDriver *driver, struct HdfSBuf *data) { + HDF_LOGI("%s: AAA start", __func__); uint32_t gestureMode = 0; bool ret = HdfSbufReadUint32(data, &gestureMode); if (!ret) { @@ -853,6 +878,7 @@ static int32_t TouchSetGestureMode(TouchDriver *driver, struct HdfSBuf *data) static int32_t TouchSelfCapacitance(TouchDriver *driver, struct HdfSBuf *data, struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); CapacitanceTestInfo capacTest = {0}; bool ret = HdfSbufReadUint32(data, &capacTest.testType); if (!ret) { @@ -876,6 +902,7 @@ static int32_t TouchSelfCapacitance(TouchDriver *driver, struct HdfSBuf *data, s static int32_t TouchRunExtraCmd(TouchDriver *driver, struct HdfSBuf *data) { + HDF_LOGI("%s: AAA start", __func__); InputExtraCmd cmd = {0}; cmd.cmdCode = HdfSbufReadString(data); if (cmd.cmdCode == NULL) { @@ -895,6 +922,7 @@ static int32_t TouchRunExtraCmd(TouchDriver *driver, struct HdfSBuf *data) static int32_t HdfTouchDispatch(struct HdfDeviceIoClient *client, int32_t cmd, struct HdfSBuf *data, struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; TouchDriver *touchDriver = NULL; if ((client == NULL) || (client->device == NULL) || (data == NULL) || (reply == NULL)) { @@ -949,6 +977,7 @@ static int32_t HdfTouchDispatch(struct HdfDeviceIoClient *client, int32_t cmd, static int32_t TouchSetupBus(TouchDriver *driver, TouchBoardCfg *config) { + HDF_LOGI("%s: AAA start", __func__); uint8_t busType = config->bus.busType; uint8_t busNum = config->bus.i2c.busNum; if (busType == I2C_TYPE) { @@ -983,6 +1012,7 @@ static int32_t TouchSetupBus(TouchDriver *driver, TouchBoardCfg *config) static int32_t TouchInitData(TouchDriver *driver, TouchBoardCfg *config) { + HDF_LOGI("%s: AAA start", __func__); driver->devType = config->attr.devType; driver->devName = config->attr.devName; driver->i2cClient.i2cCfg.busNum = config->bus.i2c.busNum; @@ -993,6 +1023,7 @@ static int32_t TouchInitData(TouchDriver *driver, TouchBoardCfg *config) static int32_t TouchDriverInit(TouchDriver *driver, TouchBoardCfg *config) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret = TouchInitData(driver, config); CHECK_RETURN_VALUE(ret); @@ -1008,6 +1039,7 @@ static int32_t TouchDriverInit(TouchDriver *driver, TouchBoardCfg *config) static TouchBoardCfg *BoardConfigInstance(struct HdfDeviceObject *device) { + HDF_LOGI("%s: AAA start", __func__); TouchBoardCfg *boardCfg = (TouchBoardCfg *)OsalMemAlloc(sizeof(TouchBoardCfg)); if (boardCfg == NULL) { HDF_LOGE("%s: instance board config failed", __func__); @@ -1025,6 +1057,7 @@ static TouchBoardCfg *BoardConfigInstance(struct HdfDeviceObject *device) static TouchDriver *TouchDriverInstance(void) { + HDF_LOGI("%s: AAA start", __func__); TouchDriver *touchDrv = (TouchDriver *)OsalMemAlloc(sizeof(TouchDriver)); if (touchDrv == NULL) { HDF_LOGE("%s: instance touch driver failed", __func__); @@ -1047,6 +1080,7 @@ static void AddTouchDriver(TouchDriver *driver) static int32_t HdfTouchDriverBind(struct HdfDeviceObject *device) { + HDF_LOGI("%s: AAA start", __func__); if (device == NULL) { HDF_LOGE("%s: param is null", __func__); return HDF_ERR_INVALID_PARAM; @@ -1086,6 +1120,7 @@ static int HdfTouchDriverDozeResume(struct HdfDeviceObject *device) static int HdfTouchDriverDozeSuspend(struct HdfDeviceObject *device) { + HDF_LOGI("%s: AAA start", __func__); if (device == NULL) { HDF_LOGE("%s: param is null", __func__); return HDF_ERR_INVALID_PARAM; @@ -1121,6 +1156,7 @@ static int HdfTouchDriverDozeSuspend(struct HdfDeviceObject *device) static void HdfTouchDriverRegisterPowerListener(struct HdfDeviceObject *device) { + HDF_LOGI("%s: AAA start", __func__); int ret; static struct IPowerEventListener powerListener = {0}; HDF_LOGI("%s::enter!", __func__); @@ -1135,6 +1171,7 @@ static void HdfTouchDriverRegisterPowerListener(struct HdfDeviceObject *device) static void HdfTouchDriverUnregisterPowerListener(struct HdfDeviceObject *device) { + HDF_LOGI("%s: AAA start", __func__); static struct IPowerEventListener powerListener = {0}; HDF_LOGI("%s::enter!", __func__); powerListener.DozeResume = NULL; @@ -1148,6 +1185,7 @@ static void HdfTouchDriverUnregisterPowerListener(struct HdfDeviceObject *device static int32_t HdfTouchDriverProbe(struct HdfDeviceObject *device) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; TouchBoardCfg *boardCfg = NULL; TouchDriver *touchDriver = NULL; @@ -1191,6 +1229,7 @@ EXIT: static void HdfTouchDriverRelease(struct HdfDeviceObject *device) { + HDF_LOGI("%s: AAA start", __func__); TouchDriver *driver = NULL; InputDevice *inputDev = NULL; int32_t i; -- Gitee From cb3ed047a6869113fd07b1936c21c76dbe315ecc Mon Sep 17 00:00:00 2001 From: shilong Date: Fri, 25 Apr 2025 03:28:27 +0000 Subject: [PATCH 03/10] =?UTF-8?q?=E5=8A=A0=E6=97=A5=E5=BF=97=20Signed-off-?= =?UTF-8?q?by:=20shilong=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../input/driver/hdf_input_device_manager.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/framework/model/input/driver/hdf_input_device_manager.c b/framework/model/input/driver/hdf_input_device_manager.c index e2c08a341..2e5282cba 100644 --- a/framework/model/input/driver/hdf_input_device_manager.c +++ b/framework/model/input/driver/hdf_input_device_manager.c @@ -45,6 +45,7 @@ static bool IsHidDevice(InputDevice *inputDev) static struct HdfDeviceObject *HidRegisterHdfDevice(InputDevice *inputDev) { + HDF_LOGI("%s: AAA start", __func__); char svcName[SERVICE_NAME_LEN] = {0}; const char *moduleName = "HDF_HID"; struct HdfDeviceObject *hdfDev = NULL; @@ -81,6 +82,7 @@ static struct HdfDeviceObject *HidRegisterHdfDevice(InputDevice *inputDev) static void HotPlugNotify(const InputDevice *inputDev, uint32_t status) { + HDF_LOGI("%s: AAA start", __func__); HotPlugEvent event = {0}; int32_t ret; @@ -107,6 +109,7 @@ static void HotPlugNotify(const InputDevice *inputDev, uint32_t status) static int32_t CreateDeviceNode(InputDevice *inputDev) { + HDF_LOGI("%s: AAA start", __func__); if (IsHidDevice(inputDev)) { HDF_LOGI("%s: prepare to register hdf device", __func__); inputDev->hdfDevObj = HidRegisterHdfDevice(inputDev); @@ -122,6 +125,7 @@ static int32_t CreateDeviceNode(InputDevice *inputDev) static void DeleteDeviceNode(InputDevice *inputDev) { + HDF_LOGI("%s: AAA start", __func__); if (IsHidDevice(inputDev)) { HDF_LOGI("remove input device: hdf_input_event%u", inputDev->devId); HdfDeviceObjectRelease(inputDev->hdfDevObj); @@ -132,6 +136,7 @@ static void DeleteDeviceNode(InputDevice *inputDev) static void AddInputDevice(InputDevice *inputDev) { + HDF_LOGI("%s: AAA start", __func__); InputDevice *tmpDev = NULL; if (g_inputManager->inputDevList == NULL) { g_inputManager->inputDevList = inputDev; @@ -153,6 +158,7 @@ static void AddInputDevice(InputDevice *inputDev) static int32_t CheckInputDevice(InputDevice *inputDev) { + HDF_LOGI("%s: AAA start", __func__); InputDevice *tmpDev = NULL; if (g_inputManager->inputDevList == NULL) { return HDF_SUCCESS; @@ -210,6 +216,7 @@ EXIT: static int32_t AllocPackageBuffer(InputDevice *inputDev) { + HDF_LOGI("%s: AAA start", __func__); uint16_t pkgNum; switch (inputDev->devType) { case INDEV_TYPE_TOUCH: @@ -256,6 +263,7 @@ static int32_t AllocPackageBuffer(InputDevice *inputDev) static int32_t AllocDeviceID(InputDevice *inputDev) { + HDF_LOGI("%s: AAA start", __func__); InputDevice *tmpDev = g_inputManager->inputDevList; uint32_t idList[MAX_INPUT_DEV_NUM + 1]; uint32_t id; @@ -313,6 +321,7 @@ static int32_t InitEventWorkQueue(InputDevice *inputDev) int32_t RegisterInputDevice(InputDevice *inputDev) { + HDF_LOGI("%s: AAA start", __func__); int32_t ret; HDF_LOGI("%s: enter", __func__); @@ -362,7 +371,7 @@ EXIT: void UnregisterInputDevice(InputDevice *inputDev) { int32_t ret; - HDF_LOGI("%s: enter", __func__); + HDF_LOGI("%s: AAA start", __func__); if (inputDev == NULL) { HDF_LOGE("%s: inputdev is null", __func__); return; @@ -405,12 +414,14 @@ EXIT: static uint32_t GetDeviceCount(void) { + HDF_LOGI("%s: AAA start", __func__); HDF_LOGI("%s: devCount = %d", __func__, g_inputManager->devCount); return g_inputManager->devCount; } static int32_t ScanAllDev(struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); DevDesc sta; InputDevice *tmpDev = g_inputManager->inputDevList; while (tmpDev != NULL) { @@ -430,6 +441,7 @@ static int32_t ScanAllDev(struct HdfSBuf *reply) static int32_t ScanDevice(struct HdfDeviceIoClient *client, int32_t cmd, struct HdfSBuf *data, struct HdfSBuf *reply) { + HDF_LOGI("%s: AAA start", __func__); (void)cmd; int32_t ret; if ((client == NULL) || (data == NULL) || (reply == NULL)) { @@ -445,6 +457,7 @@ static int32_t ScanDevice(struct HdfDeviceIoClient *client, int32_t cmd, static int32_t HdfInputManagerBind(struct HdfDeviceObject *device) { + HDF_LOGI("%s: AAA start", __func__); if (device == NULL) { HDF_LOGE("%s: device is null", __func__); return HDF_ERR_INVALID_PARAM; @@ -461,6 +474,7 @@ static int32_t HdfInputManagerBind(struct HdfDeviceObject *device) static InputManager *InputManagerInstance(void) { + HDF_LOGI("%s: AAA start", __func__); InputManager *manager = (InputManager *)OsalMemAlloc(sizeof(InputManager)); if (manager == NULL) { HDF_LOGE("%s: instance input manager failed", __func__); @@ -472,7 +486,7 @@ static InputManager *InputManagerInstance(void) static int32_t HdfInputManagerInit(struct HdfDeviceObject *device) { - HDF_LOGI("%s: enter", __func__); + HDF_LOGI("%s: AAA start", __func__); if (device == NULL) { HDF_LOGE("%s: device is null", __func__); return HDF_ERR_INVALID_PARAM; -- Gitee From af809620b54574dd69780bf9de2a4c962ca5e3d8 Mon Sep 17 00:00:00 2001 From: shilong Date: Sun, 27 Apr 2025 07:02:50 +0000 Subject: [PATCH 04/10] =?UTF-8?q?=E5=A2=9E=E5=8A=A0x=20y=20=E7=9A=84?= =?UTF-8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shilong --- framework/model/input/driver/hdf_touch.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/model/input/driver/hdf_touch.c b/framework/model/input/driver/hdf_touch.c index 78ff7534b..d242d404e 100644 --- a/framework/model/input/driver/hdf_touch.c +++ b/framework/model/input/driver/hdf_touch.c @@ -351,6 +351,8 @@ static void InputFrameReport(TouchDriver *driver) OsalMutexLock(&driver->mutex); for (i = 0; i < MAX_FINGERS_NUM; i++) { if (frame->fingers[i].valid) { + HDF_LOGI("%s: ABS_MT_POSITION_X = %{public}d", frame->fingers[i].x); + HDF_LOGI("%s: ABS_MT_POSITION_Y = %{public}d", frame->fingers[i].y); input_report_abs(dev, ABS_MT_POSITION_X, frame->fingers[i].x); input_report_abs(dev, ABS_MT_POSITION_Y, frame->fingers[i].y); input_report_abs(dev, ABS_MT_TRACKING_ID, frame->fingers[i].trackId); -- Gitee From fbded41f6078bf7638a65c86205a8caa67024191 Mon Sep 17 00:00:00 2001 From: shilong Date: Sun, 27 Apr 2025 08:50:12 +0000 Subject: [PATCH 05/10] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20up=20down=E7=9A=84?= =?UTF-8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shilong --- framework/model/input/driver/hdf_touch.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/model/input/driver/hdf_touch.c b/framework/model/input/driver/hdf_touch.c index d242d404e..f17abfc1e 100644 --- a/framework/model/input/driver/hdf_touch.c +++ b/framework/model/input/driver/hdf_touch.c @@ -361,8 +361,10 @@ static void InputFrameReport(TouchDriver *driver) } if ((frame->definedEvent == TOUCH_DOWN) || (frame->definedEvent == TOUCH_CONTACT)) { + HDF_LOGI("%s: BTN_TOUCH DOWN"); input_report_key(dev, BTN_TOUCH, 1); // BTN_TOUCH DOWN } else { + HDF_LOGI("%s: BTN_TOUCH UP"); input_report_key(dev, BTN_TOUCH, 0); // BTN_TOUCH UP } OsalMutexUnlock(&driver->mutex); -- Gitee From faad33b0a9200a02163f72f5f960023e914d4020 Mon Sep 17 00:00:00 2001 From: shilong Date: Tue, 29 Apr 2025 03:39:44 +0000 Subject: [PATCH 06/10] test Signed-off-by: shilong --- framework/model/input/driver/hdf_touch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/model/input/driver/hdf_touch.c b/framework/model/input/driver/hdf_touch.c index f17abfc1e..433919e5c 100644 --- a/framework/model/input/driver/hdf_touch.c +++ b/framework/model/input/driver/hdf_touch.c @@ -351,8 +351,8 @@ static void InputFrameReport(TouchDriver *driver) OsalMutexLock(&driver->mutex); for (i = 0; i < MAX_FINGERS_NUM; i++) { if (frame->fingers[i].valid) { - HDF_LOGI("%s: ABS_MT_POSITION_X = %{public}d", frame->fingers[i].x); - HDF_LOGI("%s: ABS_MT_POSITION_Y = %{public}d", frame->fingers[i].y); + HDF_LOGI("%s: ABS_MT_POSITION_X = %{public}d", __func__, frame->fingers[i].x); + HDF_LOGI("%s: ABS_MT_POSITION_Y = %{public}d", __func__, frame->fingers[i].y); input_report_abs(dev, ABS_MT_POSITION_X, frame->fingers[i].x); input_report_abs(dev, ABS_MT_POSITION_Y, frame->fingers[i].y); input_report_abs(dev, ABS_MT_TRACKING_ID, frame->fingers[i].trackId); @@ -361,10 +361,10 @@ static void InputFrameReport(TouchDriver *driver) } if ((frame->definedEvent == TOUCH_DOWN) || (frame->definedEvent == TOUCH_CONTACT)) { - HDF_LOGI("%s: BTN_TOUCH DOWN"); + HDF_LOGI("%s: BTN_TOUCH DOWN", __func__); input_report_key(dev, BTN_TOUCH, 1); // BTN_TOUCH DOWN } else { - HDF_LOGI("%s: BTN_TOUCH UP"); + HDF_LOGI("%s: BTN_TOUCH UP", __func__); input_report_key(dev, BTN_TOUCH, 0); // BTN_TOUCH UP } OsalMutexUnlock(&driver->mutex); -- Gitee From 21cabac319abf746d6cfb34b4b30ce6cb2cf2b8f Mon Sep 17 00:00:00 2001 From: shilong Date: Tue, 29 Apr 2025 13:06:03 +0000 Subject: [PATCH 07/10] =?UTF-8?q?=E5=8A=A0=E7=BA=BF=E7=A8=8B=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shilong --- framework/model/input/driver/hdf_touch.c | 91 ++++++++++++++++++++---- 1 file changed, 78 insertions(+), 13 deletions(-) diff --git a/framework/model/input/driver/hdf_touch.c b/framework/model/input/driver/hdf_touch.c index 433919e5c..89ae9d128 100644 --- a/framework/model/input/driver/hdf_touch.c +++ b/framework/model/input/driver/hdf_touch.c @@ -15,6 +15,8 @@ #include "osal_io.h" #include "event_hub.h" #include "input_i2c_ops.h" +#include +#include #if defined(CONFIG_ARCH_ROCKCHIP) #include @@ -42,7 +44,9 @@ static int32_t ChipCheckResetRetry(ChipDevice *chipDev); static TouchDriver *g_touchDriverList[MAX_TOUCH_DEVICE]; static void InputFrameReport(TouchDriver *driver); static int SuspendFlag = 0; - +static uint64_t timeArray[100]; +spinlock_t my_spinlock = SPIN_LOCK_UNLOCKED; +int32_t i = 0; static int32_t SetGpioDirAndLevel(int gpio, int dir, int level) { HDF_LOGI("%s: AAA start", __func__); @@ -321,9 +325,25 @@ static void EventHandle(TouchDriver *driver, ChipDevice *chipDev) } } +static void SaveTime(uint64_t ms) +{ + unsigned long flags; + spin_lock_irqsave(&my_spinlock, flags); + if (i < 99) { + timeArray[i] = ms; + i++; + } + spin_unlock_irqrestore(&my_spinlock, flags); +} + static int32_t IrqHandle(uint16_t intGpioNum, void *data) { - HDF_LOGI("%s: AAA start", __func__); + uint64_t ns; // 纳秒 + uint64_t ms; // 毫秒 + ns = ktime_to_ns(ktime_get()); // 获取当前时间(纳秒) + ms = ns / 1000000; // 转换为毫秒 + SaveTime(ms); + TouchDriver *driver = (TouchDriver *)data; int ret = GpioDisableIrq(intGpioNum); if (ret != HDF_SUCCESS) { @@ -343,7 +363,6 @@ static int32_t IrqHandle(uint16_t intGpioNum, void *data) static void InputFrameReport(TouchDriver *driver) { - HDF_LOGI("%s: AAA start", __func__); InputDevice *dev = driver->inputDev; FrameData *frame = &driver->frameData; int32_t i; @@ -351,8 +370,6 @@ static void InputFrameReport(TouchDriver *driver) OsalMutexLock(&driver->mutex); for (i = 0; i < MAX_FINGERS_NUM; i++) { if (frame->fingers[i].valid) { - HDF_LOGI("%s: ABS_MT_POSITION_X = %{public}d", __func__, frame->fingers[i].x); - HDF_LOGI("%s: ABS_MT_POSITION_Y = %{public}d", __func__, frame->fingers[i].y); input_report_abs(dev, ABS_MT_POSITION_X, frame->fingers[i].x); input_report_abs(dev, ABS_MT_POSITION_Y, frame->fingers[i].y); input_report_abs(dev, ABS_MT_TRACKING_ID, frame->fingers[i].trackId); @@ -361,10 +378,8 @@ static void InputFrameReport(TouchDriver *driver) } if ((frame->definedEvent == TOUCH_DOWN) || (frame->definedEvent == TOUCH_CONTACT)) { - HDF_LOGI("%s: BTN_TOUCH DOWN", __func__); input_report_key(dev, BTN_TOUCH, 1); // BTN_TOUCH DOWN } else { - HDF_LOGI("%s: BTN_TOUCH UP", __func__); input_report_key(dev, BTN_TOUCH, 0); // BTN_TOUCH UP } OsalMutexUnlock(&driver->mutex); @@ -373,7 +388,6 @@ static void InputFrameReport(TouchDriver *driver) static int32_t SetupChipIrq(ChipDevice *chipDev) { - HDF_LOGI("%s: AAA start", __func__); #if defined(CONFIG_ARCH_MESON) return HDF_SUCCESS; #endif @@ -502,7 +516,6 @@ static void Gt1xDeinitEsdProtect(void) static int32_t ChipEsdResetRetry(TouchDriver *driver) { - HDF_LOGI("%s: AAA start", __func__); int32_t ret; ChipDevice *chipDev = driver->device; uint16_t intGpioNum = driver->device->boardCfg->pins.intGpio; @@ -534,7 +547,6 @@ static int32_t ChipEsdResetRetry(TouchDriver *driver) static void Gt1xEsdCheckFunc(struct work_struct *work) { - HDF_LOGI("%s: AAA start", __func__); int32_t i = 0; int32_t ret = -1; if (time_after(jiffies, g_timeout)) { @@ -567,7 +579,6 @@ static void Gt1xEsdCheckFunc(struct work_struct *work) static int32_t ChipCheckResetRetry(ChipDevice *chipDev) { - HDF_LOGI("%s: AAA start", __func__); int32_t count = 20; // 20 : reset time int32_t ret; @@ -588,6 +599,61 @@ static int32_t ChipCheckResetRetry(ChipDevice *chipDev) } #endif +// 线程函数 +static int low_priority_thread(void *data) +{ + printk(KERN_INFO "Low priority thread started\n"); + while (!kthread_should_stop()) { + unsigned long flags; + spin_lock_irqsave(&my_spinlock, flags); + for (int k = 0; k < i; k++) { + HDF_LOGI("%s: time[%d] = %lu", __func__, k, timeArray[i]); + } + spin_unlock_irqrestore(&my_spinlock, flags); + } + printk(KERN_INFO "Low priority thread stopped\n"); + return 0; +} + +// 设置线程优先级 +static void set_thread_priority(struct task_struct *thread, int nice_value) +{ + if (nice_value >= -20 && nice_value <= 19) { + set_user_nice(thread, nice_value); + printk(KERN_INFO "Thread priority set to nice value: %d\n", nice_value); + } else { + printk(KERN_INFO "Invalid nice value: %d\n", nice_value); + } +} + +// 模块加载函数 +static int __init low_priority_thread_init(void) +{ + struct task_struct *thread; + + // 创建内核线程 + thread = kthread_create(low_priority_thread, NULL, "low_priority_thread"); + if (IS_ERR(thread)) { + printk(KERN_INFO "Failed to create low priority thread\n"); + return PTR_ERR(thread); + } + + // 设置线程优先级(低优先级,nice value = 19) + set_thread_priority(thread, 19); + + // 启动线程 + wake_up_process(thread); + + return 0; +} + +// 模块卸载函数 +static void __exit low_priority_thread_exit(void) +{ + printk(KERN_INFO "Low priority thread module unloaded\n"); +} + + static int32_t ChipDriverInit(ChipDevice *chipDev) { HDF_LOGI("%s: AAA start", __func__); @@ -640,6 +706,7 @@ static int32_t ChipDriverInit(ChipDevice *chipDev) #endif ret = SetupChipIrq(chipDev); + low_priority_thread_init(); CHECK_RETURN_VALUE(ret); return HDF_SUCCESS; } @@ -1027,7 +1094,6 @@ static int32_t TouchInitData(TouchDriver *driver, TouchBoardCfg *config) static int32_t TouchDriverInit(TouchDriver *driver, TouchBoardCfg *config) { - HDF_LOGI("%s: AAA start", __func__); int32_t ret = TouchInitData(driver, config); CHECK_RETURN_VALUE(ret); @@ -1189,7 +1255,6 @@ static void HdfTouchDriverUnregisterPowerListener(struct HdfDeviceObject *device static int32_t HdfTouchDriverProbe(struct HdfDeviceObject *device) { - HDF_LOGI("%s: AAA start", __func__); int32_t ret; TouchBoardCfg *boardCfg = NULL; TouchDriver *touchDriver = NULL; -- Gitee From f40674ce0588721a5e5a0412aa3ed4f3f1180e60 Mon Sep 17 00:00:00 2001 From: shilong Date: Tue, 29 Apr 2025 13:46:05 +0000 Subject: [PATCH 08/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=B4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shilong --- framework/model/input/driver/hdf_touch.c | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/model/input/driver/hdf_touch.c b/framework/model/input/driver/hdf_touch.c index 89ae9d128..c7d26a793 100644 --- a/framework/model/input/driver/hdf_touch.c +++ b/framework/model/input/driver/hdf_touch.c @@ -17,6 +17,7 @@ #include "input_i2c_ops.h" #include #include +#include #if defined(CONFIG_ARCH_ROCKCHIP) #include -- Gitee From a01d6e01ca5927328f284c49d2ad2cab76b62f9f Mon Sep 17 00:00:00 2001 From: shilong Date: Tue, 29 Apr 2025 13:56:40 +0000 Subject: [PATCH 09/10] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shilong --- framework/model/input/driver/hdf_touch.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/framework/model/input/driver/hdf_touch.c b/framework/model/input/driver/hdf_touch.c index c7d26a793..e8ef88452 100644 --- a/framework/model/input/driver/hdf_touch.c +++ b/framework/model/input/driver/hdf_touch.c @@ -16,7 +16,7 @@ #include "event_hub.h" #include "input_i2c_ops.h" #include -#include +#include #include #if defined(CONFIG_ARCH_ROCKCHIP) @@ -46,7 +46,7 @@ static TouchDriver *g_touchDriverList[MAX_TOUCH_DEVICE]; static void InputFrameReport(TouchDriver *driver); static int SuspendFlag = 0; static uint64_t timeArray[100]; -spinlock_t my_spinlock = SPIN_LOCK_UNLOCKED; +static DEFINE_MUTEX(my_mutex); int32_t i = 0; static int32_t SetGpioDirAndLevel(int gpio, int dir, int level) { @@ -328,13 +328,14 @@ static void EventHandle(TouchDriver *driver, ChipDevice *chipDev) static void SaveTime(uint64_t ms) { - unsigned long flags; - spin_lock_irqsave(&my_spinlock, flags); + // 获取锁 + mutex_lock(&my_mutex); if (i < 99) { timeArray[i] = ms; i++; } - spin_unlock_irqrestore(&my_spinlock, flags); + // 释放锁 + mutex_unlock(&my_mutex); } static int32_t IrqHandle(uint16_t intGpioNum, void *data) @@ -605,12 +606,12 @@ static int low_priority_thread(void *data) { printk(KERN_INFO "Low priority thread started\n"); while (!kthread_should_stop()) { - unsigned long flags; - spin_lock_irqsave(&my_spinlock, flags); + mutex_lock(&my_mutex); for (int k = 0; k < i; k++) { HDF_LOGI("%s: time[%d] = %lu", __func__, k, timeArray[i]); } - spin_unlock_irqrestore(&my_spinlock, flags); + // 释放锁 + mutex_unlock(&my_mutex); } printk(KERN_INFO "Low priority thread stopped\n"); return 0; -- Gitee From 69643e5b734a1ea27c35c9f8c4778f53537f8162 Mon Sep 17 00:00:00 2001 From: shilong Date: Wed, 30 Apr 2025 03:26:24 +0000 Subject: [PATCH 10/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shilong --- framework/model/input/driver/hdf_touch.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/framework/model/input/driver/hdf_touch.c b/framework/model/input/driver/hdf_touch.c index e8ef88452..48ade902e 100644 --- a/framework/model/input/driver/hdf_touch.c +++ b/framework/model/input/driver/hdf_touch.c @@ -47,7 +47,7 @@ static void InputFrameReport(TouchDriver *driver); static int SuspendFlag = 0; static uint64_t timeArray[100]; static DEFINE_MUTEX(my_mutex); -int32_t i = 0; +static int32_t i = 0; static int32_t SetGpioDirAndLevel(int gpio, int dir, int level) { HDF_LOGI("%s: AAA start", __func__); @@ -330,7 +330,7 @@ static void SaveTime(uint64_t ms) { // 获取锁 mutex_lock(&my_mutex); - if (i < 99) { + if (i < 100) { timeArray[i] = ms; i++; } @@ -608,11 +608,17 @@ static int low_priority_thread(void *data) while (!kthread_should_stop()) { mutex_lock(&my_mutex); for (int k = 0; k < i; k++) { - HDF_LOGI("%s: time[%d] = %lu", __func__, k, timeArray[i]); + if (timeArray[0] != 0) { + HDF_LOGI("%s: irq time[%d] = %lu", __func__, k, timeArray[i]); + } + } + if ( i == 99) { + break; } // 释放锁 mutex_unlock(&my_mutex); } + printk(KERN_INFO "Low priority thread stopped\n"); return 0; } -- Gitee