From patchwork Thu Apr 25 09:17:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabien DESSENNE X-Patchwork-Id: 10916359 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6BB071805 for ; Thu, 25 Apr 2019 09:17:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5858B28BB7 for ; Thu, 25 Apr 2019 09:17:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4BD3C28C2B; Thu, 25 Apr 2019 09:17:49 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E48E128BBD for ; Thu, 25 Apr 2019 09:17:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hMkhsGMHQvOfi2g2oPMAbhAUZDAyJ/W2M00SMV6Wucw=; b=jUoMnG0H+5F7CK Yo0v0N41u/BrHHMALBQB2qNWGJLc7zIsD/W5CXja7bK8CGOjM8VnX8XK6sfQBUq3G8EEcHGCpHyT/ Kryp5FweB/Zws2/4nnrqL2HV+xNfk8UqLnW/G+Fiwq7Y2yaTq5zFEXLaW/Dzciwmk0ZXSdzXPg1XH zQwuExnHzHPZvbU9QSkS4JgmolHVpGge/jJOz8+1nUT7PNfxIc0A/fI9J50TtOzkpjFXSj+8ytefe ftaLgCqrD+KYmwDnRyMDWkuFLmU1cPCxeubhYS1bgRkxXY7HvJwFaoZLXtglm2Wb2sssRLdy+n6Cd hWviWNlijzmQuIDdfg5A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaVk-0000hL-HS; Thu, 25 Apr 2019 09:17:44 +0000 Received: from mx07-00178001.pphosted.com ([62.209.51.94]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaVg-0000fs-Ld for linux-arm-kernel@lists.infradead.org; Thu, 25 Apr 2019 09:17:42 +0000 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3P91Rgv023616; Thu, 25 Apr 2019 11:17:31 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=STMicroelectronics; bh=YxS1CmFL4QUjGza2F9ElVAd/BnjMK/K8FnWYOu39aEY=; b=CKcL4ouOzvK6j6Z3lB1aJDZeXhk4CLwcPkktnry9uxvq8ZSdCogCTERnNiXRgcYvfP9g 0iqjMC35nMDV07nmBhN2ohR2ojdU9n6gAu8DFGh8/4OCj3q9VRh/jqnxlfWVTLb9lf7m Wo7oN4OEVSwrh+V8xq1zjUOu+XD0Pch9JJxhdwb9haN1XcXJdn7/XoRI91Hrj6xBfNXn kI1OTQ3gBBG3XFsQrcjv1b0G0Wcjytpb38/Ui80xMl1EROsRVrnwlkyJe+uQNFBVbmdO MfOYhQ+hg/HhZoCwUIrRvNeE0Y038caYMUb1ajdKQNbmOKo+4LUTpkep0fNmY3YZa/Td +w== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2rys6s2m27-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 25 Apr 2019 11:17:31 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 0A91334; Thu, 25 Apr 2019 09:17:31 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas21.st.com [10.75.90.44]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id D0A791615; Thu, 25 Apr 2019 09:17:30 +0000 (GMT) Received: from SAFEX1HUBCAS23.st.com (10.75.90.47) by SAFEX1HUBCAS21.st.com (10.75.90.44) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 25 Apr 2019 11:17:30 +0200 Received: from localhost (10.201.23.25) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Apr 2019 11:17:30 +0200 From: Fabien Dessenne To: Ohad Ben-Cohen , Bjorn Andersson , Rob Herring , Mark Rutland , Maxime Coquelin , Alexandre Torgue , Jonathan Corbet , , , , , , Subject: [PATCH v2 1/6] dt-bindings: hwlock: add support of shared locks Date: Thu, 25 Apr 2019 11:17:18 +0200 Message-ID: <1556183843-28033-2-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> References: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> MIME-Version: 1.0 X-Originating-IP: [10.201.23.25] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-25_08:, , signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190425_021741_009764_073BA095 X-CRM114-Status: GOOD ( 15.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Benjamin Gaignard , Fabien Dessenne Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Use #hwlock-cells value to define whether the locks can be shared by several users. Signed-off-by: Fabien Dessenne Reviewed-by: Rob Herring --- .../devicetree/bindings/hwlock/hwlock.txt | 27 ++++++++++++++++------ 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/Documentation/devicetree/bindings/hwlock/hwlock.txt b/Documentation/devicetree/bindings/hwlock/hwlock.txt index 085d1f5..e98088a 100644 --- a/Documentation/devicetree/bindings/hwlock/hwlock.txt +++ b/Documentation/devicetree/bindings/hwlock/hwlock.txt @@ -13,7 +13,7 @@ hwlock providers: Required properties: - #hwlock-cells: Specifies the number of cells needed to represent a - specific lock. + specific lock. Shall be 1 or 2 (see hwlocks below). hwlock users: ============= @@ -27,6 +27,11 @@ Required properties: #hwlock-cells. The list can have just a single hwlock or multiple hwlocks, with each hwlock represented by a phandle and a corresponding args specifier. + If #hwlock-cells is 1, all of the locks are exclusive + (cannot be used by several users). + If #hwlock-cells is 2, the value of the second cell + defines whether the lock is for exclusive usage (0) or + shared (1) i.e. can be used by several users. Optional properties: - hwlock-names: List of hwlock name strings defined in the same order @@ -46,14 +51,22 @@ of length 1. ... }; -2. Example of a node using multiple specific hwlocks: +2. Example of nodes using multiple and shared specific hwlocks: -The following example has a node requesting two hwlocks, a hwlock within -the hwlock device node 'hwlock1' with #hwlock-cells value of 1, and another -hwlock within the hwlock device node 'hwlock2' with #hwlock-cells value of 2. +The following example has a nodeA requesting two hwlocks: +- an exclusive one (#hwlock-cells = 1) within the hwlock device node 'hwlock1' +- a shared one (#hwlock-cells = 2, second cell = 1) within the hwlock device + node 'hwlock2'. +The shared lock is also be used by nodeB. - node { + nodeA { ... - hwlocks = <&hwlock1 2>, <&hwlock2 0 3>; + hwlocks = <&hwlock1 2>, <&hwlock2 0 1>; ... }; + + nodeB { + ... + hwlocks = <&hwlock2 0 1>; + ... + }; \ No newline at end of file From patchwork Thu Apr 25 09:17:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabien DESSENNE X-Patchwork-Id: 10916381 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8DD72161F for ; Thu, 25 Apr 2019 09:18:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7C14A28BB7 for ; Thu, 25 Apr 2019 09:18:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6F78728C2B; Thu, 25 Apr 2019 09:18:49 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CF87A28BB7 for ; Thu, 25 Apr 2019 09:18:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mHYZsK7jw8nR469E3iZzYoK1ZLpWSvFsFTV9Dp39sZc=; b=mlhYEScLXiaqqj PskXm1zpY6nV65zxyeqsfSHdQA5rbXx2uUGIVx8g0BZOAJ6aqmOCE2/JNXVkPSlMUtRexTh/2pOMG az0n32jmZcaTC8ZWLDyndu6hsUsZWAnNjzuDts2THlEBVM3NUZ7bBQJUlWVTshwx2adRNT7D2A17t WZ6tnfRqfFKgLt6CgDiXKU8FjAIzTtpDVVQJwkxgKjumVTBODZ6ibg2BgUVpKLJW1sZJAIv+NxHon 0xqls3WagpILtCdhcnCR6EDcLaSByRrxq0aSHVrcr55sPZz0yJYsr83jICQP8+xekmoCH9ruNfbEc c7TXxQhi84idhRiWqjkQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaWg-0001pi-Bj; Thu, 25 Apr 2019 09:18:42 +0000 Received: from mx07-00178001.pphosted.com ([62.209.51.94]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaVk-0000fu-F2 for linux-arm-kernel@lists.infradead.org; Thu, 25 Apr 2019 09:17:49 +0000 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3P8uclB024832; Thu, 25 Apr 2019 11:17:33 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=STMicroelectronics; bh=E4OJ6ruljLisNJcmxAqdZd1iuQsXRd0SslgNNjwngII=; b=q1nfNOEFe/6X4IJLbWKg1HhuBNbSMtH2biDzpp7yIBnl8i1GOA3F5RcCLlkZU84mGCGB 4nnppOHP+7ZLSnOarBixjtGzdHnuCwLtpKR2jUiUDezh8ES89P4UEQaszfmmtfKB0bkW 9jEuYsEfz0QH5ImrRlZa4YoSGC9PE0WyzmrdQi32jdbabx4aaq5i1mDKnSU90V9vfx/P v096XvoXZ1cWay+xTinjLkCI+66VwE7UzsmhBLs6g77tWDLOWG3/qE8xtVbZarhoQ5Lm 8aap77lN7fq8H9Q8RPIW8J/ZuoJ4s8etmfZ/dDY65hAMy0SZGf2vGMb3X+jXtP7xwSdB tg== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2ryrvxjq4c-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 25 Apr 2019 11:17:33 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 8C67F31; Thu, 25 Apr 2019 09:17:32 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas24.st.com [10.75.90.94]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 5894D1615; Thu, 25 Apr 2019 09:17:32 +0000 (GMT) Received: from SAFEX1HUBCAS23.st.com (10.75.90.47) by Safex1hubcas24.st.com (10.75.90.94) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Apr 2019 11:17:31 +0200 Received: from localhost (10.201.23.25) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Apr 2019 11:17:31 +0200 From: Fabien Dessenne To: Ohad Ben-Cohen , Bjorn Andersson , Rob Herring , Mark Rutland , Maxime Coquelin , Alexandre Torgue , Jonathan Corbet , , , , , , Subject: [PATCH v2 2/6] hwspinlock: allow sharing of hwspinlocks Date: Thu, 25 Apr 2019 11:17:19 +0200 Message-ID: <1556183843-28033-3-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> References: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> MIME-Version: 1.0 X-Originating-IP: [10.201.23.25] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-25_08:, , signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190425_021744_827563_3D0A3F72 X-CRM114-Status: GOOD ( 26.59 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Benjamin Gaignard , Fabien Dessenne Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The current implementation does not allow different devices to use a common hwspinlock. Offer the possibility to use the same hwspinlock by several users. If a device registers to the framework with #hwlock-cells = 2, then the second parameter of the 'hwlocks' DeviceTree property defines whether an hwlock is requested for an exclusive or a shared usage. If a device registers with #hwlock-cells = 1, then all the hwlocks are for an exclusive usage. Signed-off-by: Fabien Dessenne --- Documentation/hwspinlock.txt | 10 ++-- drivers/hwspinlock/hwspinlock_core.c | 82 +++++++++++++++++++++++++------- drivers/hwspinlock/hwspinlock_internal.h | 2 + 3 files changed, 73 insertions(+), 21 deletions(-) diff --git a/Documentation/hwspinlock.txt b/Documentation/hwspinlock.txt index ed640a2..e6ce2dd 100644 --- a/Documentation/hwspinlock.txt +++ b/Documentation/hwspinlock.txt @@ -54,9 +54,11 @@ Should be called from a process context (might sleep). struct hwspinlock *hwspin_lock_request_specific(unsigned int id); Assign a specific hwspinlock id and return its address, or NULL -if that hwspinlock is already in use. Usually board code will -be calling this function in order to reserve specific hwspinlock -ids for predefined purposes. +if that hwspinlock is already in use and not shared. If that specific +hwspinlock is declared as shared, it can be requested and used by +several users. +Usually board code will be calling this function in order to reserve +specific hwspinlock ids for predefined purposes. Should be called from a process context (might sleep). @@ -368,11 +370,13 @@ of which represents a single hardware lock:: * struct hwspinlock - this struct represents a single hwspinlock instance * @bank: the hwspinlock_device structure which owns this lock * @lock: initialized and used by hwspinlock core + * @refcount: number of users (when shared) * @priv: private data, owned by the underlying platform-specific hwspinlock drv */ struct hwspinlock { struct hwspinlock_device *bank; spinlock_t lock; + unsigned int refcount; void *priv; }; diff --git a/drivers/hwspinlock/hwspinlock_core.c b/drivers/hwspinlock/hwspinlock_core.c index 2bad40d..53afdeb 100644 --- a/drivers/hwspinlock/hwspinlock_core.c +++ b/drivers/hwspinlock/hwspinlock_core.c @@ -25,6 +25,8 @@ /* radix tree tags */ #define HWSPINLOCK_UNUSED (0) /* tags an hwspinlock as unused */ +#define HWSPINLOCK_EXCLUSIVE (1) /* tags an hwspinlock as exclusive */ +#define HWSPINLOCK_SHARED (2) /* tags an hwspinlock as shared */ /* * A radix tree is used to maintain the available hwspinlock instances. @@ -291,7 +293,7 @@ EXPORT_SYMBOL_GPL(__hwspin_unlock); * @hwlock_spec: hwlock specifier as found in the device tree * * This is a simple translation function, suitable for hwspinlock platform - * drivers that only has a lock specifier length of 1. + * drivers that only has a lock specifier length of 1 or 2. * * Returns a relative index of the lock within a specified bank on success, * or -EINVAL on invalid specifier cell count. @@ -299,7 +301,8 @@ EXPORT_SYMBOL_GPL(__hwspin_unlock); static inline int of_hwspin_lock_simple_xlate(const struct of_phandle_args *hwlock_spec) { - if (WARN_ON(hwlock_spec->args_count != 1)) + if (WARN_ON(hwlock_spec->args_count != 1 && + hwlock_spec->args_count != 2)) return -EINVAL; return hwlock_spec->args[0]; @@ -322,11 +325,12 @@ of_hwspin_lock_simple_xlate(const struct of_phandle_args *hwlock_spec) int of_hwspin_lock_get_id(struct device_node *np, int index) { struct of_phandle_args args; - struct hwspinlock *hwlock; + struct hwspinlock *hwlock, *tmp; struct radix_tree_iter iter; void **slot; int id; int ret; + unsigned int tag; ret = of_parse_phandle_with_args(np, "hwlocks", "#hwlock-cells", index, &args); @@ -361,6 +365,37 @@ int of_hwspin_lock_get_id(struct device_node *np, int index) } id += hwlock->bank->base_id; + /* Set the EXCLUSIVE / SHARED tag */ + if (args.args_count == 2 && args.args[1]) { + /* Tag SHARED unless already tagged EXCLUSIVE */ + if (radix_tree_tag_get(&hwspinlock_tree, id, + HWSPINLOCK_EXCLUSIVE)) { + ret = -EINVAL; + goto out; + } + tag = HWSPINLOCK_SHARED; + } else { + /* Tag EXCLUSIVE unless already tagged SHARED */ + if (radix_tree_tag_get(&hwspinlock_tree, id, + HWSPINLOCK_SHARED)) { + ret = -EINVAL; + goto out; + } + tag = HWSPINLOCK_EXCLUSIVE; + } + + /* mark this hwspinlock */ + hwlock = radix_tree_lookup(&hwspinlock_tree, id); + if (!hwlock) { + ret = -EINVAL; + goto out; + } + + tmp = radix_tree_tag_set(&hwspinlock_tree, id, tag); + + /* self-sanity check which should never fail */ + WARN_ON(tmp != hwlock); + out: of_node_put(args.np); return ret ? ret : id; @@ -483,6 +518,7 @@ int hwspin_lock_register(struct hwspinlock_device *bank, struct device *dev, spin_lock_init(&hwlock->lock); hwlock->bank = bank; + hwlock->refcount = 0; ret = hwspin_lock_register_single(hwlock, base_id + i); if (ret) @@ -625,7 +661,7 @@ static int __hwspin_lock_request(struct hwspinlock *hwlock) { struct device *dev = hwlock->bank->dev; struct hwspinlock *tmp; - int ret; + int ret, id; /* prevent underlying implementation from being removed */ if (!try_module_get(dev->driver->owner)) { @@ -642,13 +678,18 @@ static int __hwspin_lock_request(struct hwspinlock *hwlock) return ret; } + /* update shareable refcount */ + id = hwlock_to_id(hwlock); + if (radix_tree_tag_get(&hwspinlock_tree, id, HWSPINLOCK_SHARED) && + hwlock->refcount++) + goto out; + /* mark hwspinlock as used, should not fail */ - tmp = radix_tree_tag_clear(&hwspinlock_tree, hwlock_to_id(hwlock), - HWSPINLOCK_UNUSED); + tmp = radix_tree_tag_clear(&hwspinlock_tree, id, HWSPINLOCK_UNUSED); /* self-sanity check that should never fail */ WARN_ON(tmp != hwlock); - +out: return ret; } @@ -742,9 +783,9 @@ struct hwspinlock *hwspin_lock_request_specific(unsigned int id) /* sanity check (this shouldn't happen) */ WARN_ON(hwlock_to_id(hwlock) != id); - /* make sure this hwspinlock is unused */ - ret = radix_tree_tag_get(&hwspinlock_tree, id, HWSPINLOCK_UNUSED); - if (ret == 0) { + /* make sure this hwspinlock is unused or shareable */ + if (!radix_tree_tag_get(&hwspinlock_tree, id, HWSPINLOCK_SHARED) && + !radix_tree_tag_get(&hwspinlock_tree, id, HWSPINLOCK_UNUSED)) { pr_warn("hwspinlock %u is already in use\n", id); hwlock = NULL; goto out; @@ -777,7 +818,7 @@ int hwspin_lock_free(struct hwspinlock *hwlock) { struct device *dev; struct hwspinlock *tmp; - int ret; + int ret, id; if (!hwlock) { pr_err("invalid hwlock\n"); @@ -788,30 +829,35 @@ int hwspin_lock_free(struct hwspinlock *hwlock) mutex_lock(&hwspinlock_tree_lock); /* make sure the hwspinlock is used */ - ret = radix_tree_tag_get(&hwspinlock_tree, hwlock_to_id(hwlock), - HWSPINLOCK_UNUSED); + id = hwlock_to_id(hwlock); + ret = radix_tree_tag_get(&hwspinlock_tree, id, HWSPINLOCK_UNUSED); if (ret == 1) { dev_err(dev, "%s: hwlock is already free\n", __func__); dump_stack(); ret = -EINVAL; - goto out; + goto unlock; } /* notify the underlying device that power is not needed */ ret = pm_runtime_put(dev); if (ret < 0) - goto out; + goto unlock; + + /* update shareable refcount */ + if (radix_tree_tag_get(&hwspinlock_tree, id, HWSPINLOCK_SHARED) && + --hwlock->refcount) + goto put; /* mark this hwspinlock as available */ - tmp = radix_tree_tag_set(&hwspinlock_tree, hwlock_to_id(hwlock), - HWSPINLOCK_UNUSED); + tmp = radix_tree_tag_set(&hwspinlock_tree, id, HWSPINLOCK_UNUSED); /* sanity check (this shouldn't happen) */ WARN_ON(tmp != hwlock); +put: module_put(dev->driver->owner); -out: +unlock: mutex_unlock(&hwspinlock_tree_lock); return ret; } diff --git a/drivers/hwspinlock/hwspinlock_internal.h b/drivers/hwspinlock/hwspinlock_internal.h index 9eb6bd0..c808e11 100644 --- a/drivers/hwspinlock/hwspinlock_internal.h +++ b/drivers/hwspinlock/hwspinlock_internal.h @@ -35,11 +35,13 @@ struct hwspinlock_ops { * struct hwspinlock - this struct represents a single hwspinlock instance * @bank: the hwspinlock_device structure which owns this lock * @lock: initialized and used by hwspinlock core + * @refcount: number of users (when shared) * @priv: private data, owned by the underlying platform-specific hwspinlock drv */ struct hwspinlock { struct hwspinlock_device *bank; spinlock_t lock; + unsigned int refcount; void *priv; }; From patchwork Thu Apr 25 09:17:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabien DESSENNE X-Patchwork-Id: 10916379 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AC2A7161F for ; Thu, 25 Apr 2019 09:18:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9C48B28BB7 for ; Thu, 25 Apr 2019 09:18:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 90C1728C2B; Thu, 25 Apr 2019 09:18:39 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 40C6A28BB7 for ; Thu, 25 Apr 2019 09:18:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WPhY34AJUkHMMydId+hxQiwSWddzwCWdWTpQRMzM7e8=; b=ZfSMuvuEHu/8UN qCeUMw2M2LYrMgMFFfNYyCUKjj37TgOSG/lfpJFizYjCR3vnY5pKXp4/32IV8REEdWhxRjtSMY8q1 wXHXo0/JXP3TupkCbm+NXelJg5Um+MAp5PaokVcYiPE2wEc8vgA2OQuYuVrvEux/mkcv7sYjQOEOP c65n6WIYyAocFVDtqtwtPZkEXs0wyz1Bqg+ONd8Bp/cTBVZq+6lQAUOP37XZwbwOppqA1BNmmppyp jpir1t4LSy/mEJLXPWwAu5ppw8Yq1LN+HRs+3JJ6w+rCDWDlJcVmU2kaGZ56IooN3WpiRVP0UbVlq TSUoN45TT5JwhAFjL6nQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaWX-0001c4-Ei; Thu, 25 Apr 2019 09:18:33 +0000 Received: from mx07-00178001.pphosted.com ([62.209.51.94]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaVm-0000iD-4o for linux-arm-kernel@lists.infradead.org; Thu, 25 Apr 2019 09:17:49 +0000 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3P91RM4023615; Thu, 25 Apr 2019 11:17:39 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=STMicroelectronics; bh=gWt2Yvp7kFHU0NSj4PHJldddgEcgVYkKXyg6dUFoJn4=; b=J8eWF0Ji/OwAmYuP8G/kYjsx24gzjc97wcoqB8kn9lA0hbEWKzWy2pyaJfn3YaNkqiCH FkN7Pk7vQMipZK6vwC7g0FLnuPi886oYr4cg27z1sQrtZEfI46ZlFYHl+pBO59HJTaHp Usg2oFkIAj5TejEdGI7SAVw+6k6rBN4/nK19YKh4VDxFNok03WKA9PSX821OoXj3XH2q SzSI9ELp0EWXsgCMXVXJGIuntrXrxe7CHRsOdhpEWntyvAG0qewlWpeMyqv44t96d5Jn we/lto9q6Y3AJmITll34vxmIKCFEAxMrzerg8zIQ2xubfvuqKl60h5+KkDnxNXD/qjzf wQ== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2rys6s2m2h-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 25 Apr 2019 11:17:39 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id AE53731; Thu, 25 Apr 2019 09:17:33 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas22.st.com [10.75.90.92]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 91F4C1615; Thu, 25 Apr 2019 09:17:33 +0000 (GMT) Received: from SAFEX1HUBCAS23.st.com (10.75.90.47) by Safex1hubcas22.st.com (10.75.90.92) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 25 Apr 2019 11:17:33 +0200 Received: from localhost (10.201.23.25) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Apr 2019 11:17:32 +0200 From: Fabien Dessenne To: Ohad Ben-Cohen , Bjorn Andersson , Rob Herring , Mark Rutland , Maxime Coquelin , Alexandre Torgue , Jonathan Corbet , , , , , , Subject: [PATCH v2 3/6] dt-bindings: hwlock: update STM32 #hwlock-cells value Date: Thu, 25 Apr 2019 11:17:20 +0200 Message-ID: <1556183843-28033-4-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> References: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> MIME-Version: 1.0 X-Originating-IP: [10.201.23.25] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-25_08:, , signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190425_021746_702698_A7D2FB80 X-CRM114-Status: GOOD ( 16.17 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Benjamin Gaignard , Fabien Dessenne Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Use a value of 2, so users can share hwlocks. Signed-off-by: Fabien Dessenne Reviewed-by: Rob Herring --- Documentation/devicetree/bindings/hwlock/st,stm32-hwspinlock.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/hwlock/st,stm32-hwspinlock.txt b/Documentation/devicetree/bindings/hwlock/st,stm32-hwspinlock.txt index adf4f000..60a3716 100644 --- a/Documentation/devicetree/bindings/hwlock/st,stm32-hwspinlock.txt +++ b/Documentation/devicetree/bindings/hwlock/st,stm32-hwspinlock.txt @@ -4,8 +4,8 @@ STM32 Hardware Spinlock Device Binding Required properties : - compatible : should be "st,stm32-hwspinlock". - reg : the register address of hwspinlock. -- #hwlock-cells : hwlock users only use the hwlock id to represent a specific - hwlock, so the number of cells should be <1> here. +- #hwlock-cells : should be <2> so the hwlock users use the hwlock id to + represent a specific hwlock and define its shared / exclusive attribute. - clock-names : Must contain "hsem". - clocks : Must contain a phandle entry for the clock in clock-names, see the common clock bindings. @@ -16,7 +16,7 @@ Please look at the generic hwlock binding for usage information for consumers, Example of hwlock provider: hwspinlock@4c000000 { compatible = "st,stm32-hwspinlock"; - #hwlock-cells = <1>; + #hwlock-cells = <2>; reg = <0x4c000000 0x400>; clocks = <&rcc HSEM>; clock-names = "hsem"; From patchwork Thu Apr 25 09:17:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabien DESSENNE X-Patchwork-Id: 10916369 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3E9A414DB for ; Thu, 25 Apr 2019 09:18:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2E40828BB7 for ; Thu, 25 Apr 2019 09:18:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 21B9C28C2B; Thu, 25 Apr 2019 09:18:17 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D07CA28BB7 for ; Thu, 25 Apr 2019 09:18:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=75//oVHcIl0tFcoVUMGeTzHTFi6oCFpy6eOkasPsHrg=; b=L7Qea0EbTeUiZK 9G2ULf2SieeU/PjdLteCKVY4SWz37N5ba7hijOf5dJ933+NrJo3s+VbdPkvQBvf4tUXP30NplY3r/ WpmwygLnqLU5DaJyz1wrxLXwgrsfUR2ZupQSkHMUt/kQfj8EgWEkLb4YozIsZd7HL4eQG7bkqrVH0 7FbAPACvE6QbFWIQTbKgfdQ0Ut6WMkEk0A1tjcc3DHPQYGDHo+tMS8HdLx9FclNPLPGWeAJ7F3PNT 1TaREjlvPK2zRVRPxpNrL89vymXd9o0GWOfGm2FT2RuHknwOnDJrdD5T/0N3bzVE3MlBKI7iEP/0+ /K90nsZ48Aq9LNync2Nw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaWG-0001EC-2G; Thu, 25 Apr 2019 09:18:16 +0000 Received: from mx07-00178001.pphosted.com ([62.209.51.94]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaVi-0000gV-7Z for linux-arm-kernel@lists.infradead.org; Thu, 25 Apr 2019 09:17:43 +0000 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3P8uclC024832; Thu, 25 Apr 2019 11:17:35 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=STMicroelectronics; bh=Nqd+gozUf5Ccqerwr42nwux1s+gDmbq7mr0/bjPx4TQ=; b=py3L40Df54MkS0zNym18BUeDoMYmvLd7t5M/bJId5rpCEB8LTQWsd5kURgixZZnjzHB8 wHM8fWupPh+hY+hyeXDUfCpkTAT6PBvxBXV8z8O8Nxcp9HfAUtkK9dMKvWaocc38n29y g6pXhdasXREp/8ex6xqWNH5TFZ3uziIL2yORsekMeV//KS5nnRH2P9dSU8orJJMz7/cw 06x8rmUl4pOjD7vYrfhwlz6dElz6W0tdPAKFqdr+z+MXMV6ecIS00zxXnMlkVgOVRDzF 6MfGaq+KvqfMQofzMUgux2KuHbxG6ZbEae5Frer4ZfdHdWPp4+kaGT9BS4g+2B+u3bPz 8A== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2ryrvxjq4k-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 25 Apr 2019 11:17:35 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id E35DF38; Thu, 25 Apr 2019 09:17:34 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas21.st.com [10.75.90.44]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id BB303161B; Thu, 25 Apr 2019 09:17:34 +0000 (GMT) Received: from SAFEX1HUBCAS23.st.com (10.75.90.47) by SAFEX1HUBCAS21.st.com (10.75.90.44) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 25 Apr 2019 11:17:34 +0200 Received: from localhost (10.201.23.25) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Apr 2019 11:17:34 +0200 From: Fabien Dessenne To: Ohad Ben-Cohen , Bjorn Andersson , Rob Herring , Mark Rutland , Maxime Coquelin , Alexandre Torgue , Jonathan Corbet , , , , , , Subject: [PATCH v2 4/6] ARM: dts: stm32: Add hwspinlock node for stm32mp157 SoC Date: Thu, 25 Apr 2019 11:17:21 +0200 Message-ID: <1556183843-28033-5-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> References: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> MIME-Version: 1.0 X-Originating-IP: [10.201.23.25] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-25_08:, , signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190425_021742_593317_5C8C8D4F X-CRM114-Status: GOOD ( 14.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Benjamin Gaignard , Fabien Dessenne Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Declare hwspinlock device for stm32mp157 SoC Signed-off-by: Fabien Dessenne --- arch/arm/boot/dts/stm32mp157c.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi index 105e21f..824d7e1 100644 --- a/arch/arm/boot/dts/stm32mp157c.dtsi +++ b/arch/arm/boot/dts/stm32mp157c.dtsi @@ -886,6 +886,14 @@ status = "disabled"; }; + hsem: hwspinlock@4c000000 { + compatible = "st,stm32-hwspinlock"; + #hwlock-cells = <2>; + reg = <0x4c000000 0x400>; + clocks = <&rcc HSEM>; + clock-names = "hsem"; + }; + ipcc: mailbox@4c001000 { compatible = "st,stm32mp1-ipcc"; #mbox-cells = <1>; From patchwork Thu Apr 25 09:17:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabien DESSENNE X-Patchwork-Id: 10916383 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 08B0C14DB for ; Thu, 25 Apr 2019 09:18:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ED4D328BB7 for ; Thu, 25 Apr 2019 09:18:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E197028C2B; Thu, 25 Apr 2019 09:18:57 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 94B4028BB7 for ; Thu, 25 Apr 2019 09:18:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=j3szxLNpgKIjdtd4iq4wl4+Y62GuqAshQczhPrKl40Q=; b=N0T/eiQC9HioEs yxDUMItVRsR/Iy1YrInks/d7AnJVR5YR6xIwHgnOwYddD+4NUGU6rRbUznm+cNLCE5Lhfzx6ptEKd R0STXtGKQ5YtgsSReYPf6SQMLtae7BfGeKH3zuX6gVWkVyZZdW3HfivmfivVml9kWuSU6LzwtItGT gNZCSL1f9JJGAiSi8ey3njJsH4FVxZG1A3D9bR5QKf2oihxTB2tdkPDHr8Lv3VJT3tgaI4OUg5Ezw p5RdnXpFkBsGEBd0A7GxLIBiQiEIc1YZ/OdLK6H0ThA2zzWWzXp6YdtnnSZre3KfnQke0sEv0Sojg kWK6o0AVfWEsVQw/E9qQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaWr-00024I-Kz; Thu, 25 Apr 2019 09:18:53 +0000 Received: from mx07-00178001.pphosted.com ([62.209.51.94]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaVn-0000iu-0w for linux-arm-kernel@lists.infradead.org; Thu, 25 Apr 2019 09:17:51 +0000 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3P91RM6023615; Thu, 25 Apr 2019 11:17:40 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=STMicroelectronics; bh=0/wuEmKjJOSd230MuGusU1DgsuWoQ281XaTZzSew2DI=; b=Lt3fYGgMEf3AZV4wmvBC7J/cXQ/kQYjVqDw2uMA8HXAY/uZiRq4ESubcSaxHabMMTqL9 M7j6abAy7U7GvkdkAaZhDR1OWYn9b1BopV+Ac/bjVYJngo8laVU7d7UjE2wdw29Vlqfh HVJ7ox5Bje7wFTLdahtqRDPMJSRkeSIrrbQ5HNIe/5tO3crXQU9nX+ouoUHtWD67OnW9 /b+tU15K9HXwfoxsae0/uryyrjgm87ukjEhAKy+EA5MfmnRWqs7ifS6uH82pGn+XnD3L y/YCGfM2/n06JDp/14ZUfi0KFExVuFwNTiiEe1tBQonCu5wXF4CbmSzbBx0lq6iqxMQT dw== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2rys6s2m2w-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 25 Apr 2019 11:17:39 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 02F443F; Thu, 25 Apr 2019 09:17:36 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas22.st.com [10.75.90.92]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id D8C7D1615; Thu, 25 Apr 2019 09:17:35 +0000 (GMT) Received: from SAFEX1HUBCAS23.st.com (10.75.90.47) by Safex1hubcas22.st.com (10.75.90.92) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 25 Apr 2019 11:17:35 +0200 Received: from localhost (10.201.23.25) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Apr 2019 11:17:35 +0200 From: Fabien Dessenne To: Ohad Ben-Cohen , Bjorn Andersson , Rob Herring , Mark Rutland , Maxime Coquelin , Alexandre Torgue , Jonathan Corbet , , , , , , Subject: [PATCH v2 5/6] ARM: dts: stm32: Add hwlock for irqchip on stm32mp157 Date: Thu, 25 Apr 2019 11:17:22 +0200 Message-ID: <1556183843-28033-6-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> References: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> MIME-Version: 1.0 X-Originating-IP: [10.201.23.25] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-25_08:, , signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190425_021747_588482_41C075F6 X-CRM114-Status: GOOD ( 15.17 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Benjamin Gaignard , Fabien Dessenne Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Define a hwspinlock to be used by the irq controller driver and the syscon driver. Signed-off-by: Fabien Dessenne --- arch/arm/boot/dts/stm32mp157c.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi index 824d7e1..417bdf7 100644 --- a/arch/arm/boot/dts/stm32mp157c.dtsi +++ b/arch/arm/boot/dts/stm32mp157c.dtsi @@ -921,6 +921,7 @@ interrupt-controller; #interrupt-cells = <2>; reg = <0x5000d000 0x400>; + hwlocks = <&hsem 1 1>; }; syscfg: syscon@50020000 { From patchwork Thu Apr 25 09:17:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabien DESSENNE X-Patchwork-Id: 10916373 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 56195161F for ; Thu, 25 Apr 2019 09:18:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 45A1228BB7 for ; Thu, 25 Apr 2019 09:18:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3998728C42; Thu, 25 Apr 2019 09:18:30 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D48EE28BB7 for ; Thu, 25 Apr 2019 09:18:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=VKdU23F015B6PpzLsKOF819tLb/m43XQ3qEW14qaCM0=; b=cZtpl4nZNtE067 bkq66wxvOn2HGR2qOUx/vcN24/2z/duCPsk0Lv+lHQJ0eJVxArVHUseYydCUPnobd/SEi4km+Sxcu C1y0rMM7p785olZqKa39j23k28xZ32ml7ZztNfFdfxghfILj74dWaewKssS1KJUBJQoV7gtPGE+zu wh4nj5x7O07aRp+KIeEz7tpSUg5NSUvx455OvI8+vm0F0bfjtBvzg1IvDY8Sa4jB8MTyrPVb6adCF I6jG+vmgZ6wnLETptdl1hT//DqgbtCl3hh9wr7TgNsMp/0aHuusPA01O323eYYK6VIyEfvb1iLgon XBc95JGvbsEqzcPFwJqA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaWM-0001Mc-Oe; Thu, 25 Apr 2019 09:18:22 +0000 Received: from mx08-00178001.pphosted.com ([91.207.212.93] helo=mx07-00178001.pphosted.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJaVk-0000hD-CT for linux-arm-kernel@lists.infradead.org; Thu, 25 Apr 2019 09:17:46 +0000 Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx08-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3P98EbV001148; Thu, 25 Apr 2019 11:17:38 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=STMicroelectronics; bh=TB3BkgmyReUhhLwwZP6E0LuWO4jA3RAmt5KETLnSFmk=; b=erSsRncWHfTfgt1hSBbJVJkg4qpjxVOYOW155egY+s/7bfch9x6ovQd99jhKgW32hzAp iOo04rFy+9NpvhSA9Bf/HKtFOxlYSA8oxTdfiL8j/uxo5sACisdBXQdSJ0p30mfZ6xTn D9EeRrmLENOkU5ioixzzmPYz2VR8+ds33mPOZsUKLDNKl4Hd+k3MZNdxfanzD0GxcgI5 2PO4ZJhyLNtwEsD8Smktfsyc7kGm6g9leXkczQgnbzNqBLYB/7mTMtZ/Nb5qJTJ/Mp0k rVx+HW3073yt3Vd3rTX3lc5HvKjjpxRAifn/qO7b66qn2Pk4g4EFysbtejs/sZi7K0wv BQ== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-00178001.pphosted.com with ESMTP id 2ryrj6cabb-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 25 Apr 2019 11:17:37 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 2B9B83A; Thu, 25 Apr 2019 09:17:37 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas21.st.com [10.75.90.44]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 0B409161E; Thu, 25 Apr 2019 09:17:37 +0000 (GMT) Received: from SAFEX1HUBCAS23.st.com (10.75.90.47) by SAFEX1HUBCAS21.st.com (10.75.90.44) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 25 Apr 2019 11:17:36 +0200 Received: from localhost (10.201.23.25) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 25 Apr 2019 11:17:36 +0200 From: Fabien Dessenne To: Ohad Ben-Cohen , Bjorn Andersson , Rob Herring , Mark Rutland , Maxime Coquelin , Alexandre Torgue , Jonathan Corbet , , , , , , Subject: [PATCH v2 6/6] ARM: dts: stm32: hwlocks for GPIO for stm32mp157 Date: Thu, 25 Apr 2019 11:17:23 +0200 Message-ID: <1556183843-28033-7-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> References: <1556183843-28033-1-git-send-email-fabien.dessenne@st.com> MIME-Version: 1.0 X-Originating-IP: [10.201.23.25] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-25_08:, , signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190425_021744_758067_AF4961C7 X-CRM114-Status: GOOD ( 13.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Benjamin Gaignard , Fabien Dessenne Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Declare a shared hwlock to be used by all gpio / pin controllers. Signed-off-by: Fabien Dessenne --- arch/arm/boot/dts/stm32mp157-pinctrl.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi index 6b3a9c6..9fd562a 100644 --- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi +++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi @@ -14,6 +14,7 @@ ranges = <0 0x50002000 0xa400>; interrupt-parent = <&exti>; st,syscfg = <&exti 0x60 0xff>; + hwlocks = <&hsem 0 1>; pins-are-numbered; gpioa: gpio@50002000 { @@ -424,6 +425,7 @@ pins-are-numbered; interrupt-parent = <&exti>; st,syscfg = <&exti 0x60 0xff>; + hwlocks = <&hsem 0 1>; gpioz: gpio@54004000 { gpio-controller;