From patchwork Fri Nov 11 12:15:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 18723 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp707748wru; Fri, 11 Nov 2022 04:22:34 -0800 (PST) X-Google-Smtp-Source: AA0mqf7/vKL4NBUhKT+ZjtlQGRb7a1D10uCIYbu0ojtGOC4yN2EgUCj4BOTs/rTkhwc736j0lEKa X-Received: by 2002:a17:907:6f17:b0:791:9801:e48a with SMTP id sy23-20020a1709076f1700b007919801e48amr1524407ejc.738.1668169354505; Fri, 11 Nov 2022 04:22:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668169354; cv=none; d=google.com; s=arc-20160816; b=d/iOz3CeNvF80jvnJm7wM5RCZ6ngcLkTJtt5j9IgqtZBi4CkZupZVZi/iOGmVcgr50 YoRME2uiPmrO1UQwuPZZxlq8JGUTtDBaRDpW5OOBxuPGz4uobjbFJetk/HcfVAUWAJGA Z/LWWJXd0XavaAKkrRrRwdz40oQe8uutwjpIdc5kNFMAG/F+J8+0cBd83qm/QEA5H8ov ovXLmsfIeK1Zz3n3hazS3Mgbx0U8RA6ZljZLizxi0yYv2dye48cCDRYMMNRDwx/ZyMxn 1HqWbbMj3s0KfZO45aPRpVGpWnZAE27ulaxvJJXwOyQbGGbSDsZIc9uF9XeMSIsynztI 5mFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=O2hnA/0COpF4s/QLTKqA+Rqy+4dbSzfNofk094FLKf4=; b=eqMJi+cynnpSlzQ4pNp2P2eIqTxnuHgDRjWLJRkqIInNK2Jh2L06MSy3e6np++CNJc Yobh07NzO8Sjg8xnbrPSTwvpOSVOJ9QEh7DRi0O4kQLe6AQKomyo18ApYBud2b7enyjm UNlibP2HF3n5dVm4mRN3bov5JGWw0FNLdrt7odNnkLrZwGaRIhoVfG096/q6zA7Ua1+S pXK5Z60Ks1fl+B4ZmQC4KpyZecx+SSOxrT0SPcfWJABUyuojU99bBBDohEBdXNW0uGba 7geKZW1lsU7BqtUjtJmlY242DNVctpwVI1zV2Lih6N7/RQlswYTwSqZdvHy0h/Be5g68 ojmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=lkRAXUfp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l27-20020a50d6db000000b0046194b2dd53si2167985edj.119.2022.11.11.04.22.09; Fri, 11 Nov 2022 04:22:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=lkRAXUfp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233817AbiKKMPE (ORCPT + 99 others); Fri, 11 Nov 2022 07:15:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232968AbiKKMO7 (ORCPT ); Fri, 11 Nov 2022 07:14:59 -0500 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C9BD532C0; Fri, 11 Nov 2022 04:14:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668168898; x=1699704898; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=4wRoo7N3PTMuyyFIGGkVMosd0G1YfaK6CY2wTW3dWT4=; b=lkRAXUfpN0lZBBtBTw3+AtfLYQiYCq8bQnGX6GKF574/EjTD2+5vsOO0 x0k7a8xJvpae8GIDIKFJZQCCbgYDyrTOO7PGBK7H8Eu5hrj4cl7XsgR6f 7VUDd5jJIllHDw4tQOi6SGqJvjCcWI6r7ee7XPFoVk/j2G0E0nbmHAE/4 Z6uezAod5MoJJmaoyq44W3d++YJa90D6QqAExHhRGVzpyFKFD8SGxka0R Rsu8rfZgJdo9bA5W47lDCx6Aclc1zl5OGx1UMK+gxfH4HO232Re/u/+D0 nGldqSZ1of7VXsaX2flva52UJkJ/ScHlZX6bIB6NHc9rdVbEW/IkqeSJl g==; X-IronPort-AV: E=McAfee;i="6500,9779,10527"; a="291990239" X-IronPort-AV: E=Sophos;i="5.96,156,1665471600"; d="scan'208";a="291990239" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2022 04:14:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10527"; a="639997733" X-IronPort-AV: E=Sophos;i="5.96,156,1665471600"; d="scan'208";a="639997733" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga007.fm.intel.com with ESMTP; 11 Nov 2022 04:14:56 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id 6DC32155; Fri, 11 Nov 2022 14:15:20 +0200 (EET) From: Andy Shevchenko To: Andy Shevchenko , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Greg Kroah-Hartman Subject: [PATCH v2 1/2] device property: Get rid of __PROPERTY_ENTRY_ARRAY_EL*SIZE*() Date: Fri, 11 Nov 2022 14:15:17 +0200 Message-Id: <20221111121518.44145-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749202349274096439?= X-GMAIL-MSGID: =?utf-8?q?1749202349274096439?= First of all, _ELEMENT_SIZE() repeats existing sizeof_field() macro. Second, usage of _ARRAY_ELSIZE_LEN() adds unnecessary indirection to the data layout. It's more understandable when the data structure is placed explicitly. That said, get rid of those macros by replacing them with the existing helper and explicit data structure layout. Signed-off-by: Andy Shevchenko --- v2: rebased on latest Linux Next, fixed anon union assignment include/linux/property.h | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/include/linux/property.h b/include/linux/property.h index 5d840299146d..aa58d4e8a21c 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -12,6 +12,7 @@ #include #include +#include #include struct device; @@ -311,24 +312,14 @@ struct property_entry { * crafted to avoid gcc-4.4.4's problems with initialization of anon unions * and structs. */ - -#define __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_) \ - sizeof(((struct property_entry *)NULL)->value._elem_[0]) - -#define __PROPERTY_ENTRY_ARRAY_ELSIZE_LEN(_name_, _elsize_, _Type_, \ - _val_, _len_) \ -(struct property_entry) { \ - .name = _name_, \ - .length = (_len_) * (_elsize_), \ - .type = DEV_PROP_##_Type_, \ - { .pointer = _val_ }, \ +#define __PROPERTY_ENTRY_ARRAY_LEN(_name_, _elem_, _Type_, _val_, _len_) \ +(struct property_entry) { \ + .name = _name_, \ + .length = (_len_) * sizeof_field(struct property_entry, value._elem_[0]), \ + .type = DEV_PROP_##_Type_, \ + { .pointer = _val_ }, \ } -#define __PROPERTY_ENTRY_ARRAY_LEN(_name_, _elem_, _Type_, _val_, _len_)\ - __PROPERTY_ENTRY_ARRAY_ELSIZE_LEN(_name_, \ - __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_), \ - _Type_, _val_, _len_) - #define PROPERTY_ENTRY_U8_ARRAY_LEN(_name_, _val_, _len_) \ __PROPERTY_ENTRY_ARRAY_LEN(_name_, u8_data, U8, _val_, _len_) #define PROPERTY_ENTRY_U16_ARRAY_LEN(_name_, _val_, _len_) \ @@ -340,9 +331,12 @@ struct property_entry { #define PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, _len_) \ __PROPERTY_ENTRY_ARRAY_LEN(_name_, str, STRING, _val_, _len_) #define PROPERTY_ENTRY_REF_ARRAY_LEN(_name_, _val_, _len_) \ - __PROPERTY_ENTRY_ARRAY_ELSIZE_LEN(_name_, \ - sizeof(struct software_node_ref_args), \ - REF, _val_, _len_) +(struct property_entry) { \ + .name = _name_, \ + .length = (_len_) * sizeof(struct software_node_ref_args), \ + .type = DEV_PROP_##_Type_, \ + { .pointer = _val_ }, \ +} #define PROPERTY_ENTRY_U8_ARRAY(_name_, _val_) \ PROPERTY_ENTRY_U8_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_)) @@ -360,7 +354,7 @@ struct property_entry { #define __PROPERTY_ENTRY_ELEMENT(_name_, _elem_, _Type_, _val_) \ (struct property_entry) { \ .name = _name_, \ - .length = __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_), \ + .length = sizeof_field(struct property_entry, value._elem_[0]), \ .is_inline = true, \ .type = DEV_PROP_##_Type_, \ { .value = { ._elem_[0] = _val_ } }, \ From patchwork Fri Nov 11 12:15:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 18722 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp705273wru; Fri, 11 Nov 2022 04:17:06 -0800 (PST) X-Google-Smtp-Source: AA0mqf7wvNibv9hS1+rP6ctgebbfvVgtqeo/9+5xxhpVaxEfNC3JR04daEXF+lStj1z1CFHDHVDp X-Received: by 2002:a17:906:5a86:b0:78d:422b:8156 with SMTP id l6-20020a1709065a8600b0078d422b8156mr1626772ejq.589.1668169026151; Fri, 11 Nov 2022 04:17:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668169026; cv=none; d=google.com; s=arc-20160816; b=LqBSh5k0EyUpcjxe/HvR+q9tewP3zUA2cnAvp/WI8EtwvtEazsyCRC9j6Wt1twuVVW bubQiLlruPyZAiFxkRe6IfAQ80EJw1p/9ZPswm7FMS3eN/0UZhsAM2AXWKaYa9H1zjhV V1vbMitjs1QzmvOoBPm+u4cbPpUncZA1Kp/5HscOX0rOYw1V5hnfSgHI5mGxM+ti03cE Zw2JJ4Ngu2XTsmRNNmXqYXEz5Q2QhznJQ/7V8u7VJHKSm7zRL3D9EhtCjcTOrmScyoMy woOkHwNosrQtx5+hkmCOHXA8KrsHQBbhMqhL9ai2uOHO8xcJZsJ1I5VOtqF/eH6iFHw6 8nxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=wrRDvlsNo+tgUaMMdQsg51hS3HeG1aA1/ITpltpgGBE=; b=uTglS1ji0V1TEbYHqxzUkyozE57mZW3mmRLAp9690r3li8FrVs/y8Bh3SQl2W2IcaP x2YykaywxpUOtz4vo7R5rL6JNKcL3dZqe2PurHult1GZS/i9Glt9GUnv5FnHNwvOtJJV P++8zkwH7EfunrsOlIKWmcnwA5SQNibKhbLepFBZJw829MWmR0vhhKwWWgXjFRLYtIbx Qcrg/sT0Hz0kyBS9ahFTELD+BzoLscaFbriXFTHNlla45U7M7cns8OVFHnQYAPiNDRIl BFz46zy16YU8irOQVgjvHXbB3Ua0KQ/r2BfsqdEnLufNFF1mlzU0J67DcaynNb/HyjwP 6Nnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=mB5QFE2S; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w17-20020a056402269100b0046276ef250asi2264105edd.298.2022.11.11.04.16.41; Fri, 11 Nov 2022 04:17:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=mB5QFE2S; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233802AbiKKMPB (ORCPT + 99 others); Fri, 11 Nov 2022 07:15:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43156 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233338AbiKKMO7 (ORCPT ); Fri, 11 Nov 2022 07:14:59 -0500 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7E7C5B5A9; Fri, 11 Nov 2022 04:14:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668168898; x=1699704898; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=yWRgWmi8NjhGKKd/wqtAvGh6FPQuBCvnh+N8Hl3B3To=; b=mB5QFE2SYpIEg5wowOPOxSIvvJUzxiGDlIq1GATn66oXEFL3kgJqrwMK tNx5Dp+SYDgYsQVmo2SgTdRVL5+MXdT2xrxt2Jnchjs6LkUxNuCjEeFgC LplHCxX2ssH4MxZpnvy/g/KA71Q9PjN7ScneAtxM5OmlAU+3fe04kQN1I 1zK12bNoORbap6azk5/R+vgIowxF9PeL9Dqp9WByRLc1RGxwrLKHqsCq4 sswhQBsxNWF8+W/8smoyiXUdP2JYMLk4ztfMiQ2zgPiwp4qCm5z9FbcPA bRA4hgLPrxiBDmoNBbn8alhQm7veWLfZ5fSerRxtn8Pdk9w3fTc2kd/FS A==; X-IronPort-AV: E=McAfee;i="6500,9779,10527"; a="309212355" X-IronPort-AV: E=Sophos;i="5.96,156,1665471600"; d="scan'208";a="309212355" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2022 04:14:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10527"; a="670730485" X-IronPort-AV: E=Sophos;i="5.96,156,1665471600"; d="scan'208";a="670730485" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga001.jf.intel.com with ESMTP; 11 Nov 2022 04:14:56 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id 7B5F7F7; Fri, 11 Nov 2022 14:15:20 +0200 (EET) From: Andy Shevchenko To: Andy Shevchenko , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Daniel Scally , Heikki Krogerus , Sakari Ailus , "Rafael J. Wysocki" , Greg Kroah-Hartman Subject: [PATCH v2 2/2] device property: Move PROPERTY_ENTRY_BOOL() a bit down Date: Fri, 11 Nov 2022 14:15:18 +0200 Message-Id: <20221111121518.44145-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221111121518.44145-1-andriy.shevchenko@linux.intel.com> References: <20221111121518.44145-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_HI,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749202004827617691?= X-GMAIL-MSGID: =?utf-8?q?1749202004827617691?= Let's order ARRAY and non-ARRAY macros in the same way. The PROPERTY_ENTRY_BOOL() is special, move it a bit down in the code so it won't break ordering of the rest. Signed-off-by: Andy Shevchenko --- v2: rebased on latest Linux Next include/linux/property.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/linux/property.h b/include/linux/property.h index aa58d4e8a21c..b8357397242b 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -330,6 +330,7 @@ struct property_entry { __PROPERTY_ENTRY_ARRAY_LEN(_name_, u64_data, U64, _val_, _len_) #define PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, _len_) \ __PROPERTY_ENTRY_ARRAY_LEN(_name_, str, STRING, _val_, _len_) + #define PROPERTY_ENTRY_REF_ARRAY_LEN(_name_, _val_, _len_) \ (struct property_entry) { \ .name = _name_, \ @@ -371,12 +372,6 @@ struct property_entry { #define PROPERTY_ENTRY_STRING(_name_, _val_) \ __PROPERTY_ENTRY_ELEMENT(_name_, str, STRING, _val_) -#define PROPERTY_ENTRY_BOOL(_name_) \ -(struct property_entry) { \ - .name = _name_, \ - .is_inline = true, \ -} - #define PROPERTY_ENTRY_REF(_name_, _ref_, ...) \ (struct property_entry) { \ .name = _name_, \ @@ -385,9 +380,14 @@ struct property_entry { { .pointer = &SOFTWARE_NODE_REFERENCE(_ref_, ##__VA_ARGS__), }, \ } +#define PROPERTY_ENTRY_BOOL(_name_) \ +(struct property_entry) { \ + .name = _name_, \ + .is_inline = true, \ +} + struct property_entry * property_entries_dup(const struct property_entry *properties); - void property_entries_free(const struct property_entry *properties); bool device_dma_supported(const struct device *dev);