Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2552521lqp; Mon, 25 Mar 2024 02:18:15 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVmd22H1u1ejBHZ7RBwj9XzcFHB9ADCxSvvAR4CY9j2szUwKpNeO/9mnNf5nC/JWJObHdm8b4iHamcIdsH1hJ3b+bd7hw6ECFxMCyIU9Q== X-Google-Smtp-Source: AGHT+IHAbg2JhIg/dPVehYiE4MUcZ2u6cMzW4FpRDb/Re+Tl9AgvrS4P7WSDwTeaJZ/B40iWAYpm X-Received: by 2002:a50:d594:0:b0:56b:b66d:5bfe with SMTP id v20-20020a50d594000000b0056bb66d5bfemr4227682edi.31.1711358295757; Mon, 25 Mar 2024 02:18:15 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711358295; cv=pass; d=google.com; s=arc-20160816; b=S4nDE6gfpkVSYUTfsuG1mh/VOEUe83CRIJ50r22bo6jy5fBKcyQyg5DST6gWGRF/qg bVMnV5HwR/ZoyFcvFS3SLeBJcINkPhTAl02iBYf9USV0o8R9IQ2PjTmVbvfSb4YnYwEC 6+1uaHDS/toZ2A4B/Tv0EJs065BgYcs1lniNrurddhQ4XDqa/uOyuXDA+J4pOHrRj9iz U1MPGOSJXfSDodI+zqDug31tGtj9gNXIyU/VF3ugdTWQkdluUunjBKGo/djdGyMs7xKB 0YI67Q5fQ3WND+mnFdhp1JTqa7vq/oZ39GiNd650Z6nd1P7L2mNuPgVHpgXxw4WehiF2 5nyQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Es4RgneZPqQBkMI9e8gpAuOBitVejHvWkPL+MaRx1NQ=; fh=L5Dehiwb5F2xsbEFxQM7IYK0VfY2q843apUnamSEidI=; b=f7bzw6hVpZh0RtChgUtidM7Yn3+B1eMAOx9Yzzg9ycY3CbqDqammB34HwF0XjQBh2s +Tdrw3kCaYxF5fe6zpL1Lf5bMVueCND1RBwPoSXGQx1k2zKLgT3tnKODt3fTHawqUW/6 eCgOuutOEIjy0q03MlrNNcMHmVZR6GaF25nwE+1CtpaZ770r5H4mCpoOIu5aiLYi7dOn iIaiFNv19eZT11QCuUsLNh1EQ7SpEcZgIKiRa8DLk9OiKy11Z6+1dSIvrn4PJAjUc6om z8OUMlUiXum1KheSmU4F2a737O+7aUdySsuRe615yWCOWZo5EB+wzsI57iWlnJPyuzx0 QaBQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=QtJo5jy+; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115694-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115694-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id eh13-20020a0564020f8d00b0056bd92055e1si2467142edb.616.2024.03.25.02.18.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 02:18:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-115694-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=QtJo5jy+; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115694-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115694-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 641B51F33119 for ; Mon, 25 Mar 2024 09:08:07 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 13ACC259241; Mon, 25 Mar 2024 02:54:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QtJo5jy+" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1120420E64E; Sun, 24 Mar 2024 23:07:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321662; cv=none; b=JeWoyRCZGNRNwcOszRiASkf/oNvQuD4soNo+g97vEd4nJY6AxuSdQNx53TWwrp2OYefmreugHpO8LqwG9gzoitHuwS0AEMJB4DwcH/yIFalncmiyUOHu3SWdyqGhexsDUUB3NdJGRRQ27OVT2QlfMM4Jp2aHc2omMNNZbwBlqAw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321662; c=relaxed/simple; bh=pCc5yRqiW7zrM8WJbTTAP0OTtZg+beqdp63g2hcZTaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QA0QkUpY42nZxdaTNvNBJZxhkJP89gg/oQjbvHBCCiij0LCZrLa8UsJOWUt2P0M5Y7X3rGF9Ehd/ewOlCP9w2Qy6dUyGkjXA15H0gJRhIyZVkwe/SosRl8CxrYnqsxmv+DXNOTr/E9Pd9zA0Equbvv7ErC5ua0rDgbszdX0txxk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QtJo5jy+; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C9A2C433C7; Sun, 24 Mar 2024 23:07:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321660; bh=pCc5yRqiW7zrM8WJbTTAP0OTtZg+beqdp63g2hcZTaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QtJo5jy+fpsOkDMrS70Ky2SnY89HtbzRPJ7EgTjO8twTt7KHfkvXP14klnpgs/Xgv 45+AYm0sNYQ9xMQ63LCJmxN6szpj3sGeuMbe7fUTxK6HFmO6cpreTccUkCp7JvMZIq dpDgNueaTMvnS1O1vnvCASUQRnlCbBECTW/5JopnJli27dZunK+83tZ4V1TO+w7w/a Z3kkPjtOlG3WUFAsmCx2BhOmhal7KSjj89pr2FRk26Sgf2BBny2CoJuV3L5vLpXUTo c7XLNJouW6LMzUBqvj3nR63SA+qfjdTO3Csujm71mR6JiHnE70NC9XLOWdEfmDfcvM 0blUroa/CWAfA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Konrad Dybcio , Bjorn Andersson , Sasha Levin Subject: [PATCH 6.6 390/638] clk: qcom: reset: Ensure write completion on reset de/assertion Date: Sun, 24 Mar 2024 18:57:07 -0400 Message-ID: <20240324230116.1348576-391-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Konrad Dybcio [ Upstream commit 2f8cf2c3f3e3f7ef61bd19abb4b0bb797ad50aaf ] Trying to toggle the resets in a rapid fashion can lead to the changes not actually arriving at the clock controller block when we expect them to. This was observed at least on SM8250. Read back the value after regmap_update_bits to ensure write completion. Fixes: b36ba30c8ac6 ("clk: qcom: Add reset controller support") Signed-off-by: Konrad Dybcio Link: https://lore.kernel.org/r/20240105-topic-venus_reset-v2-3-c37eba13b5ce@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin --- drivers/clk/qcom/reset.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/clk/qcom/reset.c b/drivers/clk/qcom/reset.c index 20d1d35aaf229..d96c96a9089f4 100644 --- a/drivers/clk/qcom/reset.c +++ b/drivers/clk/qcom/reset.c @@ -33,7 +33,12 @@ static int qcom_reset_set_assert(struct reset_controller_dev *rcdev, map = &rst->reset_map[id]; mask = map->bitmask ? map->bitmask : BIT(map->bit); - return regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0); + regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0); + + /* Read back the register to ensure write completion, ignore the value */ + regmap_read(rst->regmap, map->reg, &mask); + + return 0; } static int qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id) -- 2.43.0