Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'input-for-v6.19-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input updates from Dmitry Torokhov:

- DT bindings for Melfas MIP4 touchscreen controller and TWL4030 keypad
have been converted to the DT schema

- simple touch controller bindings have been consolidated to
trivial-touch.yaml DT schema

- memory allocation failure noise was removed from qnap-mcu-input and
zforce_ts dirvers

- ti_am335x_tsc driver was hardened to handle invalid (too large)
number of coordinates specified in device tree

- a cleanup in Cypress cyttsp5 driver to use %pe to print error code

* tag 'input-for-v6.19-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: ti_am335x_tsc - clamp coordinate_readouts to DT maximum (6)
dt-bindings: touchscreen: consolidate simple touch controller to trivial-touch.yaml
dt-bindings: touchscreen: trivial-touch: add reset-gpios and wakeup-source
dt-bindings: input: ti,twl4030-keypad: convert to DT schema
Input: zforce_ts - omit error message when memory allocation fails
Input: qnap-mcu-input - omit error message when memory allocation fails
dt-bindings: input: Convert MELFAS MIP4 Touchscreen to DT schema
dt-bindings: touchscreen: move ar1021.txt to trivial-touch.yaml
dt-bindings: touchscreen: rename maxim,max11801.yaml to trivial-touch.yaml
Input: cyttsp5 - use %pe format specifier

+207 -445
+59
Documentation/devicetree/bindings/input/ti,twl4030-keypad.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/input/ti,twl4030-keypad.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Texas Instruments TWL4030-family Keypad Controller 8 + 9 + maintainers: 10 + - Peter Ujfalusi <peter.ujfalusi@gmail.com> 11 + 12 + description: 13 + TWL4030's Keypad controller is used to interface a SoC with a matrix-type 14 + keypad device. The keypad controller supports multiple row and column lines. 15 + A key can be placed at each intersection of a unique row and a unique column. 16 + The keypad controller can sense a key-press and key-release and report the 17 + event using a interrupt to the cpu. 18 + 19 + allOf: 20 + - $ref: matrix-keymap.yaml# 21 + 22 + properties: 23 + compatible: 24 + const: ti,twl4030-keypad 25 + 26 + interrupts: 27 + maxItems: 1 28 + 29 + required: 30 + - compatible 31 + - interrupts 32 + - keypad,num-rows 33 + - keypad,num-columns 34 + - linux,keymap 35 + 36 + unevaluatedProperties: false 37 + 38 + examples: 39 + - | 40 + #include <dt-bindings/input/input.h> 41 + 42 + keypad { 43 + compatible = "ti,twl4030-keypad"; 44 + interrupts = <1>; 45 + keypad,num-rows = <8>; 46 + keypad,num-columns = <8>; 47 + linux,keymap = < 48 + /* row 0 */ 49 + MATRIX_KEY(0, 0, KEY_1) 50 + MATRIX_KEY(0, 1, KEY_2) 51 + MATRIX_KEY(0, 2, KEY_3) 52 + 53 + /* ...and so on for a full 8x8 matrix... */ 54 + 55 + /* row 7 */ 56 + MATRIX_KEY(7, 6, KEY_Y) 57 + MATRIX_KEY(7, 7, KEY_Z) 58 + >; 59 + };
-15
Documentation/devicetree/bindings/input/touchscreen/ar1021.txt
··· 1 - * Microchip AR1020 and AR1021 touchscreen interface (I2C) 2 - 3 - Required properties: 4 - - compatible : "microchip,ar1021-i2c" 5 - - reg : I2C slave address 6 - - interrupts : touch controller interrupt 7 - 8 - Example: 9 - 10 - touchscreen@4d { 11 - compatible = "microchip,ar1021-i2c"; 12 - reg = <0x4d>; 13 - interrupt-parent = <&gpio3>; 14 - interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; 15 - };
-75
Documentation/devicetree/bindings/input/touchscreen/azoteq,iqs5xx.yaml
··· 1 - # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 - %YAML 1.2 3 - --- 4 - $id: http://devicetree.org/schemas/input/touchscreen/azoteq,iqs5xx.yaml# 5 - $schema: http://devicetree.org/meta-schemas/core.yaml# 6 - 7 - title: Azoteq IQS550/572/525 Trackpad/Touchscreen Controller 8 - 9 - maintainers: 10 - - Jeff LaBundy <jeff@labundy.com> 11 - 12 - description: | 13 - The Azoteq IQS550, IQS572 and IQS525 trackpad and touchscreen controllers 14 - employ projected-capacitance sensing and can track up to five independent 15 - contacts. 16 - 17 - Link to datasheet: https://www.azoteq.com/ 18 - 19 - allOf: 20 - - $ref: touchscreen.yaml# 21 - 22 - properties: 23 - compatible: 24 - enum: 25 - - azoteq,iqs550 26 - - azoteq,iqs572 27 - - azoteq,iqs525 28 - 29 - reg: 30 - maxItems: 1 31 - 32 - interrupts: 33 - maxItems: 1 34 - 35 - reset-gpios: 36 - maxItems: 1 37 - 38 - wakeup-source: true 39 - 40 - touchscreen-size-x: true 41 - touchscreen-size-y: true 42 - touchscreen-inverted-x: true 43 - touchscreen-inverted-y: true 44 - touchscreen-swapped-x-y: true 45 - 46 - required: 47 - - compatible 48 - - reg 49 - - interrupts 50 - 51 - additionalProperties: false 52 - 53 - examples: 54 - - | 55 - #include <dt-bindings/gpio/gpio.h> 56 - #include <dt-bindings/interrupt-controller/irq.h> 57 - 58 - i2c { 59 - #address-cells = <1>; 60 - #size-cells = <0>; 61 - 62 - touchscreen@74 { 63 - compatible = "azoteq,iqs550"; 64 - reg = <0x74>; 65 - interrupt-parent = <&gpio>; 66 - interrupts = <27 IRQ_TYPE_LEVEL_HIGH>; 67 - reset-gpios = <&gpio 22 (GPIO_ACTIVE_LOW | 68 - GPIO_PUSH_PULL)>; 69 - 70 - touchscreen-size-x = <800>; 71 - touchscreen-size-y = <480>; 72 - }; 73 - }; 74 - 75 - ...
-64
Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml
··· 1 - # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 - %YAML 1.2 3 - --- 4 - $id: http://devicetree.org/schemas/input/touchscreen/himax,hx83112b.yaml# 5 - $schema: http://devicetree.org/meta-schemas/core.yaml# 6 - 7 - title: Himax hx83112b touchscreen controller 8 - 9 - maintainers: 10 - - Job Noorman <job@noorman.info> 11 - 12 - allOf: 13 - - $ref: touchscreen.yaml# 14 - 15 - properties: 16 - compatible: 17 - enum: 18 - - himax,hx83100a 19 - - himax,hx83112b 20 - 21 - reg: 22 - maxItems: 1 23 - 24 - interrupts: 25 - maxItems: 1 26 - 27 - reset-gpios: 28 - maxItems: 1 29 - 30 - touchscreen-inverted-x: true 31 - touchscreen-inverted-y: true 32 - touchscreen-size-x: true 33 - touchscreen-size-y: true 34 - touchscreen-swapped-x-y: true 35 - 36 - additionalProperties: false 37 - 38 - required: 39 - - compatible 40 - - reg 41 - - interrupts 42 - - reset-gpios 43 - - touchscreen-size-x 44 - - touchscreen-size-y 45 - 46 - examples: 47 - - | 48 - #include <dt-bindings/interrupt-controller/irq.h> 49 - #include <dt-bindings/gpio/gpio.h> 50 - i2c { 51 - #address-cells = <1>; 52 - #size-cells = <0>; 53 - touchscreen@48 { 54 - compatible = "himax,hx83112b"; 55 - reg = <0x48>; 56 - interrupt-parent = <&tlmm>; 57 - interrupts = <65 IRQ_TYPE_LEVEL_LOW>; 58 - touchscreen-size-x = <1080>; 59 - touchscreen-size-y = <2160>; 60 - reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>; 61 - }; 62 - }; 63 - 64 - ...
-65
Documentation/devicetree/bindings/input/touchscreen/hynitron,cstxxx.yaml
··· 1 - # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 - %YAML 1.2 3 - --- 4 - $id: http://devicetree.org/schemas/input/touchscreen/hynitron,cstxxx.yaml# 5 - $schema: http://devicetree.org/meta-schemas/core.yaml# 6 - 7 - title: Hynitron cstxxx series touchscreen controller 8 - 9 - description: | 10 - Bindings for Hynitron cstxxx series multi-touch touchscreen 11 - controllers. 12 - 13 - maintainers: 14 - - Chris Morgan <macromorgan@hotmail.com> 15 - 16 - allOf: 17 - - $ref: touchscreen.yaml# 18 - 19 - properties: 20 - compatible: 21 - enum: 22 - - hynitron,cst340 23 - 24 - reg: 25 - maxItems: 1 26 - 27 - interrupts: 28 - maxItems: 1 29 - 30 - reset-gpios: 31 - maxItems: 1 32 - 33 - touchscreen-size-x: true 34 - touchscreen-size-y: true 35 - touchscreen-inverted-x: true 36 - touchscreen-inverted-y: true 37 - touchscreen-swapped-x-y: true 38 - 39 - additionalProperties: false 40 - 41 - required: 42 - - compatible 43 - - reg 44 - - interrupts 45 - - reset-gpios 46 - 47 - examples: 48 - - | 49 - #include <dt-bindings/gpio/gpio.h> 50 - #include <dt-bindings/interrupt-controller/arm-gic.h> 51 - i2c { 52 - #address-cells = <1>; 53 - #size-cells = <0>; 54 - touchscreen@1a { 55 - compatible = "hynitron,cst340"; 56 - reg = <0x1a>; 57 - interrupt-parent = <&gpio4>; 58 - interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 59 - reset-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; 60 - touchscreen-size-x = <640>; 61 - touchscreen-size-y = <480>; 62 - }; 63 - }; 64 - 65 - ...
-76
Documentation/devicetree/bindings/input/touchscreen/ilitek_ts_i2c.yaml
··· 1 - # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 - %YAML 1.2 3 - --- 4 - $id: http://devicetree.org/schemas/input/touchscreen/ilitek_ts_i2c.yaml# 5 - $schema: http://devicetree.org/meta-schemas/core.yaml# 6 - 7 - title: Ilitek I2C Touchscreen Controller 8 - 9 - maintainers: 10 - - Dmitry Torokhov <dmitry.torokhov@gmail.com> 11 - 12 - allOf: 13 - - $ref: touchscreen.yaml# 14 - 15 - properties: 16 - compatible: 17 - enum: 18 - - ilitek,ili210x 19 - - ilitek,ili2117 20 - - ilitek,ili2120 21 - - ilitek,ili2130 22 - - ilitek,ili2131 23 - - ilitek,ili2132 24 - - ilitek,ili2316 25 - - ilitek,ili2322 26 - - ilitek,ili2323 27 - - ilitek,ili2326 28 - - ilitek,ili251x 29 - - ilitek,ili2520 30 - - ilitek,ili2521 31 - 32 - reg: 33 - maxItems: 1 34 - 35 - interrupts: 36 - maxItems: 1 37 - 38 - reset-gpios: 39 - maxItems: 1 40 - 41 - wakeup-source: 42 - type: boolean 43 - description: touchscreen can be used as a wakeup source. 44 - 45 - touchscreen-size-x: true 46 - touchscreen-size-y: true 47 - touchscreen-inverted-x: true 48 - touchscreen-inverted-y: true 49 - touchscreen-swapped-x-y: true 50 - 51 - additionalProperties: false 52 - 53 - required: 54 - - compatible 55 - - reg 56 - - interrupts 57 - 58 - examples: 59 - - | 60 - #include <dt-bindings/interrupt-controller/irq.h> 61 - #include <dt-bindings/gpio/gpio.h> 62 - i2c { 63 - #address-cells = <1>; 64 - #size-cells = <0>; 65 - 66 - touchscreen@41 { 67 - compatible = "ilitek,ili2520"; 68 - reg = <0x41>; 69 - 70 - interrupt-parent = <&gpio1>; 71 - interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 72 - reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; 73 - touchscreen-inverted-y; 74 - wakeup-source; 75 - }; 76 - };
-46
Documentation/devicetree/bindings/input/touchscreen/maxim,max11801.yaml
··· 1 - # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 - %YAML 1.2 3 - --- 4 - $id: http://devicetree.org/schemas/input/touchscreen/maxim,max11801.yaml# 5 - $schema: http://devicetree.org/meta-schemas/core.yaml# 6 - 7 - title: MAXI MAX11801 Resistive touch screen controller with i2c interface 8 - 9 - maintainers: 10 - - Frank Li <Frank.Li@nxp.com> 11 - 12 - properties: 13 - compatible: 14 - const: maxim,max11801 15 - 16 - reg: 17 - maxItems: 1 18 - 19 - interrupts: 20 - maxItems: 1 21 - 22 - allOf: 23 - - $ref: touchscreen.yaml 24 - 25 - required: 26 - - compatible 27 - - reg 28 - - interrupts 29 - 30 - unevaluatedProperties: false 31 - 32 - examples: 33 - - | 34 - #include <dt-bindings/interrupt-controller/irq.h> 35 - 36 - i2c { 37 - #address-cells = <1>; 38 - #size-cells = <0>; 39 - 40 - touchscreen@48 { 41 - compatible = "maxim,max11801"; 42 - reg = <0x48>; 43 - interrupt-parent = <&gpio3>; 44 - interrupts = <31 IRQ_TYPE_EDGE_FALLING>; 45 - }; 46 - };
+56
Documentation/devicetree/bindings/input/touchscreen/melfas,mip4_ts.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/input/touchscreen/melfas,mip4_ts.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: MELFAS MIP4 Touchscreen 8 + 9 + maintainers: 10 + - Ariel D'Alessandro <ariel.dalessandro@collabora.com> 11 + 12 + properties: 13 + compatible: 14 + const: melfas,mip4_ts 15 + 16 + reg: 17 + description: I2C address of the chip (0x48 or 0x34) 18 + maxItems: 1 19 + 20 + interrupts: 21 + maxItems: 1 22 + 23 + ce-gpios: 24 + description: 25 + GPIO connected to the CE (chip enable) pin of the chip (active high) 26 + maxItems: 1 27 + 28 + required: 29 + - compatible 30 + - reg 31 + - interrupts 32 + 33 + additionalProperties: false 34 + 35 + examples: 36 + - | 37 + #include <dt-bindings/gpio/gpio.h> 38 + #include <dt-bindings/interrupt-controller/irq.h> 39 + 40 + i2c { 41 + #address-cells = <1>; 42 + #size-cells = <0>; 43 + 44 + touchscreen@34 { 45 + compatible = "melfas,mip4_ts"; 46 + reg = <0x34>; 47 + 48 + interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>; 49 + ce-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; 50 + 51 + pinctrl-0 = <&touchscreen_default>; 52 + pinctrl-names = "default"; 53 + }; 54 + }; 55 + 56 + ...
-20
Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt
··· 1 - * MELFAS MIP4 Touchscreen 2 - 3 - Required properties: 4 - - compatible: must be "melfas,mip4_ts" 5 - - reg: I2C slave address of the chip (0x48 or 0x34) 6 - - interrupts: interrupt to which the chip is connected 7 - 8 - Optional properties: 9 - - ce-gpios: GPIO connected to the CE (chip enable) pin of the chip 10 - 11 - Example: 12 - i2c@00000000 { 13 - touchscreen: melfas_mip4@48 { 14 - compatible = "melfas,mip4_ts"; 15 - reg = <0x48>; 16 - interrupt-parent = <&gpio>; 17 - interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 18 - ce-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; 19 - }; 20 - };
-52
Documentation/devicetree/bindings/input/touchscreen/semtech,sx8654.yaml
··· 1 - # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 - %YAML 1.2 3 - --- 4 - $id: http://devicetree.org/schemas/input/touchscreen/semtech,sx8654.yaml# 5 - $schema: http://devicetree.org/meta-schemas/core.yaml# 6 - 7 - title: Semtech SX8654 I2C Touchscreen Controller 8 - 9 - maintainers: 10 - - Frank Li <Frank.Li@nxp.com> 11 - 12 - properties: 13 - compatible: 14 - enum: 15 - - semtech,sx8650 16 - - semtech,sx8654 17 - - semtech,sx8655 18 - - semtech,sx8656 19 - 20 - reg: 21 - maxItems: 1 22 - 23 - interrupts: 24 - maxItems: 1 25 - 26 - reset-gpios: 27 - maxItems: 1 28 - 29 - required: 30 - - compatible 31 - - reg 32 - - interrupts 33 - 34 - additionalProperties: false 35 - 36 - examples: 37 - - | 38 - #include <dt-bindings/gpio/gpio.h> 39 - #include <dt-bindings/interrupt-controller/irq.h> 40 - 41 - i2c { 42 - #address-cells = <1>; 43 - #size-cells = <0>; 44 - 45 - touchscreen@48 { 46 - compatible = "semtech,sx8654"; 47 - reg = <0x48>; 48 - interrupt-parent = <&gpio6>; 49 - interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 50 - reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; 51 - }; 52 - };
+84
Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/input/touchscreen/trivial-touch.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Trivial touch screen controller with i2c interface 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + # The Azoteq IQS550, IQS572 and IQS525 trackpad and touchscreen controllers 16 + - azoteq,iqs550 17 + - azoteq,iqs572 18 + - azoteq,iqs525 19 + # Himax hx83100a touchscreen controller 20 + - himax,hx83100a 21 + # Himax hx83112b touchscreen controller 22 + - himax,hx83112b 23 + # Hynitron cstxxx series touchscreen controller 24 + - hynitron,cst340 25 + # Ilitek I2C Touchscreen Controller 26 + - ilitek,ili210x 27 + - ilitek,ili2117 28 + - ilitek,ili2120 29 + - ilitek,ili2130 30 + - ilitek,ili2131 31 + - ilitek,ili2132 32 + - ilitek,ili2316 33 + - ilitek,ili2322 34 + - ilitek,ili2323 35 + - ilitek,ili2326 36 + - ilitek,ili251x 37 + - ilitek,ili2520 38 + - ilitek,ili2521 39 + # MAXI MAX11801 Resistive touch screen controller with i2c interface 40 + - maxim,max11801 41 + # Microchip AR1020 and AR1021 touchscreen interface (I2C) 42 + - microchip,ar1021-i2c 43 + # Trivial touch screen controller with i2c interface 44 + - semtech,sx8650 45 + - semtech,sx8654 46 + - semtech,sx8655 47 + - semtech,sx8656 48 + 49 + reg: 50 + maxItems: 1 51 + 52 + interrupts: 53 + maxItems: 1 54 + 55 + reset-gpios: 56 + maxItems: 1 57 + 58 + wakeup-source: true 59 + 60 + allOf: 61 + - $ref: touchscreen.yaml 62 + 63 + required: 64 + - compatible 65 + - reg 66 + - interrupts 67 + 68 + unevaluatedProperties: false 69 + 70 + examples: 71 + - | 72 + #include <dt-bindings/interrupt-controller/irq.h> 73 + 74 + i2c { 75 + #address-cells = <1>; 76 + #size-cells = <0>; 77 + 78 + touchscreen@48 { 79 + compatible = "maxim,max11801"; 80 + reg = <0x48>; 81 + interrupt-parent = <&gpio3>; 82 + interrupts = <31 IRQ_TYPE_EDGE_FALLING>; 83 + }; 84 + };
-27
Documentation/devicetree/bindings/input/twl4030-keypad.txt
··· 1 - * TWL4030's Keypad Controller device tree bindings 2 - 3 - TWL4030's Keypad controller is used to interface a SoC with a matrix-type 4 - keypad device. The keypad controller supports multiple row and column lines. 5 - A key can be placed at each intersection of a unique row and a unique column. 6 - The keypad controller can sense a key-press and key-release and report the 7 - event using a interrupt to the cpu. 8 - 9 - This binding is based on the matrix-keymap binding with the following 10 - changes: 11 - 12 - * keypad,num-rows and keypad,num-columns are required. 13 - 14 - Required SoC Specific Properties: 15 - - compatible: should be one of the following 16 - - "ti,twl4030-keypad": For controllers compatible with twl4030 keypad 17 - controller. 18 - - interrupt: should be one of the following 19 - - <1>: For controllers compatible with twl4030 keypad controller. 20 - 21 - Example: 22 - twl_keypad: keypad { 23 - compatible = "ti,twl4030-keypad"; 24 - interrupts = <1>; 25 - keypad,num-rows = <8>; 26 - keypad,num-columns = <8>; 27 - };
+1 -1
drivers/input/misc/qnap-mcu-input.c
··· 103 103 104 104 input = devm_input_allocate_device(dev); 105 105 if (!input) 106 - return dev_err_probe(dev, -ENOMEM, "no memory for input device\n"); 106 + return -ENOMEM; 107 107 108 108 idev->input = input; 109 109 idev->dev = dev;
+2 -2
drivers/input/touchscreen/cyttsp5.c
··· 923 923 924 924 regmap = devm_regmap_init_i2c(client, &config); 925 925 if (IS_ERR(regmap)) { 926 - dev_err(&client->dev, "regmap allocation failed: %ld\n", 927 - PTR_ERR(regmap)); 926 + dev_err(&client->dev, "regmap allocation failed: %pe\n", 927 + regmap); 928 928 return PTR_ERR(regmap); 929 929 } 930 930
+4
drivers/input/touchscreen/ti_am335x_tsc.c
··· 389 389 dev_warn(&pdev->dev, 390 390 "invalid co-ordinate readouts, resetting it to 5\n"); 391 391 ts_dev->coordinate_readouts = 5; 392 + } else if (ts_dev->coordinate_readouts > 6) { 393 + dev_warn(&pdev->dev, 394 + "co-ordinate readouts too large, limiting to 6\n"); 395 + ts_dev->coordinate_readouts = 6; 392 396 } 393 397 394 398 err = of_property_read_u32(node, "ti,charge-delay",
+1 -2
drivers/input/touchscreen/zforce_ts.c
··· 747 747 748 748 input_dev = devm_input_allocate_device(&client->dev); 749 749 if (!input_dev) 750 - return dev_err_probe(&client->dev, -ENOMEM, 751 - "could not allocate input device\n"); 750 + return -ENOMEM; 752 751 753 752 ts->client = client; 754 753 ts->input = input_dev;