summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2026-05-04 21:59:48 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2026-06-11 22:39:29 -0700
commit7d8be1ecf44f032f3fb444088b43b933ead9b00d (patch)
tree0bc8eb739e6d972f14a3d513dc28c521ef84a53f /drivers/input
parent57d9212421e3a10fc336bed732e70b8521fea1e6 (diff)
Input: rmi4 - simplify size calculations in F12
Use min_t() to simplify the clamping logic when calculating the number of objects to process and the number of valid bytes in the attention handler. Assisted-by: Gemini:gemini-3.1-pro Link: https://patch.msgid.link/20260505045952.1570713-18-dmitry.torokhov@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/rmi4/rmi_f12.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
index 34ed02b7f30f..ea72d5ce8050 100644
--- a/drivers/input/rmi4/rmi_f12.c
+++ b/drivers/input/rmi4/rmi_f12.c
@@ -195,14 +195,11 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
return 0;
}
-static void rmi_f12_process_objects(struct f12_data *f12, u8 *data1, int size)
+static void rmi_f12_process_objects(struct f12_data *f12, u8 *data1, u32 size)
{
- int i;
struct rmi_2d_sensor *sensor = &f12->sensor;
- int objects = f12->data1->num_subpackets;
-
- if ((f12->data1->num_subpackets * F12_DATA1_BYTES_PER_OBJ) > size)
- objects = size / F12_DATA1_BYTES_PER_OBJ;
+ u32 objects = min(f12->data1->num_subpackets, size / F12_DATA1_BYTES_PER_OBJ);
+ int i;
for (i = 0; i < objects; i++) {
struct rmi_2d_sensor_abs_object *obj = &sensor->objs[i];
@@ -260,10 +257,7 @@ static irqreturn_t rmi_f12_attention(int irq, void *ctx)
u32 valid_bytes = sensor->pkt_size;
if (drvdata->attn_data.data) {
- if (sensor->attn_size > drvdata->attn_data.size)
- valid_bytes = drvdata->attn_data.size;
- else
- valid_bytes = sensor->attn_size;
+ valid_bytes = min_t(u32, sensor->attn_size, drvdata->attn_data.size);
memcpy(sensor->data_pkt, drvdata->attn_data.data,
valid_bytes);
drvdata->attn_data.data += valid_bytes;