From 9806e0f42cb0f79e78e818e562a32727f9a8fb2a Mon Sep 17 00:00:00 2001 From: Ravikanth Tuniki Date: Wed, 16 Sep 2020 16:31:03 +0530 Subject: [PATCH] input: touchscreen: synaptics_dsx: Fix Propagation This change propagates the missing fixes in synatics dsx touch driver from msm-4.19 to msm-5.4. Change-Id: Idbddf9c7fc8ebccdfde1b753fef36a8ce5d74e18 Signed-off-by: Ravikanth Tuniki --- .../synaptics_dsx/synaptics_dsx_active_pen.c | 4 +- .../synaptics_dsx/synaptics_dsx_core.c | 84 +++++----- .../synaptics_dsx/synaptics_dsx_core.h | 16 +- .../synaptics_dsx/synaptics_dsx_fw_update.c | 42 +---- .../synaptics_dsx/synaptics_dsx_gesture.c | 24 +-- .../synaptics_dsx/synaptics_dsx_i2c.c | 94 ++++++++--- .../synaptics_dsx/synaptics_dsx_proximity.c | 22 +-- .../synaptics_dsx/synaptics_dsx_rmi_dev.c | 13 +- .../synaptics_dsx/synaptics_dsx_rmi_hid_i2c.c | 38 ++--- .../synaptics_dsx/synaptics_dsx_spi.c | 39 ++--- .../synaptics_dsx_test_reporting.c | 147 +++++++----------- .../synaptics_dsx/synaptics_dsx_video.c | 16 +- 12 files changed, 215 insertions(+), 324 deletions(-) diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_active_pen.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_active_pen.c index 25437e7dc39e..9f37ea74837b 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_active_pen.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_active_pen.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -244,8 +244,6 @@ static void apen_set_params(void) apen->rmi4_data->sensor_max_y, 0, 0); input_set_abs_params(apen->apen_dev, ABS_PRESSURE, 0, apen->max_pressure, 0, 0); - - return; } static int apen_pressure(struct synaptics_rmi4_f12_query_8 *query_8) diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c index 0b845a7596fa..e1e8b9222f16 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -46,7 +46,6 @@ #include #endif -#include #include #define INPUT_PHYS_NAME "synaptics_dsx/touch_input" @@ -129,7 +128,7 @@ static int synaptics_rmi4_reset_device(struct synaptics_rmi4_data *rmi4_data, bool rebuild); static int synaptics_rmi4_dsi_panel_notifier_cb(struct notifier_block *self, unsigned long event, void *data); - +struct drm_panel *active_panel; #ifdef CONFIG_HAS_EARLYSUSPEND #ifndef CONFIG_FB #define USE_EARLYSUSPEND @@ -1013,9 +1012,11 @@ static int synaptics_rmi4_f12_wg(struct synaptics_rmi4_data *rmi4_data, } if (enable) - reporting_control[rmi4_data->set_wakeup_gesture] = F12_WAKEUP_GESTURE_MODE; + reporting_control[rmi4_data->set_wakeup_gesture] = + F12_WAKEUP_GESTURE_MODE; else - reporting_control[rmi4_data->set_wakeup_gesture] = F12_CONTINUOUS_MODE; + reporting_control[rmi4_data->set_wakeup_gesture] = + F12_CONTINUOUS_MODE; retval = synaptics_rmi4_reg_write(rmi4_data, fhandler->full_addr.ctrl_base + offset, @@ -3311,7 +3312,7 @@ static int synaptics_rmi4_gpio_setup(int gpio, bool config, int dir, int state) unsigned char buf[16]; if (config) { - snprintf(buf, PAGE_SIZE, "dsx_gpio_%u\n", gpio); + snprintf(buf, sizeof(buf), "dsx_gpio_%u\n", gpio); retval = gpio_request(gpio, buf); if (retval) { @@ -4280,14 +4281,16 @@ static int synaptics_rmi4_probe(struct platform_device *pdev) rmi4_data->initialized = false; rmi4_data->fb_notifier.notifier_call = synaptics_rmi4_dsi_panel_notifier_cb; - retval = msm_drm_register_client(&rmi4_data->fb_notifier); - if (retval < 0) { - dev_err(&pdev->dev, - "%s: Failed to register fb notifier client\n", - __func__); - goto err_drm_reg; + if (active_panel) { + retval = drm_panel_notifier_register(active_panel, + &rmi4_data->fb_notifier); + if (retval < 0) { + dev_err(&pdev->dev, + "%s: Failed to register fb notifier client\n", + __func__); + goto err_drm_reg; + } } - rmi4_data->rmi4_probe_wq = create_singlethread_workqueue( "Synaptics_rmi4_probe_wq"); if (!rmi4_data->rmi4_probe_wq) { @@ -4302,7 +4305,9 @@ static int synaptics_rmi4_probe(struct platform_device *pdev) return retval; err_probe_wq: - msm_drm_unregister_client(&rmi4_data->fb_notifier); + if (active_panel) + drm_panel_notifier_unregister(active_panel, + &rmi4_data->fb_notifier); err_drm_reg: kfree(rmi4_data); @@ -4358,20 +4363,21 @@ static void synaptics_rmi4_defer_probe(struct work_struct *work) } retval = synaptics_dsx_pinctrl_init(rmi4_data); - if (!retval && rmi4_data->ts_pinctrl) { - /* - * Pinctrl handle is optional. If pinctrl handle is found - * let pins to be configured in active state. If not - * found continue further without error. - */ - retval = pinctrl_select_state(rmi4_data->ts_pinctrl, - rmi4_data->pinctrl_state_active); - if (retval < 0) { - dev_err(&pdev->dev, - "%s: Failed to select %s pinstate %d\n", - __func__, PINCTRL_STATE_ACTIVE, retval); - } + if (!retval && rmi4_data->ts_pinctrl) { + /* + * Pinctrl handle is optional. + * If pinctrl handle is found let pins to be + * configured in active state. If not found continue + * further without error. + */ + retval = pinctrl_select_state(rmi4_data->ts_pinctrl, + rmi4_data->pinctrl_state_active); + if (retval < 0) { + dev_err(&pdev->dev, + "%s: Failed to select %s pinstate %d\n", + __func__, PINCTRL_STATE_ACTIVE, retval); } + } if (hw_if->ui_hw_init) { retval = hw_if->ui_hw_init(rmi4_data); @@ -4533,12 +4539,12 @@ err_enable_reg: err_get_reg: err_drm_init_wait: - msm_drm_unregister_client(&rmi4_data->fb_notifier); + if (active_panel) + drm_panel_notifier_unregister(active_panel, + &rmi4_data->fb_notifier); cancel_work_sync(&rmi4_data->rmi4_probe_work); destroy_workqueue(rmi4_data->rmi4_probe_wq); kfree(rmi4_data); - - return; } static int synaptics_rmi4_remove(struct platform_device *pdev) @@ -4575,7 +4581,9 @@ static int synaptics_rmi4_remove(struct platform_device *pdev) synaptics_rmi4_irq_enable(rmi4_data, false, false); - msm_drm_unregister_client(&rmi4_data->fb_notifier); + if (active_panel) + drm_panel_notifier_unregister(active_panel, + &rmi4_data->fb_notifier); #ifdef USE_EARLYSUSPEND unregister_early_suspend(&rmi4_data->early_suspend); @@ -4623,18 +4631,18 @@ static int synaptics_rmi4_dsi_panel_notifier_cb(struct notifier_block *self, unsigned long event, void *data) { int transition; - struct msm_drm_notifier *evdata = data; + struct drm_panel_notifier *evdata = data; struct synaptics_rmi4_data *rmi4_data = container_of(self, struct synaptics_rmi4_data, fb_notifier); - if (!evdata || (evdata->id != 0)) + if (!evdata) return 0; if (evdata && evdata->data && rmi4_data) { - if (event == MSM_DRM_EARLY_EVENT_BLANK) { + if (event == DRM_PANEL_EARLY_EVENT_BLANK) { transition = *(int *)evdata->data; - if (transition == MSM_DRM_BLANK_POWERDOWN) { + if (transition == DRM_PANEL_BLANK_POWERDOWN) { if (rmi4_data->initialized) synaptics_rmi4_suspend( &rmi4_data->pdev->dev); @@ -4644,9 +4652,9 @@ static int synaptics_rmi4_dsi_panel_notifier_cb(struct notifier_block *self, } if (evdata && evdata->data && rmi4_data) { - if (event == MSM_DRM_EVENT_BLANK) { + if (event == DRM_PANEL_EVENT_BLANK) { transition = *(int *)evdata->data; - if (transition == MSM_DRM_BLANK_UNBLANK) { + if (transition == DRM_PANEL_BLANK_UNBLANK) { if (rmi4_data->initialized) synaptics_rmi4_resume( &rmi4_data->pdev->dev); @@ -4935,7 +4943,7 @@ static void __exit synaptics_rmi4_exit(void) synaptics_rmi4_bus_exit(); } -module_init(synaptics_rmi4_init); +late_initcall(synaptics_rmi4_init); module_exit(synaptics_rmi4_exit); MODULE_AUTHOR("Synaptics, Inc."); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h index af56c53800d5..549ddcb5a59b 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -49,6 +49,8 @@ #include #endif +#include + #if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 38)) #define KERNEL_ABOVE_2_6_38 #endif @@ -62,15 +64,7 @@ #else #define sstrtoul(...) strict_strtoul(__VA_ARGS__) #endif -/* -*#define F51_DISCRETE_FORCE -*#ifdef F51_DISCRETE_FORCE -*#define FORCE_LEVEL_ADDR 0x0419 -*#define FORCE_LEVEL_MAX 255 -*#define CAL_DATA_SIZE 144 -*#endif -*#define SYNA_TDDI -*/ + #define PDT_PROPS (0X00EF) #define PDT_START (0x00E9) #define PDT_END (0x00D0) @@ -141,6 +135,8 @@ enum exp_fn { RMI_LAST, }; +extern struct drm_panel *active_panel; + /* * struct synaptics_rmi4_fn_desc - function descriptor fields in PDT entry * @query_base_addr: base address for query registers diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c index d2fc628571be..17fe83a757d5 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -45,21 +45,6 @@ #define FW_IHEX_NAME "synaptics/startup_fw_update.bin" #define FW_IMAGE_NAME "synaptics/startup_fw_update.img" -/* -*#define DO_STARTUP_FW_UPDATE -*/ -/* -*#ifdef DO_STARTUP_FW_UPDATE -*#ifdef CONFIG_FB -*#define WAIT_FOR_FB_READY -*#define FB_READY_WAIT_MS 100 -*#define FB_READY_TIMEOUT_S 30 -*#endif -*#endif -*/ -/* -*#define MAX_WRITE_SIZE 4096 -*/ #define ENABLE_SYS_REFLASH false #define FORCE_UPDATE false @@ -858,8 +843,6 @@ static void calculate_checksum(unsigned short *data, unsigned long len, } *result = sum2 << 16 | sum1; - - return; } static void convert_to_little_endian(unsigned char *dest, unsigned long src) @@ -868,8 +851,6 @@ static void convert_to_little_endian(unsigned char *dest, unsigned long src) dest[1] = (unsigned char)((src >> 8) & 0xff); dest[2] = (unsigned char)((src >> 16) & 0xff); dest[3] = (unsigned char)((src >> 24) & 0xff); - - return; } static unsigned int le_to_uint(const unsigned char *ptr) @@ -1007,8 +988,6 @@ static void fwu_compare_partition_tables(void) if (fwu->phyaddr.guest_code != fwu->img.phyaddr.guest_code) fwu->new_partition_table = true; } - - return; } static void fwu_parse_partition_table(const unsigned char *partition_table, @@ -1121,8 +1100,6 @@ static void fwu_parse_partition_table(const unsigned char *partition_table, break; }; } - - return; } static void fwu_parse_image_header_10_utility(const unsigned char *image) @@ -1156,8 +1133,6 @@ static void fwu_parse_image_header_10_utility(const unsigned char *image) break; }; } - - return; } static void fwu_parse_image_header_10_bootloader(const unsigned char *image) @@ -1198,8 +1173,6 @@ static void fwu_parse_image_header_10_bootloader(const unsigned char *image) break; }; } - - return; } static void fwu_parse_image_header_10(void) @@ -1287,8 +1260,6 @@ static void fwu_parse_image_header_10(void) break; } } - - return; } static void fwu_parse_image_header_05_06(void) @@ -1366,8 +1337,6 @@ static void fwu_parse_image_header_05_06(void) fwu->img.lockdown.size = LOCKDOWN_SIZE; fwu->img.lockdown.data = image + IMAGE_AREA_OFFSET - LOCKDOWN_SIZE; - - return; } static int fwu_parse_image_info(void) @@ -4983,8 +4952,6 @@ static void fwu_startup_fw_update_work(struct work_struct *work) #endif synaptics_fw_updater(NULL); - - return; } #endif @@ -5322,9 +5289,8 @@ static ssize_t fwu_sysfs_image_size_store(struct device *dev, "%s: Failed to alloc mem for image data\n", __func__); retval = -ENOMEM; - } else { - retval = count; } + retval = count; mutex_unlock(&fwu_sysfs_mutex); @@ -5769,8 +5735,6 @@ static void synaptics_rmi4_fwu_remove(struct synaptics_rmi4_data *rmi4_data) exit: complete(&fwu_remove_complete); - - return; } static void synaptics_rmi4_fwu_reset(struct synaptics_rmi4_data *rmi4_data) @@ -5823,8 +5787,6 @@ static void __exit rmi4_fw_update_module_exit(void) synaptics_rmi4_new_function(&fwu_module, false); wait_for_completion(&fwu_remove_complete); - - return; } module_init(rmi4_fw_update_module_init); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_gesture.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_gesture.c index 1820abe6ce3b..68d8a53ffe7c 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_gesture.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_gesture.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -906,9 +906,8 @@ static ssize_t udg_sysfs_trace_data_show(struct file *data_file, "%s: Failed to read trace X data\n", __func__); return retval; - } else { - index += udg->trace_size * 2; } + index += udg->trace_size * 2; retval = synaptics_rmi4_reg_read(rmi4_data, udg->addr.trace_y, @@ -919,9 +918,8 @@ static ssize_t udg_sysfs_trace_data_show(struct file *data_file, "%s: Failed to read trace Y data\n", __func__); return retval; - } else { - index += udg->trace_size * 2; } + index += udg->trace_size * 2; retval = synaptics_rmi4_reg_read(rmi4_data, udg->addr.trace_segment, @@ -2185,8 +2183,6 @@ static void synaptics_rmi4_udg_remove(struct synaptics_rmi4_data *rmi4_data) exit: complete(&udg_remove_complete); - - return; } static void synaptics_rmi4_udg_reset(struct synaptics_rmi4_data *rmi4_data) @@ -2202,8 +2198,6 @@ static void synaptics_rmi4_udg_reset(struct synaptics_rmi4_data *rmi4_data) udg_write_template_data(); udg_write_valid_data(); #endif - - return; } static void synaptics_rmi4_udg_reinit(struct synaptics_rmi4_data *rmi4_data) @@ -2216,8 +2210,6 @@ static void synaptics_rmi4_udg_reinit(struct synaptics_rmi4_data *rmi4_data) udg_write_template_data(); udg_write_valid_data(); #endif - - return; } static void synaptics_rmi4_udg_e_suspend(struct synaptics_rmi4_data *rmi4_data) @@ -2231,8 +2223,6 @@ static void synaptics_rmi4_udg_e_suspend(struct synaptics_rmi4_data *rmi4_data) udg_engine_enable(true); udg_detection_enable(true); - - return; } static void synaptics_rmi4_udg_suspend(struct synaptics_rmi4_data *rmi4_data) @@ -2246,8 +2236,6 @@ static void synaptics_rmi4_udg_suspend(struct synaptics_rmi4_data *rmi4_data) udg_engine_enable(true); udg_detection_enable(true); - - return; } static void synaptics_rmi4_udg_resume(struct synaptics_rmi4_data *rmi4_data) @@ -2257,8 +2245,6 @@ static void synaptics_rmi4_udg_resume(struct synaptics_rmi4_data *rmi4_data) disable_irq_wake(rmi4_data->irq); udg_detection_enable(false); - - return; } static void synaptics_rmi4_udg_l_resume(struct synaptics_rmi4_data *rmi4_data) @@ -2268,8 +2254,6 @@ static void synaptics_rmi4_udg_l_resume(struct synaptics_rmi4_data *rmi4_data) disable_irq_wake(rmi4_data->irq); udg_detection_enable(false); - - return; } static struct synaptics_rmi4_exp_fn gesture_module = { @@ -2297,8 +2281,6 @@ static void __exit rmi4_gesture_module_exit(void) synaptics_rmi4_new_function(&gesture_module, false); wait_for_completion(&udg_remove_complete); - - return; } module_init(rmi4_gesture_module_init); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c index ffe4b9ada815..a90c1288cb33 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -97,9 +97,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,power-on-state property\n", __func__); return retval; - } else { - bdata->power_on_state = value; } + bdata->power_on_state = value; } else { bdata->power_gpio = -1; } @@ -112,9 +111,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,power-delay-ms property\n", __func__); return retval; - } else { - bdata->power_delay_ms = value; } + bdata->power_delay_ms = value; } else { bdata->power_delay_ms = 0; } @@ -129,18 +127,16 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,reset-on-state property\n", __func__); return retval; - } else { - bdata->reset_on_state = value; } + bdata->reset_on_state = value; retval = of_property_read_u32(np, "synaptics,reset-active-ms", &value); if (retval < 0) { dev_err(dev, "%s: Unable to read synaptics,reset-active-ms property\n", __func__); return retval; - } else { - bdata->reset_active_ms = value; } + bdata->reset_active_ms = value; } else { bdata->reset_gpio = -1; } @@ -153,9 +149,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,reset-delay-ms property\n", __func__); return retval; - } else { - bdata->reset_delay_ms = value; } + bdata->reset_delay_ms = value; } else { bdata->reset_delay_ms = 0; } @@ -168,9 +163,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,max-y-for-2d property\n", __func__); return retval; - } else { - bdata->max_y_for_2d = value; } + bdata->max_y_for_2d = value; } else { bdata->max_y_for_2d = -1; } @@ -187,9 +181,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,ub-i2c-addr property\n", __func__); return retval; - } else { - bdata->ub_i2c_addr = (unsigned short)value; } + bdata->ub_i2c_addr = (unsigned short)value; } else { bdata->ub_i2c_addr = -1; } @@ -273,8 +266,6 @@ static void synaptics_rmi4_i2c_check_addr(struct synaptics_rmi4_data *rmi4_data, hw_if.board_data->i2c_addr = hw_if.board_data->ub_i2c_addr; else hw_if.board_data->i2c_addr = i2c->addr; - - return; } static int synaptics_rmi4_i2c_set_page(struct synaptics_rmi4_data *rmi4_data, @@ -460,6 +451,59 @@ exit: return retval; } +static int check_dt(struct device_node *np) +{ + int i; + int count; + struct device_node *node; + struct drm_panel *panel; + + count = of_count_phandle_with_args(np, "panel", NULL); + if (count <= 0) + return 0; + + for (i = 0; i < count; i++) { + node = of_parse_phandle(np, "panel", i); + panel = of_drm_find_panel(node); + of_node_put(node); + if (!IS_ERR(panel)) { + active_panel = panel; + return 0; + } + } + + return -ENODEV; +} + +static int check_default_tp(struct device_node *dt, const char *prop) +{ + const char *active_tp; + const char *compatible; + char *start; + int ret; + + ret = of_property_read_string(dt->parent, prop, &active_tp); + if (ret) { + pr_err(" %s:fail to read %s %d\n", __func__, prop, ret); + return -ENODEV; + } + + ret = of_property_read_string(dt, "compatible", &compatible); + if (ret < 0) { + pr_err(" %s:fail to read %s %d\n", __func__, "compatible", ret); + return -ENODEV; + } + + start = strnstr(active_tp, compatible, strlen(active_tp)); + if (start == NULL) { + pr_err(" %s:no match compatible, %s, %s\n", + __func__, compatible, active_tp); + ret = -ENODEV; + } + + return ret; +} + static struct synaptics_dsx_bus_access bus_access = { .type = BUS_I2C, .read = synaptics_rmi4_i2c_read, @@ -469,14 +513,22 @@ static struct synaptics_dsx_bus_access bus_access = { static void synaptics_rmi4_i2c_dev_release(struct device *dev) { kfree(synaptics_dsx_i2c_device); - - return; } static int synaptics_rmi4_i2c_probe(struct i2c_client *client, const struct i2c_device_id *dev_id) { int retval; + struct device_node *dp = client->dev.of_node; + + if (check_dt(dp)) { + if (!check_default_tp(dp, "qcom,i2c-touch-active")) + retval = -EPROBE_DEFER; + else + retval = -ENODEV; + + return retval; + } if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) { @@ -566,7 +618,7 @@ static const struct i2c_device_id synaptics_rmi4_id_table[] = { MODULE_DEVICE_TABLE(i2c, synaptics_rmi4_id_table); #ifdef CONFIG_OF -static struct of_device_id synaptics_rmi4_of_match_table[] = { +static const struct of_device_id synaptics_rmi4_of_match_table[] = { { .compatible = "synaptics,dsx-i2c", }, @@ -599,8 +651,6 @@ void synaptics_rmi4_bus_exit(void) kfree(wr_buf); i2c_del_driver(&synaptics_rmi4_i2c_driver); - - return; } EXPORT_SYMBOL(synaptics_rmi4_bus_exit); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_proximity.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_proximity.c index 97f75553c0f6..ea3dbe03a084 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_proximity.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_proximity.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -157,8 +157,6 @@ static void prox_hover_finger_lift(void) input_report_key(prox->prox_dev, BTN_TOOL_FINGER, 0); input_sync(prox->prox_dev); prox->hover_finger_present = false; - - return; } static void prox_hover_finger_report(void) @@ -207,8 +205,6 @@ static void prox_hover_finger_report(void) __func__, x, y, z); prox->hover_finger_present = true; - - return; } static int prox_set_hover_finger_en(void) @@ -255,8 +251,6 @@ static void prox_set_params(void) prox->rmi4_data->sensor_max_y, 0, 0); input_set_abs_params(prox->prox_dev, ABS_DISTANCE, 0, HOVER_Z_MAX, 0, 0); - - return; } static int prox_reg_init(void) @@ -468,8 +462,6 @@ static void synaptics_rmi4_prox_attn(struct synaptics_rmi4_data *rmi4_data, if (prox->intr_mask & intr_mask) prox_hover_finger_report(); - - return; } static int synaptics_rmi4_prox_init(struct synaptics_rmi4_data *rmi4_data) @@ -604,8 +596,6 @@ static void synaptics_rmi4_prox_remove(struct synaptics_rmi4_data *rmi4_data) exit: complete(&prox_remove_complete); - - return; } static void synaptics_rmi4_prox_reset(struct synaptics_rmi4_data *rmi4_data) @@ -620,8 +610,6 @@ static void synaptics_rmi4_prox_reset(struct synaptics_rmi4_data *rmi4_data) prox_scan_pdt(); prox_set_hover_finger_en(); - - return; } static void synaptics_rmi4_prox_reinit(struct synaptics_rmi4_data *rmi4_data) @@ -632,8 +620,6 @@ static void synaptics_rmi4_prox_reinit(struct synaptics_rmi4_data *rmi4_data) prox_hover_finger_lift(); prox_set_hover_finger_en(); - - return; } static void synaptics_rmi4_prox_e_suspend(struct synaptics_rmi4_data *rmi4_data) @@ -642,8 +628,6 @@ static void synaptics_rmi4_prox_e_suspend(struct synaptics_rmi4_data *rmi4_data) return; prox_hover_finger_lift(); - - return; } static void synaptics_rmi4_prox_suspend(struct synaptics_rmi4_data *rmi4_data) @@ -652,8 +636,6 @@ static void synaptics_rmi4_prox_suspend(struct synaptics_rmi4_data *rmi4_data) return; prox_hover_finger_lift(); - - return; } static struct synaptics_rmi4_exp_fn proximity_module = { @@ -681,8 +663,6 @@ static void __exit rmi4_proximity_module_exit(void) synaptics_rmi4_new_function(&proximity_module, false); wait_for_completion(&prox_remove_complete); - - return; } module_init(rmi4_proximity_module_init); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_dev.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_dev.c index 710834c4ec7f..8464f43ef0a8 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_dev.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_dev.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include "synaptics_dsx_core.h" @@ -102,8 +103,8 @@ struct rmidev_handle { struct device dev; struct synaptics_rmi4_data *rmi4_data; struct kobject *sysfs_dir; - struct siginfo interrupt_signal; - struct siginfo terminate_signal; + struct kernel_siginfo interrupt_signal; + struct kernel_siginfo terminate_signal; struct task_struct *task; void *data; bool concurrent; @@ -769,8 +770,6 @@ static void rmidev_device_cleanup(struct rmidev_data *dev_data) "%s: rmidev device removed\n", __func__); } - - return; } static char *rmi_char_devnode(struct device *dev, umode_t *mode) @@ -1039,8 +1038,6 @@ static void rmidev_remove_device(struct synaptics_rmi4_data *rmi4_data) exit: complete(&rmidev_remove_complete); - - return; } static struct synaptics_rmi4_exp_fn rmidev_module = { @@ -1068,8 +1065,6 @@ static void __exit rmidev_module_exit(void) synaptics_rmi4_new_function(&rmidev_module, false); wait_for_completion(&rmidev_remove_complete); - - return; } module_init(rmidev_module_init); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_hid_i2c.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_hid_i2c.c index 816cdc5df367..36b12d875078 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_hid_i2c.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_hid_i2c.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -162,9 +162,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,power-on-state property\n", __func__); return retval; - } else { - bdata->power_on_state = value; } + bdata->power_on_state = value; } else { bdata->power_gpio = -1; } @@ -177,9 +176,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,power-delay-ms property\n", __func__); return retval; - } else { - bdata->power_delay_ms = value; } + bdata->power_delay_ms = value; } else { bdata->power_delay_ms = 0; } @@ -194,18 +192,16 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,reset-on-state property\n", __func__); return retval; - } else { - bdata->reset_on_state = value; } + bdata->reset_on_state = value; retval = of_property_read_u32(np, "synaptics,reset-active-ms", &value); if (retval < 0) { dev_err(dev, "%s: Unable to read synaptics,reset-active-ms property\n", __func__); return retval; - } else { - bdata->reset_active_ms = value; } + bdata->reset_active_ms = value; } else { bdata->reset_gpio = -1; } @@ -218,9 +214,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,reset-delay-ms property\n", __func__); return retval; - } else { - bdata->reset_delay_ms = value; } + bdata->reset_delay_ms = value; } else { bdata->reset_delay_ms = 0; } @@ -233,9 +228,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,dev-dscrptr-addr property\n", __func__); return retval; - } else { - bdata->device_descriptor_addr = (unsigned short)value; } + bdata->device_descriptor_addr = (unsigned short)value; } else { bdata->device_descriptor_addr = 0; } @@ -248,9 +242,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,max-y-for-2d property\n", __func__); return retval; - } else { - bdata->max_y_for_2d = value; } + bdata->max_y_for_2d = value; } else { bdata->max_y_for_2d = -1; } @@ -272,9 +265,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,ub-i2c-addr property\n", __func__); return retval; - } else { - bdata->ub_i2c_addr = (unsigned short)value; } + bdata->ub_i2c_addr = (unsigned short)value; } else { bdata->ub_i2c_addr = -1; } @@ -422,8 +414,6 @@ static void traverse_report_descriptor(unsigned int *index) default: break; } - - return; } static void find_blob_size(unsigned int index) @@ -441,8 +431,6 @@ static void find_blob_size(unsigned int index) } traverse_report_descriptor(&ii); } - - return; } static void find_reports(unsigned int index) @@ -489,8 +477,6 @@ static void find_reports(unsigned int index) break; } } - - return; } static int parse_report_descriptor(struct synaptics_rmi4_data *rmi4_data) @@ -862,8 +848,6 @@ static struct platform_device *synaptics_dsx_i2c_device; static void synaptics_rmi4_i2c_dev_release(struct device *dev) { kfree(synaptics_dsx_i2c_device); - - return; } static int synaptics_rmi4_i2c_probe(struct i2c_client *client, @@ -966,7 +950,7 @@ static const struct i2c_device_id synaptics_rmi4_id_table[] = { MODULE_DEVICE_TABLE(i2c, synaptics_rmi4_id_table); #ifdef CONFIG_OF -static struct of_device_id synaptics_rmi4_of_match_table[] = { +static const struct of_device_id synaptics_rmi4_of_match_table[] = { { .compatible = "synaptics,dsx-rmi-hid-i2c", }, @@ -997,8 +981,6 @@ EXPORT_SYMBOL(synaptics_rmi4_bus_init); void synaptics_rmi4_bus_exit(void) { i2c_del_driver(&synaptics_rmi4_i2c_driver); - - return; } EXPORT_SYMBOL(synaptics_rmi4_bus_exit); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_spi.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_spi.c index 718fe5cb9d20..6915fa1259c2 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_spi.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_spi.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -93,9 +93,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,power-on-state property\n", __func__); return retval; - } else { - bdata->power_on_state = value; } + bdata->power_on_state = value; } else { bdata->power_gpio = -1; } @@ -108,9 +107,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,power-delay-ms property\n", __func__); return retval; - } else { - bdata->power_delay_ms = value; } + bdata->power_delay_ms = value; } else { bdata->power_delay_ms = 0; } @@ -125,18 +123,16 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,reset-on-state property\n", __func__); return retval; - } else { - bdata->reset_on_state = value; } + bdata->reset_on_state = value; retval = of_property_read_u32(np, "synaptics,reset-active-ms", &value); if (retval < 0) { dev_err(dev, "%s: Unable to read synaptics,reset-active-ms property\n", __func__); return retval; - } else { - bdata->reset_active_ms = value; } + bdata->reset_active_ms = value; } else { bdata->reset_gpio = -1; } @@ -149,9 +145,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,reset-delay-ms property\n", __func__); return retval; - } else { - bdata->reset_delay_ms = value; } + bdata->reset_delay_ms = value; } else { bdata->reset_delay_ms = 0; } @@ -164,9 +159,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,byte-delay-us property\n", __func__); return retval; - } else { - bdata->byte_delay_us = value; } + bdata->byte_delay_us = value; } else { bdata->byte_delay_us = 0; } @@ -179,9 +173,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,block-delay-us property\n", __func__); return retval; - } else { - bdata->block_delay_us = value; } + bdata->block_delay_us = value; } else { bdata->block_delay_us = 0; } @@ -194,9 +187,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,address-delay-us property\n", __func__); return retval; - } else { - bdata->addr_delay_us = value; } + bdata->addr_delay_us = value; } else { bdata->addr_delay_us = 0; } @@ -209,9 +201,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,max-y-for-2d property\n", __func__); return retval; - } else { - bdata->max_y_for_2d = value; } + bdata->max_y_for_2d = value; } else { bdata->max_y_for_2d = -1; } @@ -233,9 +224,8 @@ static int parse_dt(struct device *dev, struct synaptics_dsx_board_data *bdata) dev_err(dev, "%s: Unable to read synaptics,ub-i2c-addr property\n", __func__); return retval; - } else { - bdata->ub_i2c_addr = (unsigned short)value; } + bdata->ub_i2c_addr = (unsigned short)value; } else { bdata->ub_i2c_addr = -1; } @@ -562,8 +552,6 @@ static struct platform_device *synaptics_dsx_spi_device; static void synaptics_rmi4_spi_dev_release(struct device *dev) { kfree(synaptics_dsx_spi_device); - - return; } static int synaptics_rmi4_spi_probe(struct spi_device *spi) @@ -667,7 +655,7 @@ static const struct spi_device_id synaptics_rmi4_id_table[] = { MODULE_DEVICE_TABLE(spi, synaptics_rmi4_id_table); #ifdef CONFIG_OF -static struct of_device_id synaptics_rmi4_of_match_table[] = { +static const struct of_device_id synaptics_rmi4_of_match_table[] = { { .compatible = "synaptics,dsx-spi", }, @@ -689,7 +677,6 @@ static struct spi_driver synaptics_rmi4_spi_driver = { .id_table = synaptics_rmi4_id_table, }; - int synaptics_rmi4_bus_init(void) { return spi_register_driver(&synaptics_rmi4_spi_driver); @@ -703,8 +690,6 @@ void synaptics_rmi4_bus_exit(void) kfree(xfer); spi_unregister_driver(&synaptics_rmi4_spi_driver); - - return; } EXPORT_SYMBOL(synaptics_rmi4_bus_exit); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_test_reporting.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_test_reporting.c index e91137b3949d..b8dac0a7410e 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_test_reporting.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_test_reporting.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -214,47 +214,39 @@ #define FULL_RAW_CAP_MIN_MAX_DATA_SIZE 4 #define TRX_OPEN_SHORT_DATA_SIZE 7 -#define concat(a, b) a##b - #define attrify(propname) (&dev_attr_##propname.attr) #define show_prototype(propname)\ -static ssize_t concat(test_sysfs, _##propname##_show)(\ +static ssize_t propname##_show(\ struct device *dev,\ struct device_attribute *attr,\ char *buf);\ \ static struct device_attribute dev_attr_##propname =\ - __ATTR(propname, 0444,\ - concat(test_sysfs, _##propname##_show),\ - synaptics_rmi4_store_error); + __ATTR_RO(propname) #define store_prototype(propname)\ -static ssize_t concat(test_sysfs, _##propname##_store)(\ +static ssize_t propname##_store(\ struct device *dev,\ struct device_attribute *attr,\ const char *buf, size_t count);\ \ static struct device_attribute dev_attr_##propname =\ - __ATTR(propname, 0220,\ - synaptics_rmi4_show_error,\ - concat(test_sysfs, _##propname##_store)); + __ATTR_WO(propname) #define show_store_prototype(propname)\ -static ssize_t concat(test_sysfs, _##propname##_show)(\ +static ssize_t propname##_show(\ struct device *dev,\ struct device_attribute *attr,\ char *buf);\ \ -static ssize_t concat(test_sysfs, _##propname##_store)(\ +static ssize_t propname##_store(\ struct device *dev,\ struct device_attribute *attr,\ const char *buf, size_t count);\ \ static struct device_attribute dev_attr_##propname =\ - __ATTR(propname, 0664,\ - concat(test_sysfs, _##propname##_show),\ - concat(test_sysfs, _##propname##_store)); + __ATTR_RW(propname) #define disable_cbc(ctrl_num)\ do {\ @@ -1408,25 +1400,27 @@ struct synaptics_rmi4_f21_handle { unsigned short command_base_addr; }; -show_prototype(num_of_mapped_tx) -show_prototype(num_of_mapped_rx) -show_prototype(tx_mapping) -show_prototype(rx_mapping) -show_prototype(num_of_mapped_force_tx) -show_prototype(num_of_mapped_force_rx) -show_prototype(force_tx_mapping) -show_prototype(force_rx_mapping) -show_prototype(report_size) -show_prototype(status) -store_prototype(do_preparation) -store_prototype(force_cal) -store_prototype(get_report) -store_prototype(resume_touch) -store_prototype(do_afe_calibration) -show_store_prototype(report_type) -show_store_prototype(fifoindex) -show_store_prototype(no_auto_cal) -show_store_prototype(read_report) +show_prototype(num_of_mapped_tx); +show_prototype(num_of_mapped_rx); +show_prototype(tx_mapping); +show_prototype(rx_mapping); +show_prototype(num_of_mapped_force_tx); +show_prototype(num_of_mapped_force_rx); +show_prototype(force_tx_mapping); +show_prototype(force_rx_mapping); +show_prototype(report_size); +show_prototype(status); + +store_prototype(do_preparation); +store_prototype(force_cal); +store_prototype(get_report); +store_prototype(resume_touch); +store_prototype(do_afe_calibration); + +show_store_prototype(report_type); +show_store_prototype(fifoindex); +show_store_prototype(no_auto_cal); +show_store_prototype(read_report); static struct attribute *attrs[] = { attrify(num_of_mapped_tx), @@ -1505,7 +1499,6 @@ static bool test_report_type_valid(enum f54_report_types report_type) case F54_AMP_RAW_ADC: case F54_FULL_RAW_CAP_TDDI: return true; - break; default: f54->report_type = INVALID_REPORT_TYPE; f54->report_size = 0; @@ -1596,8 +1589,6 @@ static void test_set_report_size(void) default: f54->report_size = 0; } - - return; } static int test_set_interrupt(bool set) @@ -2017,8 +2008,6 @@ static void test_timeout_work(struct work_struct *work) exit: mutex_unlock(&f54->status_mutex); - - return; } static enum hrtimer_restart test_get_report_timeout(struct hrtimer *timer) @@ -2028,19 +2017,19 @@ static enum hrtimer_restart test_get_report_timeout(struct hrtimer *timer) return HRTIMER_NORESTART; } -static ssize_t test_sysfs_num_of_mapped_tx_show(struct device *dev, +static ssize_t num_of_mapped_tx_show(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "%u\n", f54->tx_assigned); } -static ssize_t test_sysfs_num_of_mapped_rx_show(struct device *dev, +static ssize_t num_of_mapped_rx_show(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "%u\n", f54->rx_assigned); } -static ssize_t test_sysfs_tx_mapping_show(struct device *dev, +static ssize_t tx_mapping_show(struct device *dev, struct device_attribute *attr, char *buf) { int cnt; @@ -2070,7 +2059,7 @@ static ssize_t test_sysfs_tx_mapping_show(struct device *dev, return count; } -static ssize_t test_sysfs_rx_mapping_show(struct device *dev, +static ssize_t rx_mapping_show(struct device *dev, struct device_attribute *attr, char *buf) { int cnt; @@ -2100,19 +2089,19 @@ static ssize_t test_sysfs_rx_mapping_show(struct device *dev, return count; } -static ssize_t test_sysfs_num_of_mapped_force_tx_show(struct device *dev, +static ssize_t num_of_mapped_force_tx_show(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "%u\n", f21->tx_assigned); } -static ssize_t test_sysfs_num_of_mapped_force_rx_show(struct device *dev, +static ssize_t num_of_mapped_force_rx_show(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "%u\n", f21->rx_assigned); } -static ssize_t test_sysfs_force_tx_mapping_show(struct device *dev, +static ssize_t force_tx_mapping_show(struct device *dev, struct device_attribute *attr, char *buf) { int cnt; @@ -2160,7 +2149,7 @@ static ssize_t test_sysfs_force_tx_mapping_show(struct device *dev, return count; } -static ssize_t test_sysfs_force_rx_mapping_show(struct device *dev, +static ssize_t force_rx_mapping_show(struct device *dev, struct device_attribute *attr, char *buf) { int cnt; @@ -2208,13 +2197,13 @@ static ssize_t test_sysfs_force_rx_mapping_show(struct device *dev, return count; } -static ssize_t test_sysfs_report_size_show(struct device *dev, +static ssize_t report_size_show(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "%u\n", f54->report_size); } -static ssize_t test_sysfs_status_show(struct device *dev, +static ssize_t status_show(struct device *dev, struct device_attribute *attr, char *buf) { int retval; @@ -2228,7 +2217,7 @@ static ssize_t test_sysfs_status_show(struct device *dev, return retval; } -static ssize_t test_sysfs_do_preparation_store(struct device *dev, +static ssize_t do_preparation_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2264,7 +2253,7 @@ exit: return retval; } -static ssize_t test_sysfs_force_cal_store(struct device *dev, +static ssize_t force_cal_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2300,7 +2289,7 @@ exit: return retval; } -static ssize_t test_sysfs_get_report_store(struct device *dev, +static ssize_t get_report_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2360,7 +2349,7 @@ exit: return retval; } -static ssize_t test_sysfs_resume_touch_store(struct device *dev, +static ssize_t resume_touch_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2448,7 +2437,7 @@ static ssize_t test_sysfs_resume_touch_store(struct device *dev, return count; } -static ssize_t test_sysfs_do_afe_calibration_store(struct device *dev, +static ssize_t do_afe_calibration_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2477,13 +2466,13 @@ static ssize_t test_sysfs_do_afe_calibration_store(struct device *dev, return count; } -static ssize_t test_sysfs_report_type_show(struct device *dev, +static ssize_t report_type_show(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "%u\n", f54->report_type); } -static ssize_t test_sysfs_report_type_store(struct device *dev, +static ssize_t report_type_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2530,7 +2519,7 @@ exit: return retval; } -static ssize_t test_sysfs_fifoindex_show(struct device *dev, +static ssize_t fifoindex_show(struct device *dev, struct device_attribute *attr, char *buf) { int retval; @@ -2553,7 +2542,7 @@ static ssize_t test_sysfs_fifoindex_show(struct device *dev, return snprintf(buf, PAGE_SIZE, "%u\n", f54->fifoindex); } -static ssize_t test_sysfs_fifoindex_store(struct device *dev, +static ssize_t fifoindex_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2583,13 +2572,13 @@ static ssize_t test_sysfs_fifoindex_store(struct device *dev, return count; } -static ssize_t test_sysfs_no_auto_cal_show(struct device *dev, +static ssize_t no_auto_cal_show(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "%u\n", f54->no_auto_cal); } -static ssize_t test_sysfs_no_auto_cal_store(struct device *dev, +static ssize_t no_auto_cal_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2636,7 +2625,7 @@ static ssize_t test_sysfs_no_auto_cal_store(struct device *dev, return count; } -static ssize_t test_sysfs_read_report_show(struct device *dev, +static ssize_t read_report_show(struct device *dev, struct device_attribute *attr, char *buf) { unsigned int ii; @@ -2853,7 +2842,7 @@ static ssize_t test_sysfs_read_report_show(struct device *dev, return count; } -static ssize_t test_sysfs_read_report_store(struct device *dev, +static ssize_t read_report_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int retval; @@ -2862,15 +2851,15 @@ static ssize_t test_sysfs_read_report_store(struct device *dev, const char cmd[] = {'1', 0}; struct synaptics_rmi4_data *rmi4_data = f54->rmi4_data; - retval = test_sysfs_report_type_store(dev, attr, buf, count); + retval = report_type_store(dev, attr, buf, count); if (retval < 0) goto exit; - retval = test_sysfs_do_preparation_store(dev, attr, cmd, 1); + retval = do_preparation_store(dev, attr, cmd, 1); if (retval < 0) goto exit; - retval = test_sysfs_get_report_store(dev, attr, cmd, 1); + retval = get_report_store(dev, attr, cmd, 1); if (retval < 0) goto exit; @@ -2890,7 +2879,7 @@ static ssize_t test_sysfs_read_report_store(struct device *dev, goto exit; } - retval = test_sysfs_resume_touch_store(dev, attr, cmd, 1); + retval = resume_touch_store(dev, attr, cmd, 1); if (retval < 0) goto exit; @@ -3025,8 +3014,6 @@ exit: f54->report_size = 0; f54->status = retval; - - return; } static void test_remove_sysfs(void) @@ -3034,8 +3021,6 @@ static void test_remove_sysfs(void) sysfs_remove_group(f54->sysfs_dir, &attr_group); sysfs_remove_bin_file(f54->sysfs_dir, &test_report_data); kobject_put(f54->sysfs_dir); - - return; } static int test_set_sysfs(void) @@ -3093,8 +3078,6 @@ static void test_free_control_mem(void) kfree(control.reg_110); kfree(control.reg_149); kfree(control.reg_188); - - return; } static void test_set_data(void) @@ -3212,14 +3195,12 @@ static void test_set_data(void) f54->data_31.address = reg_addr; reg_addr++; } - - return; } static int test_set_controls(void) { int retval; - unsigned char length; + unsigned char length = 0; unsigned char num_of_sensing_freqs; unsigned short reg_addr = f54->control_base_addr; struct f54_control *control = &f54->control; @@ -4352,8 +4333,6 @@ static void test_f54_set_regs(struct synaptics_rmi4_data *rmi4_data, ii++) { f54->intr_mask |= 1 << ii; } - - return; } static int test_f55_set_controls(void) @@ -4813,8 +4792,6 @@ static void test_f55_init(struct synaptics_rmi4_data *rmi4_data) f54->rx_assigned++; } } - - return; } static void test_f55_set_regs(struct synaptics_rmi4_data *rmi4_data, @@ -4833,8 +4810,6 @@ static void test_f55_set_regs(struct synaptics_rmi4_data *rmi4_data, f55->control_base_addr = fd->ctrl_base_addr | (page << 8); f55->data_base_addr = fd->data_base_addr | (page << 8); f55->command_base_addr = fd->cmd_base_addr | (page << 8); - - return; } static void test_f21_init(struct synaptics_rmi4_data *rmi4_data) @@ -4978,8 +4953,6 @@ exit: kfree(query_2); kfree(query_5); kfree(query_11); - - return; } static void test_f21_set_regs(struct synaptics_rmi4_data *rmi4_data, @@ -4998,8 +4971,6 @@ static void test_f21_set_regs(struct synaptics_rmi4_data *rmi4_data, f21->control_base_addr = fd->ctrl_base_addr | (page << 8); f21->data_base_addr = fd->data_base_addr | (page << 8); f21->command_base_addr = fd->cmd_base_addr | (page << 8); - - return; } static int test_scan_pdt(void) @@ -5224,8 +5195,6 @@ static void synaptics_rmi4_test_remove(struct synaptics_rmi4_data *rmi4_data) exit: complete(&test_remove_complete); - - return; } static void synaptics_rmi4_test_reset(struct synaptics_rmi4_data *rmi4_data) @@ -5345,8 +5314,6 @@ static void __exit rmi4_test_module_exit(void) synaptics_rmi4_new_function(&test_module, false); wait_for_completion(&test_remove_complete); - - return; } module_init(rmi4_test_module_init); diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_video.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_video.c index 342b488d7649..bb2fd1289a4e 100755 --- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_video.c +++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_video.c @@ -3,7 +3,7 @@ * * Copyright (C) 2012-2016 Synaptics Incorporated. All rights reserved. * - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (C) 2012 Alexandra Chin * Copyright (C) 2012 Scott Lin * @@ -43,10 +43,6 @@ #define SYSFS_FOLDER_NAME "video" -/* -*#define RMI_DCS_SUSPEND_RESUME -*/ - static ssize_t video_sysfs_dcs_write_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); @@ -315,16 +311,12 @@ static void synaptics_rmi4_video_remove(struct synaptics_rmi4_data *rmi4_data) exit: complete(&video_remove_complete); - - return; } static void synaptics_rmi4_video_reset(struct synaptics_rmi4_data *rmi4_data) { if (!video) synaptics_rmi4_video_init(rmi4_data); - - return; } #ifdef RMI_DCS_SUSPEND_RESUME @@ -347,8 +339,6 @@ static void synaptics_rmi4_video_suspend(struct synaptics_rmi4_data *rmi4_data) return; msleep(suspend_sequence[ii].wait_time); } - - return; } static void synaptics_rmi4_video_resume(struct synaptics_rmi4_data *rmi4_data) @@ -370,8 +360,6 @@ static void synaptics_rmi4_video_resume(struct synaptics_rmi4_data *rmi4_data) return; msleep(resume_sequence[ii].wait_time); } - - return; } #endif @@ -405,8 +393,6 @@ static void __exit rmi4_video_module_exit(void) synaptics_rmi4_new_function(&video_module, false); wait_for_completion(&video_remove_complete); - - return; } module_init(rmi4_video_module_init);