Received: by 2002:a05:6602:2086:0:0:0:0 with SMTP id a6csp4407443ioa; Wed, 27 Apr 2022 03:13:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzxS3s/aCZ8rrgxNVGyaq7rlExqxPX8ARt2Ls8LW2TVGauANQFx6cBaYi3qIDSpMnSehrjF X-Received: by 2002:a17:902:e748:b0:15c:e3b9:bba3 with SMTP id p8-20020a170902e74800b0015ce3b9bba3mr22212245plf.139.1651054432667; Wed, 27 Apr 2022 03:13:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651054432; cv=none; d=google.com; s=arc-20160816; b=sX20ctH06/nOHHtKkg80d9/tRlg3+xYsu0WXBQFIaTgrtxSQJNiR4oyeqRQj9xjQSm jiEPlXsJiQUlabsAvQzI5n08AxmAAghxkqTPvX30uOOtrjKLpAdXIRfnR43tcNdt7rDE cmSmUJrr1BQ7rOoHSGFqNcTFGFRlMAKcPI7qVg6oWl0WKE4rdkmE+gVfRYjB1B5EXoQt EIvATaZL5gFsAA6kZc9wOMFQ0omYHIvm4+5IGOwMKwubrZC528qTyABsHw9RUJgGxxWv BwJ1Fh3U3I4M/vPmhjubE4Un6ynUpGIxE03ezwKfF03Ik1+Ghzx1N9rxdW0Cz9JDv9kn aF2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=JUDEUjUTq+FdQJ0iYcQ83mz7jvTfeJDCeNomTjF1Ous=; b=Lrb+gTK0Q9knpWqfcuwE9XS49e3CLbmiRWaMd3zywX18uZIWkoTkaPoATnNLa3gxeV 0ey+mCyN7QmXxwUqDrCE2sbhbNuQFwhJ6dj7R9u5vuSqRaLckM46le78PHZ99RmTVpjC TY8M64JdEQlZXlSS7hTrNrRPRjrsXCXJWAi4XfFVE6jMuJLu+7FOwoRpfYBg2iTLC/XP rM3mKxlKeJbuOjPaW0HSUBP5vCT6b3XGR0ytt+k1c3Cua+KExt8WNzWNKSN4sHHLCJVB QZGkoqGUIzOUxsdpK1TLVre1H05BGkzTAfRvtqyhFwq0zuDG0uEsN/Egt0DsfhfIe+gq vBLw== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id lp9-20020a17090b4a8900b001c79aa946bdsi5722561pjb.122.2022.04.27.03.13.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Apr 2022 03:13:52 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 00B7E328A45; Wed, 27 Apr 2022 02:35:42 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356397AbiD0A26 (ORCPT + 99 others); Tue, 26 Apr 2022 20:28:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244133AbiD0A25 (ORCPT ); Tue, 26 Apr 2022 20:28:57 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id CAA8E13F259 for ; Tue, 26 Apr 2022 17:25:48 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6F07D23A; Tue, 26 Apr 2022 17:25:48 -0700 (PDT) Received: from [10.57.80.98] (unknown [10.57.80.98]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1E0443F73B; Tue, 26 Apr 2022 17:25:46 -0700 (PDT) Message-ID: Date: Wed, 27 Apr 2022 01:25:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH v3 2/3] soc: rockchip: power-domain: Replace dsb() with smb() Content-Language: en-GB To: Peter Geis , Brian Norris Cc: Heiko Stuebner , Arnd Bergmann , "open list:ARM/Rockchip SoC..." , Linux Kernel Mailing List , Guenter Roeck References: <20220426014545.628100-1-briannorris@chromium.org> <20220426014545.628100-2-briannorris@chromium.org> From: Robin Murphy In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, RDNS_NONE,SPF_HELO_NONE autolearn=unavailable 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 On 2022-04-27 00:55, Peter Geis wrote: > On Mon, Apr 25, 2022 at 9:46 PM Brian Norris wrote: >> >> It's unclear if these are really needed at all, but seemingly their >> purpose is only as a write barrier. Use the general macro instead of the >> ARM-specific one. >> >> This driver is partially marked for COMPILE_TEST'ing, but it doesn't >> build under non-ARM architectures. Fix this up before *really* enabling >> it for COMPILE_TEST. >> >> Signed-off-by: Brian Norris >> --- >> >> Changes in v3: >> * New in v3 >> >> drivers/soc/rockchip/pm_domains.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/soc/rockchip/pm_domains.c >> index 1b029e494274..cf16ff9b73b3 100644 >> --- a/drivers/soc/rockchip/pm_domains.c >> +++ b/drivers/soc/rockchip/pm_domains.c >> @@ -178,7 +178,7 @@ static int rockchip_pmu_set_idle_request(struct rockchip_pm_domain *pd, >> regmap_update_bits(pmu->regmap, pmu->info->req_offset, >> pd_info->req_mask, idle ? -1U : 0); >> >> - dsb(sy); >> + wmb(); > > Just curious, shouldn't this be mb() instead of wmb()? > From the arm64 barrier.h: > > #define mb() dsb(sy) > #define wmb() dsb(st) As I mentioned on v2, that would be the literal translation, however there's no concurrency since this is happening under a mutex, so there's no other agent against whose accesses loads would need to be synchronised, therefore the only logical reason those DSBs were ever there at all must be to ensure that the prior store(s) have been issued to their destination before proceeding. The history implies that this dates all the way back to RK3288, where Armv7's argument-less DSB lacked that distinction anyway. Robin. >> >> /* Wait util idle_ack = 1 */ >> target_ack = idle ? pd_info->ack_mask : 0; >> @@ -285,7 +285,7 @@ static void rockchip_do_pmu_set_power_domain(struct rockchip_pm_domain *pd, >> regmap_update_bits(pmu->regmap, pmu->info->pwr_offset, >> pd->info->pwr_mask, on ? 0 : -1U); >> >> - dsb(sy); >> + wmb(); >> >> if (readx_poll_timeout_atomic(rockchip_pmu_domain_is_on, pd, is_on, >> is_on == on, 0, 10000)) { >> -- >> 2.36.0.rc2.479.g8af0fa9b8e-goog >> >> >> _______________________________________________ >> Linux-rockchip mailing list >> Linux-rockchip@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-rockchip