Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1110266pxb; Fri, 20 Nov 2020 01:06:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJzdCJJuGE+uy7QPGJBQXxQCvIviBgMJxsuhQ7ZEq6sTUlzAx2+X9CNLGapj5C5STOCBP+4I X-Received: by 2002:aa7:d615:: with SMTP id c21mr34773558edr.23.1605863182695; Fri, 20 Nov 2020 01:06:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605863182; cv=none; d=google.com; s=arc-20160816; b=Q68kjDW8RG7UbuJGk+oW1mSSOhAG0YhR/nMZG6lQblC1yZ7Ko7pMMOxQfl0qhpmU6H Y4E2cWGt5gOZYA+1QwDmDmnnNz2Lfq9Dfz+mA2sMCH0BsXPY1jAwjFH64QRmCL52onnL ZfZjmsDwERWzasnSHIl6hnc/5T20o28+VLHSsAo12mkMMks28Rkuweo5di9O15rIviqI 00JUFJswiQVdT0t54vYlnCubOScjTd5zATV0Qdn8Bq0WbP03uM5sD2CKbK1PEkIQsjEh IxQLgBMgxjDdrVEqrRisJqyP9Cjr5+1ErxoKsjsyXVr+JGDRU45ySfsF6yMlAKffA6ND HTQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=M+gl8oyanP2t8uRnZeSEvnKyjZ7YMS0BMb6sPXvti2I=; b=DNObePoMB1LIVFaLVK+gFj0dvBobcyl9Om+BjUONVNnCP9osVQdmWIGk6I3FfduwCD RGGVM5NDkfM4aJcUU6QQJOvrOsPRBplEjv6HlW4RSov/46YZunnFSLY4SyURsqspEHPl nom3OzHFgd35sHgAJJ+xTTqaxKpc/HGlD9MvymWbwY6p2tQlsnlulyYcSCncCO+6wo1b kOyCTZfImRoSTl9TY1o5dvrCX+RtjS1ivxPRxU1UikdbB7bRubIOu0LxZzzivx5fONiQ BXR57Wti3z1ON9GN7VjcpKioQqhlmd2lI9lQzaFpCGPqiTPsIzX7rYXQ//MyvWVBDt2m qIqQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u23si1304496ejj.163.2020.11.20.01.05.58; Fri, 20 Nov 2020 01:06:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726122AbgKTJF4 (ORCPT + 99 others); Fri, 20 Nov 2020 04:05:56 -0500 Received: from szxga04-in.huawei.com ([45.249.212.190]:7710 "EHLO szxga04-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725766AbgKTJF4 (ORCPT ); Fri, 20 Nov 2020 04:05:56 -0500 Received: from DGGEMS404-HUB.china.huawei.com (unknown [172.30.72.59]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4CcrHG5yRgzkcPy; Fri, 20 Nov 2020 17:05:30 +0800 (CST) Received: from localhost.localdomain (10.67.165.24) by DGGEMS404-HUB.china.huawei.com (10.3.19.204) with Microsoft SMTP Server id 14.3.487.0; Fri, 20 Nov 2020 17:04:56 +0800 From: Weili Qian To: , , CC: , , , , Weili Qian Subject: [PATCH 1/4] hwrng: hisi - remove HiSilicon TRNG driver Date: Fri, 20 Nov 2020 17:02:31 +0800 Message-ID: <1605862954-38300-1-git-send-email-qianweili@huawei.com> X-Mailer: git-send-email 2.8.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.165.24] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Driver of HiSilicon true random number generator(TRNG) is removed from 'drivers/char/hw_random'. Both 'Kunpeng 920' and 'Kunpeng 930' chips have TRNG, however, PRNG is only supported by 'Kunpeng 930'. So, this driver is moved to 'drivers/crypto/hisilicon/trng/' in the next to enable the two's TRNG better. Signed-off-by: Weili Qian Reviewed-by: Zaibo Xu --- drivers/char/hw_random/Kconfig | 13 ----- drivers/char/hw_random/Makefile | 1 - drivers/char/hw_random/hisi-trng-v2.c | 99 ----------------------------------- 3 files changed, 113 deletions(-) delete mode 100644 drivers/char/hw_random/hisi-trng-v2.c diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig index e92c4d9..eb0d51a 100644 --- a/drivers/char/hw_random/Kconfig +++ b/drivers/char/hw_random/Kconfig @@ -348,19 +348,6 @@ config HW_RANDOM_HISI If unsure, say Y. -config HW_RANDOM_HISI_V2 - tristate "HiSilicon True Random Number Generator V2 support" - depends on HW_RANDOM && ARM64 && ACPI - default HW_RANDOM - help - This driver provides kernel-side support for the True Random Number - Generator V2 hardware found on HiSilicon Hi1620 SoC. - - To compile this driver as a module, choose M here: the - module will be called hisi-trng-v2. - - If unsure, say Y. - config HW_RANDOM_ST tristate "ST Microelectronics HW Random Number Generator support" depends on HW_RANDOM && ARCH_STI diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile index 5da3445..8933fad 100644 --- a/drivers/char/hw_random/Makefile +++ b/drivers/char/hw_random/Makefile @@ -30,7 +30,6 @@ obj-$(CONFIG_HW_RANDOM_NOMADIK) += nomadik-rng.o obj-$(CONFIG_HW_RANDOM_PSERIES) += pseries-rng.o obj-$(CONFIG_HW_RANDOM_POWERNV) += powernv-rng.o obj-$(CONFIG_HW_RANDOM_HISI) += hisi-rng.o -obj-$(CONFIG_HW_RANDOM_HISI_V2) += hisi-trng-v2.o obj-$(CONFIG_HW_RANDOM_BCM2835) += bcm2835-rng.o obj-$(CONFIG_HW_RANDOM_IPROC_RNG200) += iproc-rng200.o obj-$(CONFIG_HW_RANDOM_ST) += st-rng.o diff --git a/drivers/char/hw_random/hisi-trng-v2.c b/drivers/char/hw_random/hisi-trng-v2.c deleted file mode 100644 index 6a65b82..0000000 --- a/drivers/char/hw_random/hisi-trng-v2.c +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* Copyright (c) 2019 HiSilicon Limited. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define HISI_TRNG_REG 0x00F0 -#define HISI_TRNG_BYTES 4 -#define HISI_TRNG_QUALITY 512 -#define SLEEP_US 10 -#define TIMEOUT_US 10000 - -struct hisi_trng { - void __iomem *base; - struct hwrng rng; -}; - -static int hisi_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) -{ - struct hisi_trng *trng; - int currsize = 0; - u32 val = 0; - u32 ret; - - trng = container_of(rng, struct hisi_trng, rng); - - do { - ret = readl_poll_timeout(trng->base + HISI_TRNG_REG, val, - val, SLEEP_US, TIMEOUT_US); - if (ret) - return currsize; - - if (max - currsize >= HISI_TRNG_BYTES) { - memcpy(buf + currsize, &val, HISI_TRNG_BYTES); - currsize += HISI_TRNG_BYTES; - if (currsize == max) - return currsize; - continue; - } - - /* copy remaining bytes */ - memcpy(buf + currsize, &val, max - currsize); - currsize = max; - } while (currsize < max); - - return currsize; -} - -static int hisi_trng_probe(struct platform_device *pdev) -{ - struct hisi_trng *trng; - int ret; - - trng = devm_kzalloc(&pdev->dev, sizeof(*trng), GFP_KERNEL); - if (!trng) - return -ENOMEM; - - trng->base = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(trng->base)) - return PTR_ERR(trng->base); - - trng->rng.name = pdev->name; - trng->rng.read = hisi_trng_read; - trng->rng.quality = HISI_TRNG_QUALITY; - - ret = devm_hwrng_register(&pdev->dev, &trng->rng); - if (ret) - dev_err(&pdev->dev, "failed to register hwrng!\n"); - - return ret; -} - -static const struct acpi_device_id hisi_trng_acpi_match[] = { - { "HISI02B3", 0 }, - { } -}; -MODULE_DEVICE_TABLE(acpi, hisi_trng_acpi_match); - -static struct platform_driver hisi_trng_driver = { - .probe = hisi_trng_probe, - .driver = { - .name = "hisi-trng-v2", - .acpi_match_table = ACPI_PTR(hisi_trng_acpi_match), - }, -}; - -module_platform_driver(hisi_trng_driver); - -MODULE_LICENSE("GPL v2"); -MODULE_AUTHOR("Weili Qian "); -MODULE_AUTHOR("Zaibo Xu "); -MODULE_DESCRIPTION("HiSilicon true random number generator V2 driver"); -- 2.8.1