From patchwork Tue Aug 15 15:40:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 13353931 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E704BC04FE1 for ; Tue, 15 Aug 2023 15:42:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238164AbjHOPla (ORCPT ); Tue, 15 Aug 2023 11:41:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238171AbjHOPlS (ORCPT ); Tue, 15 Aug 2023 11:41:18 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1E8DA10C6; Tue, 15 Aug 2023 08:41:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1692114078; x=1723650078; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=OSkP7yV/jMpi04y1q72goA7aGm2Y7raBAgrycU/6C2c=; b=kpcQJcoE1YWzsHw5x2kPghVb4GebgpeydFCmH2VMWhx1S2szDfThD8OS kTgvafuKnv2rYHGcD6MPslFOuLipnN2Tx2YpIm/1M2bxQZezMWP0KnzVi v2bMi6yPGIvH1AVQuL7dsvXN1e1EVySKeAntLWoHcm8Nf+nXba021CGpn I7XeTLpGa4xhDuQmjUzRKIvrFkEqVFR2tKC5ylhn9MNntZ5eD66nISSzO d9Kl3/JZQAaYDEWkxuFzOx0ueXPvXk020YMG4BoLFiMjyFDVNxx+6YxcO d3GjpVvzOvbdPhpKu4qSgouwvgcEMEs4ioG9TtfVmqsY5mqoBleYFvdd5 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10803"; a="351896983" X-IronPort-AV: E=Sophos;i="6.01,174,1684825200"; d="scan'208";a="351896983" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Aug 2023 08:41:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10803"; a="736950079" X-IronPort-AV: E=Sophos;i="6.01,174,1684825200"; d="scan'208";a="736950079" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga007.fm.intel.com with ESMTP; 15 Aug 2023 08:41:13 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 5DE19C53; Tue, 15 Aug 2023 18:41:12 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Jonathan Cameron , Lorenzo Bianconi , Philipp Jungkamp , Peter Zijlstra , linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Jiri Kosina , Jonathan Cameron , Srinivas Pandruvada , Lars-Peter Clausen Subject: [PATCH v1 1/3] types: Complement the aligned types with signed 64-bit one Date: Tue, 15 Aug 2023 18:40:25 +0300 Message-Id: <20230815154027.12468-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org Some user may want to use aligned signed 64-bit type. Provide it for them. Signed-off-by: Andy Shevchenko --- include/linux/types.h | 3 ++- include/uapi/linux/types.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/types.h b/include/linux/types.h index 253168bb3fe1..78d87c751ff5 100644 --- a/include/linux/types.h +++ b/include/linux/types.h @@ -115,8 +115,9 @@ typedef u64 u_int64_t; typedef s64 int64_t; #endif -/* this is a special 64bit data type that is 8-byte aligned */ +/* These are the special 64-bit data types that are 8-byte aligned */ #define aligned_u64 __aligned_u64 +#define aligned_s64 __aligned_s64 #define aligned_be64 __aligned_be64 #define aligned_le64 __aligned_le64 diff --git a/include/uapi/linux/types.h b/include/uapi/linux/types.h index 6375a0684052..48b933938877 100644 --- a/include/uapi/linux/types.h +++ b/include/uapi/linux/types.h @@ -53,6 +53,7 @@ typedef __u32 __bitwise __wsum; * No conversions are necessary between 32-bit user-space and a 64-bit kernel. */ #define __aligned_u64 __u64 __attribute__((aligned(8))) +#define __aligned_s64 __s64 __attribute__((aligned(8))) #define __aligned_be64 __be64 __attribute__((aligned(8))) #define __aligned_le64 __le64 __attribute__((aligned(8))) From patchwork Tue Aug 15 15:40:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 13353929 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39BEEC04A6A for ; Tue, 15 Aug 2023 15:42:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238161AbjHOPla (ORCPT ); Tue, 15 Aug 2023 11:41:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238172AbjHOPlT (ORCPT ); Tue, 15 Aug 2023 11:41:19 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B14B7E61; Tue, 15 Aug 2023 08:41:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1692114078; x=1723650078; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hW6WKgj1nITaNcnYYuF7AScms9zSUoubrx1m0DkRHyI=; b=nP95Q/If2LAqN/7hNervLLp+9H7KIvBr4HGkA7dhFtMwa1qszMfhfVg7 7wz6gDIZyL1yjZBI+LLEvUJKN0XmmYQxjlZavWuaybqGVshEXquX/Nbmd MHgdFZ8ZzSL88I/BXsA2d+AIgz1kU4aYq6SJWb4EL0aZOKAwRipq6zesQ uSi9kuLXG5VYjBD1wPM2Q4dJ+ai+yUBDWpgDdSNkWO3epbb9N0rhCBMRo zkmsjdedD3Q63nXDBb+KZBJ0hd0Z0p47RgYIDHYR7y7fQ9usCeoyuolAZ fUhLdXT+vzdACSSPjAE+DZn3r5E/mJzEEDDM+jNaHimuA3ig0lC9+T7xs Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10803"; a="351896988" X-IronPort-AV: E=Sophos;i="6.01,174,1684825200"; d="scan'208";a="351896988" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Aug 2023 08:41:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10803"; a="727406714" X-IronPort-AV: E=Sophos;i="6.01,174,1684825200"; d="scan'208";a="727406714" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga007.jf.intel.com with ESMTP; 15 Aug 2023 08:41:13 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 69F67C51; Tue, 15 Aug 2023 18:41:12 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Jonathan Cameron , Lorenzo Bianconi , Philipp Jungkamp , Peter Zijlstra , linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Jiri Kosina , Jonathan Cameron , Srinivas Pandruvada , Lars-Peter Clausen Subject: [PATCH v1 2/3] iio: imu: st_lsm6dsx: Use aligned data type for timestamp Date: Tue, 15 Aug 2023 18:40:26 +0300 Message-Id: <20230815154027.12468-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230815154027.12468-1-andriy.shevchenko@linux.intel.com> References: <20230815154027.12468-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org Use __aligned_s64 for the timestamp field. Signed-off-by: Andy Shevchenko --- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h index c19237717e81..d3d4b3281aa6 100644 --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h @@ -442,10 +442,9 @@ struct st_lsm6dsx_hw { const struct st_lsm6dsx_settings *settings; struct iio_mount_matrix orientation; - /* Ensure natural alignment of buffer elements */ struct { __le16 channels[3]; - s64 ts __aligned(8); + __aligned_s64 ts; } scan[ST_LSM6DSX_ID_MAX]; }; From patchwork Tue Aug 15 15:40:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 13353930 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B05D5C04A94 for ; Tue, 15 Aug 2023 15:42:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238158AbjHOPla (ORCPT ); Tue, 15 Aug 2023 11:41:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238169AbjHOPlS (ORCPT ); Tue, 15 Aug 2023 11:41:18 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3A39BE61; Tue, 15 Aug 2023 08:41:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1692114077; x=1723650077; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=lWHTVMVVzUsh687F017zJbmNhEj8Fz4h52xIxzZXMOY=; b=NfvOQJNE2AJ/0l0K2jvUEWTGeT54uA14Mn/VlLa7TjqdzIIqmEZ4L+vs i1bhLYfssDzRg4/Ltt2OJzg2H+ZjbcTHniU9s/N3Hzy3BK7cvWBKjtd2e UHEIIMcPGTVAkNt34fF+qF9YSYSpXLNAbvBhKJ3G/tWdsSoW3+CztPRHq 8GVK3yd5zZ1Q1B2JWNktM5olvOpLw25vrHIfR8xGvsPqyfC3NfJPb5wx9 /bpdcIYnularxuiuvKanC0Emr03ule2oD1UEdx5zEXR/neWc9rcHzmflu YdLfDyKPj2T9F4cQ4kmkbdwa3thp/hlZ9RNe957fxQ/9xXOkH4f+MXdAI Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10803"; a="351896974" X-IronPort-AV: E=Sophos;i="6.01,174,1684825200"; d="scan'208";a="351896974" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Aug 2023 08:41:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10803"; a="727406715" X-IronPort-AV: E=Sophos;i="6.01,174,1684825200"; d="scan'208";a="727406715" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga007.jf.intel.com with ESMTP; 15 Aug 2023 08:41:13 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 72389C84; Tue, 15 Aug 2023 18:41:12 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Jonathan Cameron , Lorenzo Bianconi , Philipp Jungkamp , Peter Zijlstra , linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Jiri Kosina , Jonathan Cameron , Srinivas Pandruvada , Lars-Peter Clausen Subject: [PATCH v1 3/3] iio: hid-sensor: Use aligned data type for timestamp Date: Tue, 15 Aug 2023 18:40:27 +0300 Message-Id: <20230815154027.12468-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230815154027.12468-1-andriy.shevchenko@linux.intel.com> References: <20230815154027.12468-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org Use aligned_s64 for the timestamp field. Note, the actual data is signed, hence with this we also amend that. While at it, drop redundant __alignment directive. Signed-off-by: Andy Shevchenko --- drivers/iio/accel/hid-sensor-accel-3d.c | 3 +-- drivers/iio/gyro/hid-sensor-gyro-3d.c | 2 +- drivers/iio/humidity/hid-sensor-humidity.c | 2 +- drivers/iio/light/hid-sensor-als.c | 2 +- drivers/iio/orientation/hid-sensor-incl-3d.c | 2 +- drivers/iio/orientation/hid-sensor-rotation.c | 4 ++-- drivers/iio/position/hid-sensor-custom-intel-hinge.c | 2 +- drivers/iio/pressure/hid-sensor-press.c | 2 +- drivers/iio/temperature/hid-sensor-temperature.c | 2 +- 9 files changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c index 5eac7ea19993..f739589564c5 100644 --- a/drivers/iio/accel/hid-sensor-accel-3d.c +++ b/drivers/iio/accel/hid-sensor-accel-3d.c @@ -25,10 +25,9 @@ struct accel_3d_state { struct hid_sensor_hub_callbacks callbacks; struct hid_sensor_common common_attributes; struct hid_sensor_hub_attribute_info accel[ACCEL_3D_CHANNEL_MAX]; - /* Ensure timestamp is naturally aligned */ struct { u32 accel_val[3]; - s64 timestamp __aligned(8); + aligned_s64 timestamp; } scan; int scale_pre_decml; int scale_post_decml; diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c index 698c50da1f10..a7050a6328d6 100644 --- a/drivers/iio/gyro/hid-sensor-gyro-3d.c +++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c @@ -27,7 +27,7 @@ struct gyro_3d_state { struct hid_sensor_hub_attribute_info gyro[GYRO_3D_CHANNEL_MAX]; struct { u32 gyro_val[GYRO_3D_CHANNEL_MAX]; - u64 timestamp __aligned(8); + aligned_s64 timestamp; } scan; int scale_pre_decml; int scale_post_decml; diff --git a/drivers/iio/humidity/hid-sensor-humidity.c b/drivers/iio/humidity/hid-sensor-humidity.c index fa0fe404a70a..0e484b78b735 100644 --- a/drivers/iio/humidity/hid-sensor-humidity.c +++ b/drivers/iio/humidity/hid-sensor-humidity.c @@ -18,7 +18,7 @@ struct hid_humidity_state { struct hid_sensor_hub_attribute_info humidity_attr; struct { s32 humidity_data; - u64 timestamp __aligned(8); + aligned_s64 timestamp; } scan; int scale_pre_decml; int scale_post_decml; diff --git a/drivers/iio/light/hid-sensor-als.c b/drivers/iio/light/hid-sensor-als.c index eb1aedad7edc..8a906d95edd4 100644 --- a/drivers/iio/light/hid-sensor-als.c +++ b/drivers/iio/light/hid-sensor-als.c @@ -27,7 +27,7 @@ struct als_state { struct hid_sensor_hub_attribute_info als_illum; struct { u32 illum[CHANNEL_SCAN_INDEX_MAX]; - u64 timestamp __aligned(8); + aligned_s64 timestamp; } scan; int scale_pre_decml; int scale_post_decml; diff --git a/drivers/iio/orientation/hid-sensor-incl-3d.c b/drivers/iio/orientation/hid-sensor-incl-3d.c index ba5b581d5b25..3e5f2c58dfa9 100644 --- a/drivers/iio/orientation/hid-sensor-incl-3d.c +++ b/drivers/iio/orientation/hid-sensor-incl-3d.c @@ -29,7 +29,7 @@ struct incl_3d_state { struct hid_sensor_hub_attribute_info incl[INCLI_3D_CHANNEL_MAX]; struct { u32 incl_val[INCLI_3D_CHANNEL_MAX]; - u64 timestamp __aligned(8); + aligned_s64 timestamp; } scan; int scale_pre_decml; int scale_post_decml; diff --git a/drivers/iio/orientation/hid-sensor-rotation.c b/drivers/iio/orientation/hid-sensor-rotation.c index a033699910e8..864ecbcad26e 100644 --- a/drivers/iio/orientation/hid-sensor-rotation.c +++ b/drivers/iio/orientation/hid-sensor-rotation.c @@ -19,8 +19,8 @@ struct dev_rot_state { struct hid_sensor_common common_attributes; struct hid_sensor_hub_attribute_info quaternion; struct { - s32 sampled_vals[4] __aligned(16); - u64 timestamp __aligned(8); + s32 sampled_vals[4]; + aligned_s64 timestamp; } scan; int scale_pre_decml; int scale_post_decml; diff --git a/drivers/iio/position/hid-sensor-custom-intel-hinge.c b/drivers/iio/position/hid-sensor-custom-intel-hinge.c index 07c30d217255..48005b568dd9 100644 --- a/drivers/iio/position/hid-sensor-custom-intel-hinge.c +++ b/drivers/iio/position/hid-sensor-custom-intel-hinge.c @@ -39,7 +39,7 @@ struct hinge_state { const char *labels[CHANNEL_SCAN_INDEX_MAX]; struct { u32 hinge_val[3]; - u64 timestamp __aligned(8); + aligned_s64 timestamp; } scan; int scale_pre_decml; diff --git a/drivers/iio/pressure/hid-sensor-press.c b/drivers/iio/pressure/hid-sensor-press.c index a9215eb32d70..a964c7b65402 100644 --- a/drivers/iio/pressure/hid-sensor-press.c +++ b/drivers/iio/pressure/hid-sensor-press.c @@ -24,7 +24,7 @@ struct press_state { struct hid_sensor_hub_attribute_info press_attr; struct { u32 press_data; - u64 timestamp __aligned(8); + aligned_s64 timestamp; } scan; int scale_pre_decml; int scale_post_decml; diff --git a/drivers/iio/temperature/hid-sensor-temperature.c b/drivers/iio/temperature/hid-sensor-temperature.c index d40f235af1d4..32f4b13fd554 100644 --- a/drivers/iio/temperature/hid-sensor-temperature.c +++ b/drivers/iio/temperature/hid-sensor-temperature.c @@ -18,7 +18,7 @@ struct temperature_state { struct hid_sensor_hub_attribute_info temperature_attr; struct { s32 temperature_data; - u64 timestamp __aligned(8); + aligned_s64 timestamp; } scan; int scale_pre_decml; int scale_post_decml;