From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9C687EB64DA for ; Thu, 20 Jul 2023 15:13:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type:Cc: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: In-Reply-To:MIME-Version:References:Message-ID:Subject:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=bjnvs9ZBjNf+9LTk8Hx3SkdtRQGWZ1C9p0t/1Nmph/4=; b=vjvY24P7wQV96iY98bxy7vCv3T +AjMOZUYP8xit215mZxZpDeHenUNRruhZSwkvFCDuNwVRd0GDpfI1axfGt0csHlORK5qYfunXihpX IEXfQFCxxU3kKB4oZr1BTjqwWJ7EpYyvuNqbHnVD7rIUta9JW2BkIfyqPBoMhhxT6cuWSKd+J2KFQ pbB4DwznwQEhUwE+tKX/saNb9RD55yC+2JFo6KrRqfGG6aGMzMyhe3tvOuUoiUj9ArCECk4jBR17B LmqL20wgq7d9yw9XZbA5zvR8bRkts4Qd5CpxTV3rAh9PHewI/UtLr4x+RjXITUV6Qsk2hlP7qFg6y Jbp6Tuog==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qMVKi-00BVZf-1C; Thu, 20 Jul 2023 15:12:48 +0000 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qMVKf-00BVWh-2C for linux-arm-kernel@lists.infradead.org; Thu, 20 Jul 2023 15:12:46 +0000 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-9928abc11deso155650666b.1 for ; Thu, 20 Jul 2023 08:12:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689865953; x=1690470753; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=XFJEJfVpFk5Mke3XMuIT34mqSQARKV4kKBwK8j2IXu4=; b=iq//Lmxn0r2gu7Cu5waSz+pH9vobIOPBQMyTT28JnY5/ZO0l2Qj5h17BHFgbuXGkms 29t5IZdweRiOTsKkM5PqybqWW2LaKt8Bi8j971lAKEwl0KJzUtzC/7oGrWfa4iTi0J8K zfkX5mf3hSSKy4tiAzUUsWLbhIJjtzX5bXrS45S5cDnl5c1TEYybPp7/BkbkBFcfXnoy BJNTjM9W7wx0hNAWt2hDjWf3pK52alnl92WiU8HWKeOjEDWXa/MWQJru40vl5ZxaEFnw h3g3iUgZahcv4vrK1HvUdTQu5XkMKqCw/Hh6AvQOGfkeX8UN64twJsPXtXVbqYzF/jQr 9MJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689865953; x=1690470753; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XFJEJfVpFk5Mke3XMuIT34mqSQARKV4kKBwK8j2IXu4=; b=cyAzKv1a20/1ffxD+RC8BQAGc3BxqS7L6PUYPYPrOkW2A4tMKWE+NlAH7ZYIz4NFEK JfjYTxfwZX3XwkIhmL1eI8O+aKi7/Z36dGhfahfKwpc684B8MIrOdsFXSvHE00VeP0a0 VUtx0WqdsgdlYPNYyB4kArA0XeLD8JNZxEhsSOSFPJzeK69FU4HQqEDUTCHS2eBxauWf ZnG/plGSvYeuAv/srGIDwjKgDCQHX28Qo3cb2agkX7c7WGGHr4e0Fp0QlvOjvrH000EP yf4AhMJNBxelfy4mBFS/ydmObcekHhcrZH6IV3h5+HP1d7TF6GYkqqbPfCmYV3U1S5tG aTpA== X-Gm-Message-State: ABy/qLYhqtDw8H1c9SOZK1GMqYkLrLkf4e/k6Voo4lVb3UNMJ1oPp3uY mhK1wvFoP32hYLGOfAjcWs4= X-Google-Smtp-Source: APBJJlFDh+w+xf9IZzvxaRzdPrj0Y6oiFfDzO7UfaVC8mmJSJpVvkRyLEbSsSDeUi3lSfKUpnkHeTw== X-Received: by 2002:a17:906:2403:b0:98e:1484:5954 with SMTP id z3-20020a170906240300b0098e14845954mr4747361eja.71.1689865952675; Thu, 20 Jul 2023 08:12:32 -0700 (PDT) Received: from orome (p200300e41f1bd600f22f74fffe1f3a53.dip0.t-ipconnect.de. [2003:e4:1f1b:d600:f22f:74ff:fe1f:3a53]) by smtp.gmail.com with ESMTPSA id v19-20020a170906489300b0098e2eaec394sm837966ejq.101.2023.07.20.08.12.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Jul 2023 08:12:32 -0700 (PDT) Date: Thu, 20 Jul 2023 17:12:30 +0200 From: Thierry Reding To: Guiting Shen Subject: Re: [PATCH v6] pwm: atmel: Enable clk when pwm already enabled in bootloader Message-ID: References: <20230716020652.18557-1-aarongt.shen@gmail.com> MIME-Version: 1.0 In-Reply-To: <20230716020652.18557-1-aarongt.shen@gmail.com> User-Agent: Mutt/2.2.10 (2023-03-25) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230720_081245_718562_DFC176D6 X-CRM114-Status: GOOD ( 25.22 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-pwm@vger.kernel.org, alexandre.belloni@bootlin.com, linux-kernel@vger.kernel.org, u.kleine-koenig@pengutronix.de, claudiu.beznea@microchip.com, linux-arm-kernel@lists.infradead.org Content-Type: multipart/mixed; boundary="===============5881505712948889745==" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org --===============5881505712948889745== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="04hiCDAIozMFNoR9" Content-Disposition: inline --04hiCDAIozMFNoR9 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Jul 16, 2023 at 10:06:52AM +0800, Guiting Shen wrote: > The driver would never call clk_enable() if the PWM channel was already > enabled in bootloader which lead to dump the warning message "the PWM > clock already disabled" when turning off the PWM channel. >=20 > Add atmel_pwm_enable_clk_if_on() in probe function to enable clock if > the PWM channel was already enabled in bootloader. >=20 > Signed-off-by: Guiting Shen > --- > drivers/pwm/pwm-atmel.c | 47 +++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 45 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c > index cdbc23649032..fc89282db645 100644 > --- a/drivers/pwm/pwm-atmel.c > +++ b/drivers/pwm/pwm-atmel.c > @@ -36,7 +36,7 @@ > #define PWM_SR 0x0C > #define PWM_ISR 0x1C > /* Bit field in SR */ > -#define PWM_SR_ALL_CH_ON 0x0F > +#define PWM_SR_ALL_CH_MASK 0x0F > =20 > /* The following register is PWM channel related registers */ > #define PWM_CH_REG_OFFSET 0x200 > @@ -464,6 +464,42 @@ static const struct of_device_id atmel_pwm_dt_ids[] = =3D { > }; > MODULE_DEVICE_TABLE(of, atmel_pwm_dt_ids); > =20 > +static int atmel_pwm_enable_clk_if_on(struct atmel_pwm_chip *atmel_pwm, = bool on) > +{ > + unsigned int i, cnt =3D 0; > + int ret =3D 0; > + u32 sr; > + > + sr =3D atmel_pwm_readl(atmel_pwm, PWM_SR) & PWM_SR_ALL_CH_MASK; > + if (!sr) > + return 0; > + > + cnt =3D bitmap_weight((unsigned long *)&sr, atmel_pwm->chip.npwm); Tiny nit here: not sure if that cast is safe to do. You've got a 32-bit variable, but if you cast &sr to unsigned long * on a 64-bit machine it would cause hweight64() to get called and that would then read 64 bits =66rom a 32-bit variable. This probably works most of the time because we don't read any of the upper bits, but it is strictly an illegal access and could be unaligned as well. Should we just turn sr into an unsigned long to be safe here? No need to resend, I can make that change when I apply. Thierry --04hiCDAIozMFNoR9 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmS5Tt4ACgkQ3SOs138+ s6Eyyg/+IrDQoD75AWJiosESNAMWjiyDEFKB6A6+L49742LeepmeKIDeRBIe/Kmt xxg6Ysa36q22YLb91dSMHk8fGJiDyYWz29H7WBSM64o9nrDEEr7cBOMEQDCl1pA9 AHbAseMMd3RgGWzWu8WwZUrI8sTUBviqTBRi5uKgKap9+PwUZV1SF4ffVHIXiXxF M8K763aA7TxtS36IPRJdHO7g+FL0X/IRG7+7CpAk7AIYJCApuTlyQkSEqLJbgkG3 lyT5UK+wCToazgLIAQX2M79zQOqOmyu5xiNUC40XdEZxb1GCmVy/ey47cPp76+JE m/zhEJurS+kxBZgmHik9wSngo1YU3EbHsyrwDc1FPJcGsCmmA8xA+m1UYujEYUzU +eOaw8a8zZICXDsWwx/q3P+E0tOPVV9jIqg59gKfLu/l/gaP5tU7VMdTjM1ETVNh LX9NQtc6wt4w9iryjJKvs4ItQ4oxRVK+PNVwHGn7GM9koeeEozan1QHLcj8u4G3H mJQTPd6uSKzkw5hgOWY4DRO+38sAZx/9v+1HaGg6hPsufGGYVU7+Q/U77PsHBuJF c/CCQ4y5zBREWpslBVT/I7hfmULQgC2jMP7A+xbUUy0ymquTXM77vtdkm5QiZ2bL GTpTK82piENd9PQWFzLbjgYbJ33LhlTdRbLtGqwndFEBpC9myxE= =DeRZ -----END PGP SIGNATURE----- --04hiCDAIozMFNoR9-- --===============5881505712948889745== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel --===============5881505712948889745==--