diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-02-01 10:49:58 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-02-01 10:49:58 -0800 |
commit | eea43ed86f38347979446905a20792a8be7bf5d1 (patch) | |
tree | 74a3496eca9596e5502483f8e6bd95936d277057 /drivers/input/misc | |
parent | f6cff79f1d122f78a4b35bf4b2f0112afcd89ea4 (diff) | |
parent | d67ad78e09cbb9935c74a40b85c5abe5b9cd48f8 (diff) | |
download | linux-eea43ed86f38347979446905a20792a8be7bf5d1.tar.bz2 |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input layer updates from Dmitry Torokhov:
- evdev interface has been adjusted to extend the life of timestamps on
32 bit systems to the year of 2108
- Synaptics RMI4 driver's PS/2 guest handling ha beed updated to
improve chances of detecting trackpoints on the pass-through port
- mms114 touchcsreen controller driver has been updated to support
generic device properties and work with mms152 cntrollers
- Goodix driver now supports generic touchscreen properties
- couple of drivers for AVR32 architecture are gone as the architecture
support has been removed from the kernel
- gpio-tilt driver has been removed as there are no mainline users and
the driver itself is using legacy APIs and relies on platform data
- MODULE_LINECSE/MODULE_VERSION cleanups
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits)
Input: goodix - use generic touchscreen_properties
Input: mms114 - fix typo in definition
Input: mms114 - use BIT() macro instead of explicit shifting
Input: mms114 - replace mdelay with msleep
Input: mms114 - add support for mms152
Input: mms114 - drop platform data and use generic APIs
Input: mms114 - mark as direct input device
Input: mms114 - do not clobber interrupt trigger
Input: edt-ft5x06 - fix error handling for factory mode on non-M06
Input: stmfts - set IRQ_NOAUTOEN to the irq flag
Input: auo-pixcir-ts - delete an unnecessary return statement
Input: auo-pixcir-ts - remove custom log for a failed memory allocation
Input: da9052_tsi - remove unused mutex
Input: docs - use PROPERTY_ENTRY_U32() directly
Input: synaptics-rmi4 - log when we create a guest serio port
Input: synaptics-rmi4 - unmask F03 interrupts when port is opened
Input: synaptics-rmi4 - do not delete interrupt memory too early
Input: ad7877 - use managed resource allocations
Input: stmfts,s6sy671 - add SPDX identifier
Input: remove atmel-wm97xx touchscreen driver
...
Diffstat (limited to 'drivers/input/misc')
-rw-r--r-- | drivers/input/misc/Kconfig | 16 | ||||
-rw-r--r-- | drivers/input/misc/Makefile | 1 | ||||
-rw-r--r-- | drivers/input/misc/apanel.c | 2 | ||||
-rw-r--r-- | drivers/input/misc/ati_remote2.c | 2 | ||||
-rw-r--r-- | drivers/input/misc/gpio_tilt_polled.c | 210 | ||||
-rw-r--r-- | drivers/input/misc/keyspan_remote.c | 11 | ||||
-rw-r--r-- | drivers/input/misc/uinput.c | 6 | ||||
-rw-r--r-- | drivers/input/misc/yealink.c | 6 |
8 files changed, 10 insertions, 244 deletions
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig index 9f082a388388..62a1312a7387 100644 --- a/drivers/input/misc/Kconfig +++ b/drivers/input/misc/Kconfig @@ -268,20 +268,6 @@ config INPUT_GPIO_BEEPER To compile this driver as a module, choose M here: the module will be called gpio-beeper. -config INPUT_GPIO_TILT_POLLED - tristate "Polled GPIO tilt switch" - depends on GPIOLIB || COMPILE_TEST - select INPUT_POLLDEV - help - This driver implements support for tilt switches connected - to GPIO pins that are not capable of generating interrupts. - - The list of gpios to use and the mapping of their states - to specific angles is done via platform data. - - To compile this driver as a module, choose M here: the - module will be called gpio_tilt_polled. - config INPUT_GPIO_DECODER tristate "Polled GPIO Decoder Input driver" depends on GPIOLIB || COMPILE_TEST @@ -468,7 +454,7 @@ config INPUT_TPS65218_PWRBUTTON tristate "TPS65218 Power button driver" depends on (MFD_TPS65217 || MFD_TPS65218) help - Say Y here if you want to enable power buttong reporting for + Say Y here if you want to enable power button reporting for TPS65217 and TPS65218 Power Management IC devices. To compile this driver as a module, choose M here. The module will diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile index 4b6118d313fe..a8f61af865aa 100644 --- a/drivers/input/misc/Makefile +++ b/drivers/input/misc/Makefile @@ -36,7 +36,6 @@ obj-$(CONFIG_INPUT_DRV2665_HAPTICS) += drv2665.o obj-$(CONFIG_INPUT_DRV2667_HAPTICS) += drv2667.o obj-$(CONFIG_INPUT_GP2A) += gp2ap002a00f.o obj-$(CONFIG_INPUT_GPIO_BEEPER) += gpio-beeper.o -obj-$(CONFIG_INPUT_GPIO_TILT_POLLED) += gpio_tilt_polled.o obj-$(CONFIG_INPUT_GPIO_DECODER) += gpio_decoder.o obj-$(CONFIG_INPUT_HISI_POWERKEY) += hisi_powerkey.o obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o diff --git a/drivers/input/misc/apanel.c b/drivers/input/misc/apanel.c index aad1df04c854..094bddf56755 100644 --- a/drivers/input/misc/apanel.c +++ b/drivers/input/misc/apanel.c @@ -26,7 +26,6 @@ #include <linux/leds.h> #define APANEL_NAME "Fujitsu Application Panel" -#define APANEL_VERSION "1.3.1" #define APANEL "apanel" /* How often we poll keys - msecs */ @@ -345,7 +344,6 @@ module_exit(apanel_cleanup); MODULE_AUTHOR("Stephen Hemminger <shemminger@linux-foundation.org>"); MODULE_DESCRIPTION(APANEL_NAME " driver"); MODULE_LICENSE("GPL"); -MODULE_VERSION(APANEL_VERSION); MODULE_ALIAS("dmi:*:svnFUJITSU:pnLifeBook*:pvr*:rvnFUJITSU:*"); MODULE_ALIAS("dmi:*:svnFUJITSU:pnLifebook*:pvr*:rvnFUJITSU:*"); diff --git a/drivers/input/misc/ati_remote2.c b/drivers/input/misc/ati_remote2.c index ebf4448b31b9..ded5b84e336d 100644 --- a/drivers/input/misc/ati_remote2.c +++ b/drivers/input/misc/ati_remote2.c @@ -14,10 +14,8 @@ #include <linux/module.h> #define DRIVER_DESC "ATI/Philips USB RF remote driver" -#define DRIVER_VERSION "0.3" MODULE_DESCRIPTION(DRIVER_DESC); -MODULE_VERSION(DRIVER_VERSION); MODULE_AUTHOR("Ville Syrjala <syrjala@sci.fi>"); MODULE_LICENSE("GPL"); diff --git a/drivers/input/misc/gpio_tilt_polled.c b/drivers/input/misc/gpio_tilt_polled.c deleted file mode 100644 index 6e217a45e39a..000000000000 --- a/drivers/input/misc/gpio_tilt_polled.c +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Driver for tilt switches connected via GPIO lines - * not capable of generating interrupts - * - * Copyright (C) 2011 Heiko Stuebner <heiko@sntech.de> - * - * based on: drivers/input/keyboard/gpio_keys_polled.c - * - * Copyright (C) 2007-2010 Gabor Juhos <juhosg@openwrt.org> - * Copyright (C) 2010 Nuno Goncalves <nunojpg@gmail.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/slab.h> -#include <linux/input.h> -#include <linux/input-polldev.h> -#include <linux/ioport.h> -#include <linux/platform_device.h> -#include <linux/gpio.h> -#include <linux/input/gpio_tilt.h> - -#define DRV_NAME "gpio-tilt-polled" - -struct gpio_tilt_polled_dev { - struct input_polled_dev *poll_dev; - struct device *dev; - const struct gpio_tilt_platform_data *pdata; - - int last_state; - - int threshold; - int count; -}; - -static void gpio_tilt_polled_poll(struct input_polled_dev *dev) -{ - struct gpio_tilt_polled_dev *tdev = dev->private; - const struct gpio_tilt_platform_data *pdata = tdev->pdata; - struct input_dev *input = dev->input; - struct gpio_tilt_state *tilt_state = NULL; - int state, i; - - if (tdev->count < tdev->threshold) { - tdev->count++; - } else { - state = 0; - for (i = 0; i < pdata->nr_gpios; i++) - state |= (!!gpio_get_value(pdata->gpios[i].gpio) << i); - - if (state != tdev->last_state) { - for (i = 0; i < pdata->nr_states; i++) - if (pdata->states[i].gpios == state) - tilt_state = &pdata->states[i]; - - if (tilt_state) { - for (i = 0; i < pdata->nr_axes; i++) - input_report_abs(input, - pdata->axes[i].axis, - tilt_state->axes[i]); - - input_sync(input); - } - - tdev->count = 0; - tdev->last_state = state; - } - } -} - -static void gpio_tilt_polled_open(struct input_polled_dev *dev) -{ - struct gpio_tilt_polled_dev *tdev = dev->private; - const struct gpio_tilt_platform_data *pdata = tdev->pdata; - - if (pdata->enable) - pdata->enable(tdev->dev); - - /* report initial state of the axes */ - tdev->last_state = -1; - tdev->count = tdev->threshold; - gpio_tilt_polled_poll(tdev->poll_dev); -} - -static void gpio_tilt_polled_close(struct input_polled_dev *dev) -{ - struct gpio_tilt_polled_dev *tdev = dev->private; - const struct gpio_tilt_platform_data *pdata = tdev->pdata; - - if (pdata->disable) - pdata->disable(tdev->dev); -} - -static int gpio_tilt_polled_probe(struct platform_device *pdev) -{ - const struct gpio_tilt_platform_data *pdata = - dev_get_platdata(&pdev->dev); - struct device *dev = &pdev->dev; - struct gpio_tilt_polled_dev *tdev; - struct input_polled_dev *poll_dev; - struct input_dev *input; - int error, i; - - if (!pdata || !pdata->poll_interval) - return -EINVAL; - - tdev = kzalloc(sizeof(struct gpio_tilt_polled_dev), GFP_KERNEL); - if (!tdev) { - dev_err(dev, "no memory for private data\n"); - return -ENOMEM; - } - - error = gpio_request_array(pdata->gpios, pdata->nr_gpios); - if (error) { - dev_err(dev, - "Could not request tilt GPIOs: %d\n", error); - goto err_free_tdev; - } - - poll_dev = input_allocate_polled_device(); - if (!poll_dev) { - dev_err(dev, "no memory for polled device\n"); - error = -ENOMEM; - goto err_free_gpios; - } - - poll_dev->private = tdev; - poll_dev->poll = gpio_tilt_polled_poll; - poll_dev->poll_interval = pdata->poll_interval; - poll_dev->open = gpio_tilt_polled_open; - poll_dev->close = gpio_tilt_polled_close; - - input = poll_dev->input; - - input->name = pdev->name; - input->phys = DRV_NAME"/input0"; - input->dev.parent = dev; - - input->id.bustype = BUS_HOST; - input->id.vendor = 0x0001; - input->id.product = 0x0001; - input->id.version = 0x0100; - - __set_bit(EV_ABS, input->evbit); - for (i = 0; i < pdata->nr_axes; i++) - input_set_abs_params(input, pdata->axes[i].axis, - pdata->axes[i].min, pdata->axes[i].max, - pdata->axes[i].fuzz, pdata->axes[i].flat); - - tdev->threshold = DIV_ROUND_UP(pdata->debounce_interval, - pdata->poll_interval); - - tdev->poll_dev = poll_dev; - tdev->dev = dev; - tdev->pdata = pdata; - - error = input_register_polled_device(poll_dev); - if (error) { - dev_err(dev, "unable to register polled device, err=%d\n", - error); - goto err_free_polldev; - } - - platform_set_drvdata(pdev, tdev); - - return 0; - -err_free_polldev: - input_free_polled_device(poll_dev); -err_free_gpios: - gpio_free_array(pdata->gpios, pdata->nr_gpios); -err_free_tdev: - kfree(tdev); - - return error; -} - -static int gpio_tilt_polled_remove(struct platform_device *pdev) -{ - struct gpio_tilt_polled_dev *tdev = platform_get_drvdata(pdev); - const struct gpio_tilt_platform_data *pdata = tdev->pdata; - - input_unregister_polled_device(tdev->poll_dev); - input_free_polled_device(tdev->poll_dev); - - gpio_free_array(pdata->gpios, pdata->nr_gpios); - - kfree(tdev); - - return 0; -} - -static struct platform_driver gpio_tilt_polled_driver = { - .probe = gpio_tilt_polled_probe, - .remove = gpio_tilt_polled_remove, - .driver = { - .name = DRV_NAME, - }, -}; - -module_platform_driver(gpio_tilt_polled_driver); - -MODULE_LICENSE("GPL v2"); -MODULE_AUTHOR("Heiko Stuebner <heiko@sntech.de>"); -MODULE_DESCRIPTION("Polled GPIO tilt driver"); -MODULE_ALIAS("platform:" DRV_NAME); diff --git a/drivers/input/misc/keyspan_remote.c b/drivers/input/misc/keyspan_remote.c index 77c47d6325fe..67482b248b2d 100644 --- a/drivers/input/misc/keyspan_remote.c +++ b/drivers/input/misc/keyspan_remote.c @@ -17,11 +17,6 @@ #include <linux/module.h> #include <linux/usb/input.h> -#define DRIVER_VERSION "v0.1" -#define DRIVER_AUTHOR "Michael Downey <downey@zymeta.com>" -#define DRIVER_DESC "Driver for the USB Keyspan remote control." -#define DRIVER_LICENSE "GPL" - /* Parameters that can be passed to the driver. */ static int debug; module_param(debug, int, 0444); @@ -590,6 +585,6 @@ static struct usb_driver keyspan_driver = module_usb_driver(keyspan_driver); MODULE_DEVICE_TABLE(usb, keyspan_table); -MODULE_AUTHOR(DRIVER_AUTHOR); -MODULE_DESCRIPTION(DRIVER_DESC); -MODULE_LICENSE(DRIVER_LICENSE); +MODULE_AUTHOR("Michael Downey <downey@zymeta.com>"); +MODULE_DESCRIPTION("Driver for the USB Keyspan remote control."); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c index 91df0df15e68..f640c591ef23 100644 --- a/drivers/input/misc/uinput.c +++ b/drivers/input/misc/uinput.c @@ -84,11 +84,14 @@ static int uinput_dev_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { struct uinput_device *udev = input_get_drvdata(dev); + struct timespec64 ts; udev->buff[udev->head].type = type; udev->buff[udev->head].code = code; udev->buff[udev->head].value = value; - do_gettimeofday(&udev->buff[udev->head].time); + ktime_get_ts64(&ts); + udev->buff[udev->head].input_event_sec = ts.tv_sec; + udev->buff[udev->head].input_event_usec = ts.tv_nsec / NSEC_PER_USEC; udev->head = (udev->head + 1) % UINPUT_BUFFER_SIZE; wake_up_interruptible(&udev->waitq); @@ -1085,4 +1088,3 @@ MODULE_ALIAS("devname:" UINPUT_NAME); MODULE_AUTHOR("Aristeu Sergio Rozanski Filho"); MODULE_DESCRIPTION("User level driver support for input subsystem"); MODULE_LICENSE("GPL"); -MODULE_VERSION("0.3"); diff --git a/drivers/input/misc/yealink.c b/drivers/input/misc/yealink.c index a1e0ff59d2f2..f0c9bf87b4e3 100644 --- a/drivers/input/misc/yealink.c +++ b/drivers/input/misc/yealink.c @@ -56,8 +56,6 @@ #include "yealink.h" #define DRIVER_VERSION "yld-20051230" -#define DRIVER_AUTHOR "Henk Vergonet" -#define DRIVER_DESC "Yealink phone driver" #define YEALINK_POLLING_FREQUENCY 10 /* in [Hz] */ @@ -1006,6 +1004,6 @@ module_usb_driver(yealink_driver); MODULE_DEVICE_TABLE (usb, usb_table); -MODULE_AUTHOR(DRIVER_AUTHOR); -MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_AUTHOR("Henk Vergonet"); +MODULE_DESCRIPTION("Yealink phone driver"); MODULE_LICENSE("GPL"); |