Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp4235235imm; Mon, 18 Jun 2018 11:22:23 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIHPhIn1su/wtFznRjt7gz3FdJSyifohxUL7LHzYAry0xu0t/H8bXnQyUWTkrqqn6g4KBEQ X-Received: by 2002:a62:b50f:: with SMTP id y15-v6mr14489488pfe.22.1529346143769; Mon, 18 Jun 2018 11:22:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529346143; cv=none; d=google.com; s=arc-20160816; b=wNWEwd+USNFb3OTEmVpLc0Ms/W8iDW0jiUpjoRls0fA3hMuOdihymHjHsRvSyYHjXI /bNu7SUazsgEQnHY3y1+vx0r+Dc1mVB6sJVn8KklpOpaUBz9a7Hg+3L+1Wi6QfmRT6VG jRb9oZW9buW3zdMoj7uiFAwboihkqdJ6T8R3AsWDQx5t+ZDMDr5m0ixcQeguwJR/3eDe a0+i8Lz60B2zPSC7fZefKpYTsMf3HtX55r8OQIX2gd8CEFRoZko+pEMzPZW1ZjcLy302 dCANiUBUdg/m1qQunBxvg2yXL4ZIykNYmynMDK4+Yl0a4oRFLHSiEjbBP097hgTE5HJW BvMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=XKF+1rlkUR2VkIsqXpnZ7spkhmjc0ANekSWfF6SmwDY=; b=KBCoy0qQXgUr4H4eFM1Yc2VR8D6q5OCZJGxAwCQt9tcYScjPLCuD/MJCuqlole+aUB 6MB8qxtQ0qJXv2YVdSLuk/vLAhgVQakjsZyWxvdegrXAeOzml2Wg3NiuVc2qTSuj20WH tkqMTZbJpfyXxv8Qswu/dbqeUJldmvopx3c8lFjeve4PhVAPUNH50w58zLCCG8j5tATC iw4Zq4T/XVwBfW+vywTwzV5/+O81akLUn60CWQiAtGhZlB8z0foDahkioCMEDmSOx0Dw +hqsJEJBsqxOjsMbVQctjsZSlnl9+XKgYFC7SL9R5XQtoN1OjuVYsy4OMsaeOX++9G5K 9cTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=IMFMHcKw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n124-v6si12419103pga.311.2018.06.18.11.22.10; Mon, 18 Jun 2018 11:22:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=IMFMHcKw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935806AbeFRSV3 (ORCPT + 99 others); Mon, 18 Jun 2018 14:21:29 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:38347 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935744AbeFRSV1 (ORCPT ); Mon, 18 Jun 2018 14:21:27 -0400 Received: by mail-pg0-f67.google.com with SMTP id c9-v6so7904591pgf.5 for ; Mon, 18 Jun 2018 11:21:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=XKF+1rlkUR2VkIsqXpnZ7spkhmjc0ANekSWfF6SmwDY=; b=IMFMHcKwAzCIy3hYEatIIQTMiW+fqhs/SQjxg0DwuNY157r5hz2eZKCEi49FL6Xoug DDv0kWmuewitQSWMGspb5BGPzkEJMcg8B90ehJuChUq8VIeWkWnucC3gIgz+urtzQt+I hTwhjXmNTVj21VkpjixnDElfuiHhbFCowAx7s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=XKF+1rlkUR2VkIsqXpnZ7spkhmjc0ANekSWfF6SmwDY=; b=Wkohf3+4Oe48dF4x17X48tq8MzFMhf6zXhR05/IvylyXs839VrVkvkCC9gyc+IodYq 3IYlsFQEieWPNW72IXFJsFZmthWay0S6T/RQas3XU4Y9082ghdKrTOautLecz8jDv8cC oD9yy96ltlyYxlmUtoc+ZFJXywgk0fVrgQvuoJM+ZG04Zbh4lmB0LRffIQsRqcQ+3DZ1 q0u+sdY2OvRhY8WUrdPBtFodpoFq58TLgM5LRhYdDep44VFhnZQMAxyxFI3bKbPuzPzi QJd1rIiw5stemAHbWmgKrCW76NrOepXlyxo7bXB/qwYT+PiAcQEazDLAkQYwQu/dgSzR dhuw== X-Gm-Message-State: APt69E0OtmOw0kL+UUVZcIXTk5wyXidnPF3WXO1fBV4xPlYpEdJgVKvr 7FdfALViPvn2Fy/t4oG6NMiXAQ== X-Received: by 2002:a63:a809:: with SMTP id o9-v6mr12236340pgf.313.1529346086528; Mon, 18 Jun 2018 11:21:26 -0700 (PDT) Received: from minitux (104-188-17-28.lightspeed.sndgca.sbcglobal.net. [104.188.17.28]) by smtp.gmail.com with ESMTPSA id p12-v6sm27109742pfi.175.2018.06.18.11.21.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 18 Jun 2018 11:21:25 -0700 (PDT) Date: Mon, 18 Jun 2018 11:21:23 -0700 From: Bjorn Andersson To: Vinod Koul Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Matt Mackall , Herbert Xu , Arnd Bergmann , Greg Kroah-Hartman , linux-arm-msm@vger.kernel.org, Vinod Koul Subject: Re: [PATCH 3/3] hwrng: msm - Add support for prng v2 Message-ID: <20180618182123.GT14924@minitux> References: <20180618141259.23141-1-vkoul@kernel.org> <20180618141259.23141-4-vkoul@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180618141259.23141-4-vkoul@kernel.org> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon 18 Jun 07:12 PDT 2018, Vinod Koul wrote: > Qcom 8996 and later chips support prng v2 where we need to only > implement .read callback for hwrng. > The hardware still needs initialization, so I think you should expand this to mention that the initialization is moved to secure world and that's the reason why we only implement read. The question is what happens in projects with other security models. > Add a new table for v2 which supports this and get version required for > driver data. > > Signed-off-by: Vinod Koul > --- > drivers/char/hw_random/msm-rng.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/char/hw_random/msm-rng.c b/drivers/char/hw_random/msm-rng.c > index 7644474035e5..3f509072a6c6 100644 > --- a/drivers/char/hw_random/msm-rng.c > +++ b/drivers/char/hw_random/msm-rng.c > @@ -17,6 +17,7 @@ > #include > #include > #include > +#include > #include > > /* Device specific register offsets */ > @@ -132,10 +133,16 @@ static struct hwrng msm_rng = { > .read = msm_rng_read, > }; > > +static struct hwrng msm_rng_v2 = { > + .name = KBUILD_MODNAME, > + .read = msm_rng_read, > +}; > + > static int msm_rng_probe(struct platform_device *pdev) > { > struct resource *res; > struct msm_rng *rng; > + unsigned int version; > int ret; > > rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); > @@ -154,6 +161,9 @@ static int msm_rng_probe(struct platform_device *pdev) > return PTR_ERR(rng->clk); > > rng->hwrng = &msm_rng; > + version = (unsigned long)of_device_get_match_data(&pdev->dev); If this is "version" then please make it 1 or 2, if you agree with Stephen's suggestion of omitting the initialization of init I think this would be better as 0/1 and the variable named "skip_init". > + if (version) > + rng->hwrng = &msm_rng_v2; > > rng->hwrng->priv = (unsigned long)rng; > ret = devm_hwrng_register(&pdev->dev, rng->hwrng); > @@ -166,7 +176,8 @@ static int msm_rng_probe(struct platform_device *pdev) > } > > static const struct of_device_id msm_rng_of_match[] = { > - { .compatible = "qcom,prng", }, > + { .compatible = "qcom,prng", .data = (void *)0}, > + { .compatible = "qcom,prng-v2", .data = (void *)1}, > {} > }; > MODULE_DEVICE_TABLE(of, msm_rng_of_match); Regards, Bjorn