]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Input: rmi4 - simplify size calculations in F12
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 5 May 2026 04:59:48 +0000 (21:59 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 12 Jun 2026 05:39:29 +0000 (22:39 -0700)
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>
drivers/input/rmi4/rmi_f12.c

index 34ed02b7f30f8936702d352e684b6aa3200621b3..ea72d5ce80508f276d15954acc397dd0404e056e 100644 (file)
@@ -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;