From a5df8025f37a813f3f512ea3048ca505561b9c27 Mon Sep 17 00:00:00 2001 From: Vincent Knecht Date: Wed, 30 Nov 2022 15:15:25 -0800 Subject: [PATCH] Input: msg2638 - only read linux,keycodes array if necessary The linux,keycodes property is optional. Fix the driver not probing when it's not specified. Fixes: c18ef50346f2 ("Input: msg2638 - add support for msg2138 key events") Signed-off-by: Vincent Knecht Link: https://lore.kernel.org/r/20221130210202.2069213-1-vincent.knecht@mailoo.org Signed-off-by: Dmitry Torokhov --- drivers/input/touchscreen/msg2638.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/input/touchscreen/msg2638.c b/drivers/input/touchscreen/msg2638.c index 51b1c0e8a7619..4c0816b09d332 100644 --- a/drivers/input/touchscreen/msg2638.c +++ b/drivers/input/touchscreen/msg2638.c @@ -412,13 +412,15 @@ static int msg2638_ts_probe(struct i2c_client *client) msg2638->num_keycodes = ARRAY_SIZE(msg2638->keycodes); } - error = device_property_read_u32_array(dev, "linux,keycodes", - msg2638->keycodes, - msg2638->num_keycodes); - if (error) { - dev_err(dev, "Unable to read linux,keycodes values: %d\n", - error); - return error; + if (msg2638->num_keycodes > 0) { + error = device_property_read_u32_array(dev, "linux,keycodes", + msg2638->keycodes, + msg2638->num_keycodes); + if (error) { + dev_err(dev, "Unable to read linux,keycodes values: %d\n", + error); + return error; + } } error = devm_request_threaded_irq(dev, client->irq, -- 2.30.2