Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp470337pxx; Wed, 28 Oct 2020 09:04:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx+PSS48nJGFsSX9mNHI3VUAIiNZT+Z3EZuZQ1R42xO4em3Hh/YZ3ZAQ39Sscw2SbLMSePW X-Received: by 2002:a17:906:2649:: with SMTP id i9mr8618292ejc.449.1603901063190; Wed, 28 Oct 2020 09:04:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603901063; cv=none; d=google.com; s=arc-20160816; b=gb2sqCG0voQ0uWheNP/onZL8PJzF12s/ukYuh/JcU9VHElhFVwRQjZKvN93H2zk1Rp GCg7SJlo9C3LF9WUEX9CuZOMzjqQQ9FeXgMvbZAdEX87k/vJazJDMn33uvvVkOKrJEx/ U+vpR9Ut4+S84TUj3EH4AqcOBuDFIru4jak1+cwijZaDrBOqDJk/PKzlRiJniJUp9E0T xAyzF5TPAoPnZ19OQbYQ3P8z0rjcUAcTYe1bRni0KOi/FAb5PtyMh5pfX0mtqbCdTWdc pY4b0gYzxcADhO5iFaO3TXetT25w9B1Y8T6yWg56Q6AQ/u3yO//+yEo6oRWq7ZEUMMyu UCBQ== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=5mj3QCkXKlH1dYkG9XqaWNkx+VyakBe1gN/6as0Oc7o=; b=ACgihThS6j5Gc+3szQWmDF9/eU+WQ8n+jve0IkVG0Kb9FXVcCorMiJZB5tpJM9gETR FsErjAJ4ks9CAWEHN6Xfaf71k8jMHQ8JmHgYPv8GlgVEFCqai+T2xWPlfEWkoxINJfiG SJBKmKCnx7rQmKuuzffWThJOBWbCR1TEyWxxHQlPsCiiqKUHyO6/cSbDA4B8Z0Z7ZxXm MOBAxacuoAtyDEXofdvaWJx7hK0Y13+O+VKzW6VQNHMp0PRNPKvO7A9hxrbGKOjc9A3z KPgBc2BQb3hpuA6ac1Ebrp16IzaXX+h+8DsxB9wqLq57SuFBp6porHGC0dehYTExI4A6 FMPA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=A1SqBtxw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l12si2820211edk.163.2020.10.28.09.04.00; Wed, 28 Oct 2020 09:04:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=A1SqBtxw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1814644AbgJ0Q6D (ORCPT + 99 others); Tue, 27 Oct 2020 12:58:03 -0400 Received: from mail.kernel.org ([198.145.29.99]:45678 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1790464AbgJ0PKD (ORCPT ); Tue, 27 Oct 2020 11:10:03 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3552821D24; Tue, 27 Oct 2020 15:10:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603811402; bh=r0xZ+MyCwCIzzwRBd9HQIigHLDj6HOeCaat5FOkT96w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A1SqBtxwQOE96obPiKE+pT6DwNmHYuB3wbNMqyzptEcWMkluNfCee5694qdz9r6TV 97VDAkFXJOr7nf8tz58N74TpvHACUu7StDO/VmWiEAI2Dzma8bC7Sd1XTbnqiqGWGZ ZvHM4ncATxZ2wojKqlHK6uowccPI44KKbDrw/nEY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Claudiu Beznea , Alexandre Belloni , Stephen Boyd , Sasha Levin Subject: [PATCH 5.8 450/633] clk: at91: clk-main: update key before writing AT91_CKGR_MOR Date: Tue, 27 Oct 2020 14:53:13 +0100 Message-Id: <20201027135543.823316244@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135522.655719020@linuxfoundation.org> References: <20201027135522.655719020@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Claudiu Beznea [ Upstream commit 85d071e7f19a6a9abf30476b90b3819642568756 ] SAMA5D2 datasheet specifies on chapter 33.22.8 (PMC Clock Generator Main Oscillator Register) that writing any value other than 0x37 on KEY field aborts the write operation. Use the key when selecting main clock parent. Fixes: 27cb1c2083373 ("clk: at91: rework main clk implementation") Signed-off-by: Claudiu Beznea Reviewed-by: Alexandre Belloni Link: https://lore.kernel.org/r/1598338751-20607-3-git-send-email-claudiu.beznea@microchip.com Signed-off-by: Stephen Boyd Signed-off-by: Sasha Levin --- drivers/clk/at91/clk-main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/clk/at91/clk-main.c b/drivers/clk/at91/clk-main.c index 37c22667e8319..4313ecb2af5b2 100644 --- a/drivers/clk/at91/clk-main.c +++ b/drivers/clk/at91/clk-main.c @@ -437,12 +437,17 @@ static int clk_sam9x5_main_set_parent(struct clk_hw *hw, u8 index) return -EINVAL; regmap_read(regmap, AT91_CKGR_MOR, &tmp); - tmp &= ~MOR_KEY_MASK; if (index && !(tmp & AT91_PMC_MOSCSEL)) - regmap_write(regmap, AT91_CKGR_MOR, tmp | AT91_PMC_MOSCSEL); + tmp = AT91_PMC_MOSCSEL; else if (!index && (tmp & AT91_PMC_MOSCSEL)) - regmap_write(regmap, AT91_CKGR_MOR, tmp & ~AT91_PMC_MOSCSEL); + tmp = 0; + else + return 0; + + regmap_update_bits(regmap, AT91_CKGR_MOR, + AT91_PMC_MOSCSEL | MOR_KEY_MASK, + tmp | AT91_PMC_KEY); while (!clk_sam9x5_main_ready(regmap)) cpu_relax(); -- 2.25.1