From nobody Fri Oct 2 12:21:54 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4FA38446078; Fri, 31 Jul 2026 18:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785523248; cv=none; b=ezvfZNmDg/2lh6sQotttFSZQbaFw5gk4xoLBtC1SirhIN5ixNGcMpzNS+dBXGpyg29ehoFX1FHhL6DrII6YhSeBjS6yyT91uaOkQByyP4ajlHyfvT52URAl3h6Pu2nf5hJD9P2dHl4V3GEYsz+vmNYxNQVYdlQfJ5D6Er7DI8aU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785523248; c=relaxed/simple; bh=sWecVut9IO1UNFSzN7N6qoxmebQ+iLq73k5eThwkTa0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=HzMRnckFXVrf7wmC0TLLfsbOdmtg5tfMEVEYba5cfq5vOz/f2hKDPD4kfY3gQcvcf88RJ91b3FBeWwFEnkwzgH59P0OY8aA2L8RhpLSIgddIZl1BuDbOgvAgjQsQsvJV+y+n2vPaZwishKeoSHk33HeCCugA8tQ5R70EG0Q08wE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=m6ubt+Zb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="m6ubt+Zb" Received: by smtp.kernel.org (Postfix) with ESMTPS id CB8CEC2BCB9; Fri, 31 Jul 2026 18:40:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1785523247; bh=sWecVut9IO1UNFSzN7N6qoxmebQ+iLq73k5eThwkTa0=; h=From:Date:Subject:To:Cc:Reply-To:From; b=m6ubt+ZbyrN1O2m3JObDdtAE2DIUHBhSjut3EM//09OQ3ir44ZjG99OqRzyj/WQIQ 5Pkh3/VvbPWd1eZDYUzvdO18xZS6EF2YyWpuFLhnAYT7bJ4aU+I7i3jw/RvKA7wSsO W/hVftzObpvvV+cPi0WSQQKx7aq9VUmGo/hztQ6bdwRBvMq4e3kyKBNXzsk+Ruc9ud ZUHlFda0Bh43G9rSe8Furg4qRU/JPefAf1fmiJQnB/IoQKYM9HOGp55Vd2St9s9Ang maTIQuLGEu3lK5TiELJ78aEhrk/AIiRiR+FAUMYKC/6nbKRda2azYWFHbQToBGuXz2 afN3GKHAZ8ZdA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B76B6C5516F; Fri, 31 Jul 2026 18:40:47 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Fri, 31 Jul 2026 20:40:46 +0200 Subject: [PATCH RESEND] Input: rmi4 - Move sensor initialization into own function for F12 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260731-synaptics-rmi4-fnsplit-v1-1-8175cec2ded1@ixit.cz> To: Dmitry Torokhov Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3732; i=david@ixit.cz; h=from:subject:message-id; bh=QDJN7B9WH2UFwNDJgEJB7okxE7kCxvUO/EcFvb1axfQ=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqbOwupdhinibbJUHqJxPnWc7o1syaAsNMzPDAO BQoUuSQNhmJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCamzsLgAKCRBgAj/E00kg ckjcEACynQ6oR5lfcRPLk52TvNhbYoJWzgSrjvrJzLGeO8OCa/O+kFkI8LKr558BY5owzzTa0e1 zciknVqgOACyviiERsjyT/RHyx8U58gULB7KqDFW6hc/Pv8jLZ0s/PT1mcEaWF3pYhhyePAtpYG ownwmeGAeFbEYYiJ5bDlem4eqdyg9ERcSglXFg4USpSpJSvFuB4WBEybK8nIKoG5kKCePVn/JCQ hKZL/YliEEpktWCUy3/asQhYAF67Ccgi8gBzOxxYkrR+BPDri/Fx9kgBmu7E7WqPCpUSqNc2DKI iL5JLdvMVtP+9Va9DHzsqmQw+1ct1kvq8+70pV6WKDJpdhI/ahVZlp3c0xWAVJh8Ehtw3W9KcLf 3ySYtZsmNgCkXEufRlvIfcMVyQHjsIjBF8ARgKO93NCm0BELwMI6AIQbMLUe1PuvZ4pPsEWfSAK ypl3ZX2c/Ej/CRTe67Q0/PD14J9eSfPwEjnYKslgNyJ1yYh27c/OKA2gil3d6DDf5JFYoylUfPf g29EMNuZDOTV+wry2f96AoChBCtPjucCKJrTg9INR3k6/6nWzD1yjvWZ/Gl8AGbNX3xHITDVy9l H5Md3FNem01zLr+ydGa/Ngz7VfPnbNXiwX4nKjrio61GUdyrZsiTRmGvdgxigwW1rOauUbOucry 0qrcqVysaPDJJ8Q== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg Makes rmi_f12_probe function a bit cleaner and more structured. Signed-off-by: David Heidelberg --- drivers/input/rmi4/rmi_f12.c | 58 ++++++++++++++++++++++++++--------------= ---- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c index 88c28089de993..333477bf0663e 100644 --- a/drivers/input/rmi4/rmi_f12.c +++ b/drivers/input/rmi4/rmi_f12.c @@ -364,29 +364,60 @@ static int rmi_f12_config(struct rmi_function *fn) ret =3D rmi_f12_write_control_regs(fn); if (ret) dev_warn(&fn->dev, "Failed to write F12 control registers: %d\n", ret); =20 return 0; } =20 +static int rmi_f12_sensor_init(struct rmi_function *fn, struct f12_data *f= 12) +{ + struct rmi_2d_sensor *sensor =3D &f12->sensor; + size_t pkt_size; + + sensor->fn =3D fn; + f12->data_addr =3D fn->fd.data_base_addr; + pkt_size =3D rmi_register_desc_calc_size(&f12->data_reg_desc); + if (pkt_size > SZ_1M) { + dev_err(&fn->dev, "Invalid data packet size: %zu\n", pkt_size); + return -EINVAL; + } + sensor->pkt_size =3D pkt_size; + + sensor->axis_align =3D f12->sensor_pdata.axis_align; + + sensor->x_mm =3D f12->sensor_pdata.x_mm; + sensor->y_mm =3D f12->sensor_pdata.y_mm; + sensor->dribble =3D f12->sensor_pdata.dribble; + + if (sensor->sensor_type =3D=3D rmi_sensor_default) + sensor->sensor_type =3D f12->sensor_pdata.sensor_type; + + rmi_dbg(RMI_DEBUG_FN, &fn->dev, "%s: data packet size: %u\n", __func__, + sensor->pkt_size); + sensor->data_pkt =3D devm_kmalloc(&fn->dev, sensor->pkt_size, GFP_KERNEL); + if (!sensor->data_pkt) + return -ENOMEM; + + return 0; +} + static int rmi_f12_probe(struct rmi_function *fn) { struct f12_data *f12; int ret; struct rmi_device *rmi_dev =3D fn->rmi_dev; char buf; u16 query_addr =3D fn->fd.query_base_addr; const struct rmi_register_desc_item *item; struct rmi_2d_sensor *sensor; struct rmi_device_platform_data *pdata =3D rmi_get_platform_data(rmi_dev); struct rmi_driver_data *drvdata =3D dev_get_drvdata(&rmi_dev->dev); size_t data_offset =3D 0; - size_t pkt_size; int irq_mask_size; int i; =20 rmi_dbg(RMI_DEBUG_FN, &fn->dev, "%s\n", __func__); =20 irq_mask_size =3D BITS_TO_LONGS(drvdata->irq_count); =20 ret =3D rmi_read(fn->rmi_dev, query_addr, &buf); @@ -421,39 +452,20 @@ static int rmi_f12_probe(struct rmi_function *fn) f12->sensor_pdata =3D pdata->sensor_pdata; } =20 ret =3D rmi_f12_read_register_descs(fn, f12, query_addr); if (ret) return ret; =20 sensor =3D &f12->sensor; - sensor->fn =3D fn; - f12->data_addr =3D fn->fd.data_base_addr; - pkt_size =3D rmi_register_desc_calc_size(&f12->data_reg_desc); - if (pkt_size > SZ_1M) { - dev_err(&fn->dev, "Invalid data packet size: %zu\n", pkt_size); - return -EINVAL; - } - sensor->pkt_size =3D pkt_size; - - sensor->axis_align =3D f12->sensor_pdata.axis_align; =20 - sensor->x_mm =3D f12->sensor_pdata.x_mm; - sensor->y_mm =3D f12->sensor_pdata.y_mm; - sensor->dribble =3D f12->sensor_pdata.dribble; - - if (sensor->sensor_type =3D=3D rmi_sensor_default) - sensor->sensor_type =3D f12->sensor_pdata.sensor_type; - - rmi_dbg(RMI_DEBUG_FN, &fn->dev, "%s: data packet size: %u\n", __func__, - sensor->pkt_size); - sensor->data_pkt =3D devm_kmalloc(&fn->dev, sensor->pkt_size, GFP_KERNEL); - if (!sensor->data_pkt) - return -ENOMEM; + ret =3D rmi_f12_sensor_init(fn, f12); + if (ret) + return ret; =20 dev_set_drvdata(&fn->dev, f12); =20 ret =3D rmi_f12_read_sensor_tuning(f12); if (ret) return ret; =20 /* --- base-commit: 3d5670d672ae08b8c534b7beed6f57c8b44e7b43 change-id: 20260627-synaptics-rmi4-fnsplit-3698a620b73c Best regards, --=20 David Heidelberg