From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f49.google.com (mail-dl1-f49.google.com [74.125.82.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 096B13D16EA for ; Tue, 5 May 2026 05:00:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777957224; cv=none; b=Yc/GtoReytPg3a/Vw0+TnFU8G1sdydi8RJOG6vbUjWE92fssRmGchWjo+TciBjyP0zwl8PAXL59b0lhIjny/TLlDngpsdG8f7QdZP0grY4Qyja907M3PL9L9i1DMejEzNVEQtcZEW76E+oStzAC6bCmpFGsjkqFG0RXk1+77dU8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777957224; c=relaxed/simple; bh=pnl8fTrSZsIu9uh5xHJYF1vbItqrgUzzgsalaQdTM1k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D605847sT7wWDdRuE6msvsWbo6DUt3hMDWV7ZtQdw9OVw9Hbny6BoM2t9yucyJ9LsPK5AdL5/f/LWQuUg8FZyJGp4QArIr9a0DNzx/CXJxGhpfovHCMIXQCI1C7S8qkC4+Tr68+0gEcVysuHREN0KKBBO0p33nNjribjaetAXAc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=D5fVNfCN; arc=none smtp.client-ip=74.125.82.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="D5fVNfCN" Received: by mail-dl1-f49.google.com with SMTP id a92af1059eb24-12dfee30612so2048511c88.0 for ; Mon, 04 May 2026 22:00:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777957222; x=1778562022; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Mc5lipwKSOHVQCjph3oXiB4U82M/ZlFnOHa7vhpxMvI=; b=D5fVNfCNWd6/VsLVTMcA+GFcFB5Fw88K5IzCi8UYZjwMGUbIzbdU4qNcMYNajBgax8 J7AIw9x/rSRDMQxA/khvrL9FhJG/Z8DFKnqa5D3cToAdcuVv2e4wQ8byo/Cof091lxpZ ltuL5RbNHeoGxx8izK6mS0Ujv5uzP63yrxhZz9frbI+yo6ufDOZF3ItQbih2nC2r1KNU 8aOvmHEa0cofqQ5018YM1DbcwL4J79rCGBU35R9eNh3t0i+800wfpbM8fuMKLSlQd44T H7KbuOZJZORjtcAeciYmfFwVdPxmMq7HWuSEZo2Pt41rQKamf3HBttbSRqj1OnmwD1Ng MqwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777957222; x=1778562022; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Mc5lipwKSOHVQCjph3oXiB4U82M/ZlFnOHa7vhpxMvI=; b=MhpWuqlNC2KMQIJewiKq57ITUEWUik5YkBWpa1SnLU5dpxAJWiN+TRczGyO7erqgnD gyvhy/7NpQcgnyFSJ6BNSkUm3t9P7dePIxo766vUusOi8Ed/gj2vueASqbHiOSYRWsAR zf3WpyLwslrGWh6kJju/ums8FsUDKsr5DdQSzNm80MkaBsn9GWR3MxJ0jryOCrT3ebpO Fa32Xr/o2bhJhlR3+m/ia4N/6Hgs4SvDWCmydBx15yCfqBaeW1cg5fodkHa3UdNhAFUA 9f1O2C1tfVuzM9nxhoqdEA5bIAO8wjeIzoIuOsNsfrDLfXo6lfLNP4ByAg5Dj+ZokGxB UAcw== X-Forwarded-Encrypted: i=1; AFNElJ+ULHBZ68qi9XjwOQihGGkutdYJgDT0sJ/1sMP2vDDLuTtNVLnF/NKFLPIy6kP7X2WWbAgmL+8AMtRjaPI=@vger.kernel.org X-Gm-Message-State: AOJu0YzIeXMuyAtbK4mYgLI1WNTUccf1wtFv9Lp4LuzT2PdSjL6/RTXz 5wMlcR7g/Ggkre8AOhDSK/KqaNWlFLoESDnRzIzyPHuAlZLg6vAE29o4 X-Gm-Gg: AeBDiet77m2kaB1pLyfZVz8VUYczBOncWgxOCQycTGF2WZWsMS1wwjIw6NDrNXgGQFj vQ/cLKwQ6G9AdYJBjewSqDj2j1HNR/zx6pYRthpC9gR1/PXnmZuIXgyTaE7BhU3rOoXJzJhAR2f 7l5Ng0k2bB3y2Oy8JQ4Fa74CWz3MptyVsSKr4sSXlKIDnCtYhMhaxdFZg8zQC+E0OdA2EgKMorm zebhFkkl4vNO7wouikQm/k3cDEBlYn3MU2SLWU9X8dZKBqQCKHSH4BBG2tP3R6Zuw1UmNt0sPBf ZqQW8qircl4cEwMuq/kR2zQeGyyVmULkaB2H14te48Ffu2pFhgc4lq1RkqLLYPD6+yF74aH89go FIit8b8ykTnivND9KCA60y4Z907STn9fY3nWGF0k0KhKSaGmP4xG5waPwU/gAMfiz/EvqNbQydn C7ceH9DsE94QyreKeEPzyFkhe72iWCKqBOCRdE/+tnBk/dYZYvhtj5MZUjoszWDOWYLHOwQVhdk SbYbzmPejNMje66cHJ3kOMNlA== X-Received: by 2002:a05:7022:b88:b0:12d:de3e:86a8 with SMTP id a92af1059eb24-12dfd86bc40mr6077800c88.38.1777957222088; Mon, 04 May 2026 22:00:22 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:94ef:a6f3:2c96:2d58]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12df827a73fsm16897502c88.1.2026.05.04.22.00.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 May 2026 22:00:20 -0700 (PDT) From: Dmitry Torokhov To: linux-input@vger.kernel.org Cc: Marge Yang , Greg Kroah-Hartman , linux-kernel@vger.kernel.org Subject: [PATCH v2 14/20] Input: rmi4 - use unaligned access helpers in F12 Date: Mon, 4 May 2026 21:59:44 -0700 Message-ID: <20260505045952.1570713-14-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.54.0.545.g6539524ca2-goog In-Reply-To: <20260505045952.1570713-1-dmitry.torokhov@gmail.com> References: <20260505045952.1570713-1-dmitry.torokhov@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Use get_unaligned_le16() instead of manual bit shifts to construct 16-bit values for max_x, max_y, pitch_x, pitch_y, and object coordinates in the F12 parsing logic. This simplifies the code and makes the endianness explicit. Assisted-by: Gemini:gemini-3.1-pro Signed-off-by: Dmitry Torokhov --- drivers/input/rmi4/rmi_f12.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c index b179980003f1..752c1d137da0 100644 --- a/drivers/input/rmi4/rmi_f12.c +++ b/drivers/input/rmi4/rmi_f12.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "rmi_driver.h" #include "rmi_2d_sensor.h" @@ -131,8 +132,8 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12) offset = 0; if (rmi_register_desc_has_subpacket(item, 0)) { - sensor->max_x = (buf[offset + 1] << 8) | buf[offset]; - sensor->max_y = (buf[offset + 3] << 8) | buf[offset + 2]; + sensor->max_x = get_unaligned_le16(&buf[offset]); + sensor->max_y = get_unaligned_le16(&buf[offset + 2]); offset += 4; } @@ -140,8 +141,8 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12) sensor->max_x, sensor->max_y); if (rmi_register_desc_has_subpacket(item, 1)) { - pitch_x = (buf[offset + 1] << 8) | buf[offset]; - pitch_y = (buf[offset + 3] << 8) | buf[offset + 2]; + pitch_x = get_unaligned_le16(&buf[offset]); + pitch_y = get_unaligned_le16(&buf[offset + 2]); offset += 4; } @@ -227,8 +228,8 @@ static void rmi_f12_process_objects(struct f12_data *f12, u8 *data1, int size) break; } - obj->x = (data1[2] << 8) | data1[1]; - obj->y = (data1[4] << 8) | data1[3]; + obj->x = get_unaligned_le16(&data1[1]); + obj->y = get_unaligned_le16(&data1[3]); obj->z = data1[5]; obj->wx = data1[6]; obj->wy = data1[7]; -- 2.54.0.545.g6539524ca2-goog