From patchwork Fri Sep 23 18:53:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Edgar E. Iglesias" X-Patchwork-Id: 9348591 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BBBF5607D0 for ; Fri, 23 Sep 2016 18:55:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9D89D2A1BE for ; Fri, 23 Sep 2016 18:55:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8D3E42AD53; Fri, 23 Sep 2016 18:55:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 122F72A1BE for ; Fri, 23 Sep 2016 18:55:40 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnVbJ-0005bK-Nu; Fri, 23 Sep 2016 18:53:33 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnVbI-0005aT-8f for xen-devel@lists.xen.org; Fri, 23 Sep 2016 18:53:32 +0000 Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id C4/12-16745-B2A75E75; Fri, 23 Sep 2016 18:53:31 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAIsWRWlGSWpSXmKPExsXiVRvkqKtV9TT cYOFuC4slHxezODB6HN39mymAMYo1My8pvyKBNePB/xlsBUeFKmb8e8LewLibr4uRi0NIYAKj xOd9/UwgDovASxaJnWd72UAcCYF+Vom3nz6xdDFyADkxEnfepnQxcgKZ1RJX5s5nAbGFBNQlT r/bwQYxaQaTxNID69lBEmwCJhJ7/zxgArFFBKQlrn2+zAhiMwv4StzceRwsLizgLnGqZw5YnE VAVWLt1XtsIDavgIfE5z93mCGWyUncPNcJZnMKeEps7N/ABLHYQ+LHvn/sExgFFjAyrGLUKE4 tKkst0jW00EsqykzPKMlNzMzRNTQw1ctNLS5OTE/NSUwq1kvOz93ECAwtBiDYwdi03fMQoyQH k5Ior5Lb03AhvqT8lMqMxOKM+KLSnNTiQ4wyHBxKErwOBkA5waLU9NSKtMwcYJDDpCU4eJREe MUqgdK8xQWJucWZ6RCpU4y6HFum3lvLJMSSl5+XKiXOywtSJABSlFGaBzcCFnGXGGWlhHkZgY 4S4ilILcrNLEGVf8UozsGoJMwrBDKFJzOvBG7TK6AjmICO+HbnCcgRJYkIKakGRrvqRqPJbDe sDpvOYHrb9lNToGNvgyhf8Jn6pM9Hj4efuBsx1/nu1x/9nqHlG5k+Hw7QPhzzrG3yWplUlWMb W7prA7nXXDVRn7hmVYzF6mCnhO+mtzY+WZq/179QgctvX01g7uu2XV1hr/tEeu8pVQaHTstzq dXf5cddv/6Mn6HJmbOhB15pK7EUZyQaajEXFScCAL2jRKKzAgAA X-Env-Sender: edgar.iglesias@gmail.com X-Msg-Ref: server-2.tower-206.messagelabs.com!1474656810!45187567!1 X-Originating-IP: [74.125.82.65] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 8.84; banners=-,-,- X-VirusChecked: Checked Received: (qmail 27920 invoked from network); 23 Sep 2016 18:53:30 -0000 Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com) (74.125.82.65) by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP; 23 Sep 2016 18:53:30 -0000 Received: by mail-wm0-f65.google.com with SMTP id 133so4123577wmq.2 for ; Fri, 23 Sep 2016 11:53:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NfCZRibi3oMnGsfa5kvYGipu0f1NV5RcLvYzxvN4tgs=; b=kn24itA+/ahCWyssJU2RZ+6pb7Rxexj3eb3upGYbN4hRPokryXYUx5UCvuPRMP32/C N0RO0I8u4PxjkPPRweAl9fm/Ezlpz15WEdTwPps+Yg6gWjn5JAPMccj4oOgYoahmngAr E+xpiCBpzOljR4e3qsBrWEOLDhrSX8esoo0FRJVvwpfoIj4kStvFWEp4S5dNNGig2CiW u3ifVf2hX7gu01S76QTz9mnTGj7jogKvwYsmELxOWCgZKEFdnMnTqdLhNAeD5z/y3E5h nhk88zZHYqoqnj0M43uLcTL9z2XYNHX4gwSvsQq/3a+5QZveYBx526srS/9qOAEA0B/j jx9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NfCZRibi3oMnGsfa5kvYGipu0f1NV5RcLvYzxvN4tgs=; b=Opmwo35+IjuGe+k0YOVCvkhJ8cFGnaVTYXbThBggjkx8otEiKuevUcWMVhOcqHJz7E 2h/o9iPDOn7s6xCCVJ40ez1ifzzggL7pPfgR49Qtct6iv/jSnk++3TkovTtf8Bh0vMnN fM4xPbHSRxNYm4hl6lWoChLs0Fjh+qASznlBKzVLTjKODqXgxYqyjjIawCfQRLZrWRXe HJCz6ZpJ5rFyETaFbgQjGUUjQxu79QCJiLUrNcTkEtRvxFWqVHXvE1ExMjnIRl0b17JK gXTO7dSNcTCJFk/9WDpIxU+bR8bND3+7ETbitZnjxydL26vvNiEFAx0SqpiPPQWQjGXK LD9A== X-Gm-Message-State: AA6/9Rlr3Tkug4JBr2Gw4c4f10OUW9CD26YdR4HRgf0dk9HPC/a5Ea0fzJiVE+iqZ2N/xA== X-Received: by 10.194.112.233 with SMTP id it9mr8186674wjb.176.1474656810518; Fri, 23 Sep 2016 11:53:30 -0700 (PDT) Received: from localhost (81-231-233-234-no56.tbcn.telia.com. [81.231.233.234]) by smtp.gmail.com with ESMTPSA id 193sm4411298wmo.14.2016.09.23.11.53.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Sep 2016 11:53:30 -0700 (PDT) From: "Edgar E. Iglesias" To: xen-devel@lists.xen.org Date: Fri, 23 Sep 2016 20:53:20 +0200 Message-Id: <1474656802-24081-6-git-send-email-edgar.iglesias@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1474656802-24081-1-git-send-email-edgar.iglesias@gmail.com> References: <1474656802-24081-1-git-send-email-edgar.iglesias@gmail.com> Cc: edgar.iglesias@xilinx.com, julien.grall@arm.com, sstabellini@kernel.org Subject: [Xen-devel] [PATCH v4 5/7] xen/device-tree: Make dt_match_node match props X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: "Edgar E. Iglesias" Make dt_match_node match for a single existing property. We only search for the existence of the property, not for specific values. Acked-by: Julien Grall Signed-off-by: Edgar E. Iglesias --- xen/common/device_tree.c | 5 ++++- xen/include/xen/device_tree.h | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index b39c8ca..1be074b 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -319,7 +319,7 @@ dt_match_node(const struct dt_device_match *matches, return NULL; while ( matches->path || matches->type || - matches->compatible || matches->not_available ) + matches->compatible || matches->not_available || matches->prop) { bool_t match = 1; @@ -335,6 +335,9 @@ dt_match_node(const struct dt_device_match *matches, if ( matches->not_available ) match &= !dt_device_is_available(node); + if ( matches->prop ) + match &= dt_find_property(node, matches->prop, NULL) != NULL; + if ( match ) return matches; matches++; diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h index da153a5..0aecbe0 100644 --- a/xen/include/xen/device_tree.h +++ b/xen/include/xen/device_tree.h @@ -29,6 +29,11 @@ struct dt_device_match { const char *type; const char *compatible; const bool_t not_available; + /* + * Property name to search for. We only search for the property's + * existence. + */ + const char *prop; const void *data; }; @@ -36,11 +41,13 @@ struct dt_device_match { #define __DT_MATCH_TYPE(typ) .type = typ #define __DT_MATCH_COMPATIBLE(compat) .compatible = compat #define __DT_MATCH_NOT_AVAILABLE() .not_available = 1 +#define __DT_MATCH_PROP(p) .prop = p #define DT_MATCH_PATH(p) { __DT_MATCH_PATH(p) } #define DT_MATCH_TYPE(typ) { __DT_MATCH_TYPE(typ) } #define DT_MATCH_COMPATIBLE(compat) { __DT_MATCH_COMPATIBLE(compat) } #define DT_MATCH_NOT_AVAILABLE() { __DT_MATCH_NOT_AVAILABLE() } +#define DT_MATCH_PROP(p) { __DT_MATCH_PROP(p) } typedef u32 dt_phandle;