Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2694235pxb; Tue, 23 Feb 2021 13:13:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJw/fhFbau2exVK04Xa4shSHDdEm/0KNiehFnRg+7tzdQHI/7Zy+jvnEH3zrj1np+c35oAT3 X-Received: by 2002:a50:cbc7:: with SMTP id l7mr30053390edi.134.1614114797876; Tue, 23 Feb 2021 13:13:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614114797; cv=none; d=google.com; s=arc-20160816; b=iPmC35iwxLzawaIm4awR+KOCCNqGha7V39Vto7izfiXWs+GzvRSy6Ea8KcepOnEQel rh6OmaZH8F88PKAqsGq+jLFnNsCyEd22Lda932ObsNw+BZ3edI/GPPCb79lPAQrwS6VX pTgn6VG0paCqb+MQoN6Xq+/QpC6x/5WwLwR0lsXS8F1R4lVg4DvOqenmUUWSOFhzxIlX uoxmW4dowxKx5o0grTCejcamlc/8gpfDtEb0tskzWB2LiQuwD4LDaPPM2aqAcsxQBkkW kit5Qta+ZMY9zB9oCXmQvziSqR95Zq9H2Hmy0NPPzbN3UuJE4UHdi23rCFx8Gk8ii7Ci yzkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :to:subject:dkim-signature; bh=uXkbv0Al38d94LWcxq8Bj93Z4Ugv3dEG44H3RtuFnOE=; b=AnW7TuO9c/M7XZoWmHa7U8zD96f/+rrs+N0kmiy8e3d/Z6zUYrmpWtCOeX1EvkdnUh 5uOrETqEDM1a34YmlfI7Tcz/4byDjjNMuGL0FLn72CxYmqSn2v6PkRrlGUPNUPd9nRut OQweSvOWzRWMnzyVV/FWTlRbU5KWp9Xj3PFxs00bwCD5OEEAS6RJl2FYKvWzZlg9fuMk 9KxxFAsuEeeApt+GWI5KqQMlixGTJIqM0zZtGfY6eEWNmNa7JUbBczt2z2RWCzAQBpW4 VQx3wwoY/K4ooBjmqK911qJT71a+GdmBsn8uNKXyKTXj7bQUvCfaQ1Mthr42nR6PlBWu lQTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=pGh6RYMl; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x18si14207142eji.400.2021.02.23.13.12.29; Tue, 23 Feb 2021 13:13:17 -0800 (PST) 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=@gmail.com header.s=20161025 header.b=pGh6RYMl; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234276AbhBWUoV (ORCPT + 99 others); Tue, 23 Feb 2021 15:44:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232986AbhBWUoR (ORCPT ); Tue, 23 Feb 2021 15:44:17 -0500 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1C23EC061574; Tue, 23 Feb 2021 12:43:37 -0800 (PST) Received: by mail-pf1-x42f.google.com with SMTP id v200so1134243pfc.0; Tue, 23 Feb 2021 12:43:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=uXkbv0Al38d94LWcxq8Bj93Z4Ugv3dEG44H3RtuFnOE=; b=pGh6RYMlhc6kyjOAOOFIX2Adyc44RM6rHr4ercnal6CoIwhMRDtGuqpp0iGAw2I+oE yPtqeGXDtJwtkGXe5j0ZkNOyjegOOz5eqZuqBdwWuqoDwP+qTV+mHHoq2CJSC3JfjNNT m0GmnBLzC2bquGACL+8yTOpFB67GFDtRZPqeHZO0JIIfnq/x12utBjt4aF7V8H+7F1At 1bt6mm2sdzguqyLs0aZ0XOruUv8MK2URT7Ez85OYRK+V+VRA/nMl+vijz04jnIitcQ3w STVHAqmCieHuhLcG5Q7IbdX8vjG/9Xw4+56FVIy5o+Jxn/730Z4LZbJkNlA9UHq03bne K2zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=uXkbv0Al38d94LWcxq8Bj93Z4Ugv3dEG44H3RtuFnOE=; b=cvtkELpLTq2w3JO9+cmyVwfo6Lj/smGwDYr31QKqHw6P9rX+KCK8718AlJrKTw+mYi HEz1lnpURE/jsLqiI+t78LcYImRSBxjZlAxclBWeFG/gHOXLljURHxIES8oS61YayAZY TC5HZIAzGrAUKZ3YaGzcbCpnzr4A2Lx+gyH1hn6gS+v8rt4RHwCu8lMYQoy6XXCmL8wk TnylZGVv85Ya9T8LYiyXx3IF9pU1JnARvPsfRk4IaUS/uYq6cuE9GI6sGxrV3mDJ0IvS Z0v6mv1JQCqcavK2flM5LTZ+ssYS6ukssfV7TV2SPJsoddtcO6T7xLDms3tIiWZUk/mV 88UQ== X-Gm-Message-State: AOAM5329AvEfT1/AzS1JN+LCJYG34FY+DXXplvx9VJDts+Y2xzY6xHGZ MRsUizBic3II1XrX0JmeupH+KB6W19I= X-Received: by 2002:a65:458b:: with SMTP id o11mr10437791pgq.416.1614113016209; Tue, 23 Feb 2021 12:43:36 -0800 (PST) Received: from [10.230.29.30] ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id h18sm19373pfo.112.2021.02.23.12.43.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 23 Feb 2021 12:43:35 -0800 (PST) Subject: Re: [PATCH v3 2/2] hwrng: bcm2835: add reset support To: =?UTF-8?Q?=c3=81lvaro_Fern=c3=a1ndez_Rojas?= , Matt Mackall , Herbert Xu , Rob Herring , Nicolas Saenz Julienne , Florian Fainelli , Ray Jui , Scott Branden , bcm-kernel-feedback-list@broadcom.com, Philipp Zabel , Mark Brown , Guenter Roeck , Bjorn Andersson , =?UTF-8?B?TsOtY29sYXMgRi4gUi4gQS4gUHJhZG8=?= , Rikard Falkeborn , Stefan Wahren , linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20210222194510.14004-1-noltari@gmail.com> <20210223170006.29558-1-noltari@gmail.com> <20210223170006.29558-3-noltari@gmail.com> From: Florian Fainelli Message-ID: <0efc029f-dbb1-198c-8a1e-6bc85f5cc6ee@gmail.com> Date: Tue, 23 Feb 2021 12:43:32 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <20210223170006.29558-3-noltari@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2/23/2021 9:00 AM, Álvaro Fernández Rojas wrote: > BCM6368 devices need to reset the in order to generate true random numbers. > This is what BCM6368 produces without a reset: > root@OpenWrt:/# cat /dev/hwrng | rngtest -c 1000 > rngtest 6.10 > Copyright (c) 2004 by Henrique de Moraes Holschuh > This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > rngtest: starting FIPS tests... > rngtest: bits received from input: 20000032 > rngtest: FIPS 140-2 successes: 0 > rngtest: FIPS 140-2 failures: 1000 > rngtest: FIPS 140-2(2001-10-10) Monobit: 2 > rngtest: FIPS 140-2(2001-10-10) Poker: 1000 > rngtest: FIPS 140-2(2001-10-10) Runs: 1000 > rngtest: FIPS 140-2(2001-10-10) Long run: 30 > rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 > rngtest: input channel speed: (min=37.253; avg=320.827; max=635.783)Mibits/s > rngtest: FIPS tests speed: (min=12.141; avg=15.034; max=16.428)Mibits/s > rngtest: Program run time: 1336176 microseconds > cat: write error: Broken pipe > > Signed-off-by: Álvaro Fernández Rojas > --- > v3: no changes. > v2: no changes. > > drivers/char/hw_random/bcm2835-rng.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/char/hw_random/bcm2835-rng.c b/drivers/char/hw_random/bcm2835-rng.c > index 1a7c43b43c6b..1b93a896d8e8 100644 > --- a/drivers/char/hw_random/bcm2835-rng.c > +++ b/drivers/char/hw_random/bcm2835-rng.c > @@ -13,6 +13,7 @@ > #include > #include > #include > +#include > > #define RNG_CTRL 0x0 > #define RNG_STATUS 0x4 > @@ -32,6 +33,7 @@ struct bcm2835_rng_priv { > void __iomem *base; > bool mask_interrupts; > struct clk *clk; > + struct reset_control *reset; > }; > > static inline struct bcm2835_rng_priv *to_rng_priv(struct hwrng *rng) > @@ -94,6 +96,10 @@ static int bcm2835_rng_init(struct hwrng *rng) > return ret; > } > > + ret = reset_control_reset(priv->reset); > + if (ret) > + return ret; For symmetry, the remove path should call reset_control_rearm(), assuming that .reset() is what you want and not .deassert()/assert(). -- Florian