From 7d8be1ecf44f032f3fb444088b43b933ead9b00d Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Mon, 4 May 2026 21:59:48 -0700 Subject: [PATCH] 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 --- drivers/input/rmi4/rmi_f12.c | 14 ++++---------- 1 file 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;