From: Paul Bolle <pebolle@tiscali.nl>
To: Matt Mackall <mpm@selenic.com>,
Herbert Xu <herbert@gondor.apana.org.au>,
Jamie Iles <jamie@jamieiles.com>
Cc: Richard Weinberger <richard@nod.at>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: [PATCH] hwrng: remove unbuildable picoxcell TRNG
Date: Tue, 15 Apr 2014 10:55:18 +0200 [thread overview]
Message-ID: <1397552118.1985.16.camel@x220> (raw)
In-Reply-To: <1391977683.25855.27.camel@x220>
The driver for the "Picochip picoXcell true random number generator" was
added in v2.6.39. Its Kconfig symbol has always depended on
PICOXCELL_PC3X3. But that Kconfig symbol has never been part of the
tree. This means this driver has never been buildable. Let's remove it.
It can be re-added if its dependencies are actually part of the tree.
Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
---
Tested only by grepping the tree!
drivers/char/hw_random/Kconfig | 12 ---
drivers/char/hw_random/Makefile | 1 -
drivers/char/hw_random/picoxcell-rng.c | 181 ---------------------------------
3 files changed, 194 deletions(-)
delete mode 100644 drivers/char/hw_random/picoxcell-rng.c
diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
index 244759bbd7b7..d994c85a923c 100644
--- a/drivers/char/hw_random/Kconfig
+++ b/drivers/char/hw_random/Kconfig
@@ -251,18 +251,6 @@ config HW_RANDOM_NOMADIK
If unsure, say Y.
-config HW_RANDOM_PICOXCELL
- tristate "Picochip picoXcell true random number generator support"
- depends on HW_RANDOM && ARCH_PICOXCELL && PICOXCELL_PC3X3
- ---help---
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Picochip PC3x3 and later devices.
-
- To compile this driver as a module, choose M here: the
- module will be called picoxcell-rng.
-
- If unsure, say Y.
-
config HW_RANDOM_PPC4XX
tristate "PowerPC 4xx generic true random number generator support"
depends on HW_RANDOM && PPC && 4xx
diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile
index 3ae7755a52e7..199ed283e149 100644
--- a/drivers/char/hw_random/Makefile
+++ b/drivers/char/hw_random/Makefile
@@ -22,7 +22,6 @@ obj-$(CONFIG_HW_RANDOM_TX4939) += tx4939-rng.o
obj-$(CONFIG_HW_RANDOM_MXC_RNGA) += mxc-rnga.o
obj-$(CONFIG_HW_RANDOM_OCTEON) += octeon-rng.o
obj-$(CONFIG_HW_RANDOM_NOMADIK) += nomadik-rng.o
-obj-$(CONFIG_HW_RANDOM_PICOXCELL) += picoxcell-rng.o
obj-$(CONFIG_HW_RANDOM_PPC4XX) += ppc4xx-rng.o
obj-$(CONFIG_HW_RANDOM_PSERIES) += pseries-rng.o
obj-$(CONFIG_HW_RANDOM_POWERNV) += powernv-rng.o
diff --git a/drivers/char/hw_random/picoxcell-rng.c b/drivers/char/hw_random/picoxcell-rng.c
deleted file mode 100644
index eab5448ad56f..000000000000
--- a/drivers/char/hw_random/picoxcell-rng.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2010-2011 Picochip Ltd., Jamie Iles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * All enquiries to support@picochip.com
- */
-#include <linux/clk.h>
-#include <linux/delay.h>
-#include <linux/err.h>
-#include <linux/hw_random.h>
-#include <linux/io.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-
-#define DATA_REG_OFFSET 0x0200
-#define CSR_REG_OFFSET 0x0278
-#define CSR_OUT_EMPTY_MASK (1 << 24)
-#define CSR_FAULT_MASK (1 << 1)
-#define TRNG_BLOCK_RESET_MASK (1 << 0)
-#define TAI_REG_OFFSET 0x0380
-
-/*
- * The maximum amount of time in microseconds to spend waiting for data if the
- * core wants us to wait. The TRNG should generate 32 bits every 320ns so a
- * timeout of 20us seems reasonable. The TRNG does builtin tests of the data
- * for randomness so we can't always assume there is data present.
- */
-#define PICO_TRNG_TIMEOUT 20
-
-static void __iomem *rng_base;
-static struct clk *rng_clk;
-static struct device *rng_dev;
-
-static inline u32 picoxcell_trng_read_csr(void)
-{
- return __raw_readl(rng_base + CSR_REG_OFFSET);
-}
-
-static inline bool picoxcell_trng_is_empty(void)
-{
- return picoxcell_trng_read_csr() & CSR_OUT_EMPTY_MASK;
-}
-
-/*
- * Take the random number generator out of reset and make sure the interrupts
- * are masked. We shouldn't need to get large amounts of random bytes so just
- * poll the status register. The hardware generates 32 bits every 320ns so we
- * shouldn't have to wait long enough to warrant waiting for an IRQ.
- */
-static void picoxcell_trng_start(void)
-{
- __raw_writel(0, rng_base + TAI_REG_OFFSET);
- __raw_writel(0, rng_base + CSR_REG_OFFSET);
-}
-
-static void picoxcell_trng_reset(void)
-{
- __raw_writel(TRNG_BLOCK_RESET_MASK, rng_base + CSR_REG_OFFSET);
- __raw_writel(TRNG_BLOCK_RESET_MASK, rng_base + TAI_REG_OFFSET);
- picoxcell_trng_start();
-}
-
-/*
- * Get some random data from the random number generator. The hw_random core
- * layer provides us with locking.
- */
-static int picoxcell_trng_read(struct hwrng *rng, void *buf, size_t max,
- bool wait)
-{
- int i;
-
- /* Wait for some data to become available. */
- for (i = 0; i < PICO_TRNG_TIMEOUT && picoxcell_trng_is_empty(); ++i) {
- if (!wait)
- return 0;
-
- udelay(1);
- }
-
- if (picoxcell_trng_read_csr() & CSR_FAULT_MASK) {
- dev_err(rng_dev, "fault detected, resetting TRNG\n");
- picoxcell_trng_reset();
- return -EIO;
- }
-
- if (i == PICO_TRNG_TIMEOUT)
- return 0;
-
- *(u32 *)buf = __raw_readl(rng_base + DATA_REG_OFFSET);
- return sizeof(u32);
-}
-
-static struct hwrng picoxcell_trng = {
- .name = "picoxcell",
- .read = picoxcell_trng_read,
-};
-
-static int picoxcell_trng_probe(struct platform_device *pdev)
-{
- int ret;
- struct resource *mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-
- rng_base = devm_ioremap_resource(&pdev->dev, mem);
- if (IS_ERR(rng_base))
- return PTR_ERR(rng_base);
-
- rng_clk = devm_clk_get(&pdev->dev, NULL);
- if (IS_ERR(rng_clk)) {
- dev_warn(&pdev->dev, "no clk\n");
- return PTR_ERR(rng_clk);
- }
-
- ret = clk_enable(rng_clk);
- if (ret) {
- dev_warn(&pdev->dev, "unable to enable clk\n");
- return ret;
- }
-
- picoxcell_trng_start();
- ret = hwrng_register(&picoxcell_trng);
- if (ret)
- goto err_register;
-
- rng_dev = &pdev->dev;
- dev_info(&pdev->dev, "pixoxcell random number generator active\n");
-
- return 0;
-
-err_register:
- clk_disable(rng_clk);
- return ret;
-}
-
-static int picoxcell_trng_remove(struct platform_device *pdev)
-{
- hwrng_unregister(&picoxcell_trng);
- clk_disable(rng_clk);
-
- return 0;
-}
-
-#ifdef CONFIG_PM
-static int picoxcell_trng_suspend(struct device *dev)
-{
- clk_disable(rng_clk);
-
- return 0;
-}
-
-static int picoxcell_trng_resume(struct device *dev)
-{
- return clk_enable(rng_clk);
-}
-
-static const struct dev_pm_ops picoxcell_trng_pm_ops = {
- .suspend = picoxcell_trng_suspend,
- .resume = picoxcell_trng_resume,
-};
-#endif /* CONFIG_PM */
-
-static struct platform_driver picoxcell_trng_driver = {
- .probe = picoxcell_trng_probe,
- .remove = picoxcell_trng_remove,
- .driver = {
- .name = "picoxcell-trng",
- .owner = THIS_MODULE,
-#ifdef CONFIG_PM
- .pm = &picoxcell_trng_pm_ops,
-#endif /* CONFIG_PM */
- },
-};
-
-module_platform_driver(picoxcell_trng_driver);
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Jamie Iles");
-MODULE_DESCRIPTION("Picochip picoXcell TRNG driver");
--
1.9.0
next prev parent reply other threads:[~2014-04-15 8:55 UTC|newest]
Thread overview: 173+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-09 18:47 Remove orphan kconfig symbols Richard Weinberger
2014-02-09 18:47 ` [PATCH 01/28] Remove CPU_MMP3 Richard Weinberger
2014-02-09 22:07 ` Paul Bolle
2014-02-11 21:30 ` Greg Kroah-Hartman
2014-02-11 22:01 ` Paul Bolle
2014-02-12 7:52 ` Geert Uytterhoeven
2014-02-09 18:47 ` [PATCH 02/28] Remove OF_I2C Richard Weinberger
2014-02-09 19:58 ` Paul Bolle
2014-03-13 21:39 ` Wolfram Sang
2014-02-09 18:47 ` [PATCH 03/28] Remove MACH_BCM2708 Richard Weinberger
2014-02-09 20:02 ` Paul Bolle
2014-02-09 18:47 ` [PATCH 04/28] Remove EXYNOS_DEV_SYSMMU Richard Weinberger
2014-02-09 20:08 ` Paul Bolle
2014-02-10 4:32 ` Sachin Kamat
2014-04-15 9:33 ` Paul Bolle
2014-02-09 18:47 ` [PATCH 05/28] Remove MPILIB_EXTRA Richard Weinberger
2014-02-09 20:18 ` Paul Bolle
2014-04-15 9:06 ` Paul Bolle
2014-04-15 9:21 ` Borislav Petkov
2014-06-18 8:09 ` Paul Bolle
2014-06-18 9:48 ` Borislav Petkov
2014-06-18 10:38 ` Jiri Kosina
2014-06-18 14:18 ` [PATCH] [TRIVIAL] " Paul Bolle
2014-02-09 18:47 ` [PATCH 06/28] Remove PICOXCELL_PC3X3 Richard Weinberger
2014-02-09 20:28 ` Paul Bolle
2014-04-15 8:55 ` Paul Bolle [this message]
2014-04-15 10:06 ` [PATCH] hwrng: remove unbuildable picoxcell TRNG Jamie Iles
2014-04-16 13:50 ` Herbert Xu
2014-02-09 18:47 ` [PATCH 07/28] Remove CPU_PXA988 Richard Weinberger
2014-02-09 22:24 ` Paul Bolle
[not found] ` <52F800B2.6010702@nod.at>
2014-04-15 7:47 ` Paul Bolle
2014-04-15 7:50 ` Richard Weinberger
2014-02-09 18:47 ` [PATCH 08/28] Remove SYS_HAS_DMA_OPS Richard Weinberger
2014-02-09 21:44 ` Paul Bolle
2014-02-09 18:47 ` [PATCH 09/28] Remove ATHEROS_AR231X Richard Weinberger
2014-02-09 19:09 ` Joe Perches
2014-02-09 19:43 ` Paul Bolle
[not found] ` <52F7D480.1050106@hauke-m.de>
2014-02-09 20:03 ` Richard Weinberger
2014-02-10 12:05 ` Sergey Ryazanov
2014-02-10 12:17 ` Oleksij Rempel
2014-02-10 12:38 ` Sergey Ryazanov
2014-02-10 22:37 ` Florian Fainelli
2014-02-10 23:43 ` Sergey Ryazanov
2014-02-12 10:50 ` Sergey Ryazanov
2014-02-13 20:14 ` John W. Linville
2014-04-15 17:08 ` Paul Bolle
2014-04-16 9:20 ` Sergey Ryazanov
2014-06-18 10:25 ` Paul Bolle
2014-06-18 11:10 ` Sergey Ryazanov
2014-06-18 11:46 ` Paul Bolle
2014-06-18 13:15 ` [ath5k-devel] " Holger Schurig
2014-06-18 13:42 ` Paul Bolle
2014-09-05 10:10 ` Paul Bolle
2014-09-05 11:12 ` Sergey Ryazanov
2014-09-05 11:33 ` Paul Bolle
2014-09-05 12:02 ` Sergey Ryazanov
2014-09-09 18:27 ` John W. Linville
2014-09-10 8:53 ` [PATCH] [RESEND] ath5k: Remove AHB bus support Paul Bolle
2014-09-26 17:45 ` John W. Linville
2014-09-10 10:33 ` [PATCH 09/28] Remove ATHEROS_AR231X Sergey Ryazanov
2014-09-10 11:36 ` Jiri Slaby
2014-09-10 12:19 ` Sergey Ryazanov
2014-09-11 19:21 ` John W. Linville
2014-09-15 18:45 ` John W. Linville
2014-09-16 20:26 ` Paul Bolle
2014-09-16 20:33 ` John W. Linville
2014-02-09 18:47 ` [PATCH 10/28] Remove SH_MOBILE Richard Weinberger
2014-02-09 20:32 ` Paul Bolle
2014-02-09 18:47 ` [PATCH 11/28] Remove ARCH_SUPPORTS_MSI Richard Weinberger
2014-02-09 20:35 ` Paul Bolle
2014-02-09 18:47 ` [PATCH 12/28] Remove GENERIC_TIME Richard Weinberger
2014-02-09 18:57 ` Alexander Shiyan
2014-02-09 20:02 ` Richard Weinberger
2014-02-19 6:12 ` Christian Daudt
2014-02-09 18:47 ` [PATCH 13/28] Remove S3C24XX_GPIO_EXTRA64 Richard Weinberger
2014-02-11 3:29 ` Kukjin Kim
2014-02-09 18:47 ` [PATCH 15/28] Remove TI_AEMIF Richard Weinberger
2014-02-09 20:54 ` Paul Bolle
2014-02-11 19:04 ` Brian Norris
2014-02-11 19:42 ` Ivan Khoronzhuk
2014-02-09 18:47 ` [PATCH 16/28] Remove GENERIC_HAS_IOMAP Richard Weinberger
2014-02-09 20:59 ` Paul Bolle
2014-02-09 21:37 ` Guenter Roeck
2014-02-10 2:24 ` Lennox Wu
2014-04-15 9:19 ` Paul Bolle
2014-04-16 17:29 ` Lennox Wu
2014-04-16 18:30 ` Paul Bolle
2014-06-18 9:10 ` Paul Bolle
2014-06-18 19:53 ` Lennox Wu
2014-09-05 9:32 ` Paul Bolle
2014-09-05 13:57 ` Guenter Roeck
2014-09-05 14:00 ` Richard Weinberger
2014-09-05 18:23 ` Lennox Wu
2014-02-09 18:47 ` [PATCH 17/28] Remove USE_GENERIC_SMP_HELPERS Richard Weinberger
2014-02-09 21:04 ` Paul Bolle
2014-02-09 18:47 ` [PATCH 18/28] Remove MN10300_PROC_MN2WS0038 Richard Weinberger
2014-02-09 20:44 ` Paul Bolle
2014-02-09 18:47 ` [PATCH 19/28] Remove SI4713 Richard Weinberger
2014-02-09 19:13 ` Hans Verkuil
2014-02-09 20:03 ` Richard Weinberger
2014-02-09 18:47 ` [PATCH 20/28] Remove OMAP_PM_SRF Richard Weinberger
2014-02-09 19:55 ` Paul Bolle
2014-02-09 18:47 ` [PATCH 21/28] Remove CPU_SUBTYPE_SH7764 Richard Weinberger
2014-02-09 21:36 ` Paul Bolle
2014-04-15 9:39 ` Paul Bolle
2014-04-15 9:55 ` Geert Uytterhoeven
2014-06-18 9:32 ` [PATCH] " Paul Bolle
2014-06-18 19:08 ` Paul Bolle
2014-02-09 18:48 ` [PATCH 22/28] Remove S3C24XX_GPIO_EXTRA128 Richard Weinberger
2014-02-11 3:31 ` Kukjin Kim
2014-02-13 22:57 ` Kukjin Kim
2014-02-09 18:48 ` [PATCH 23/28] Remove MACH_OMAP_H4_OTG Richard Weinberger
2014-02-09 19:57 ` Aaro Koskinen
2014-02-09 18:48 ` [PATCH 24/28] Remove DEPRECATED Richard Weinberger
2014-02-09 19:38 ` Paul Bolle
2014-02-09 20:04 ` Richard Weinberger
2014-02-09 20:15 ` Paul Bolle
2014-02-09 20:21 ` Richard Weinberger
2014-02-10 8:49 ` Geert Uytterhoeven
2014-02-10 8:52 ` Richard Weinberger
2014-06-18 8:47 ` Paul Bolle
2014-02-09 21:35 ` Guenter Roeck
2014-02-09 21:38 ` Richard Weinberger
2014-02-09 21:54 ` Gene Heskett
2014-02-09 22:11 ` Paul Bolle
2014-02-09 22:41 ` Gene Heskett
2014-02-09 22:48 ` Paul Bolle
2014-02-09 23:05 ` Gene Heskett
2014-02-10 3:07 ` Ken Moffat
2014-02-10 3:13 ` Randy Dunlap
2014-02-10 3:46 ` Gene Heskett
2014-02-10 3:57 ` Randy Dunlap
2014-02-10 4:14 ` make oldfonfig broken Gene Heskett
2014-02-10 4:17 ` Randy Dunlap
2014-02-10 4:32 ` Gene Heskett
2014-02-10 5:01 ` Randy Dunlap
2014-02-10 9:52 ` Gene Heskett
2014-02-10 20:21 ` Gene Heskett
2014-02-10 22:55 ` Randy Dunlap
2014-02-11 0:13 ` Gene Heskett
2014-02-11 2:18 ` Randy Dunlap
2014-02-11 18:22 ` Randy Dunlap
2014-02-11 19:45 ` Gene Heskett
2014-02-11 20:10 ` Gene Heskett
2014-02-09 23:16 ` [PATCH 24/28] Remove DEPRECATED Guenter Roeck
2014-02-09 18:48 ` [PATCH 26/28] Remove LOCAL_TIMERS Richard Weinberger
2014-02-09 22:38 ` Paul Bolle
2014-02-09 18:48 ` [PATCH 27/28] Remove ARC_HAS_COH_RTSC Richard Weinberger
2014-02-09 19:46 ` Paul Bolle
2014-02-10 4:35 ` Vineet Gupta
2014-02-10 13:48 ` Paul Bolle
2014-02-10 14:06 ` Vineet Gupta
2014-02-10 15:08 ` Paul Bolle
2014-02-10 4:23 ` Vineet Gupta
2014-02-09 18:48 ` [PATCH 28/28] Remove LOCAL_TIMERS Richard Weinberger
2014-02-09 22:49 ` Paul Bolle
2014-02-10 0:58 ` Remove orphan kconfig symbols Paul Bolle
2014-02-10 11:00 ` Mark Brown
2014-02-10 13:16 ` Paul Bolle
[not found] ` <1391971686-9517-15-git-send-email-richard@nod.at>
2014-02-10 11:41 ` [PATCH 14/28] Remove MACH_SMDKC210 Mark Brown
2014-02-10 13:31 ` Paul Bolle
2014-02-10 14:12 ` Mark Brown
2014-02-10 15:30 ` Paul Bolle
2014-02-10 16:36 ` Mark Brown
2014-02-10 22:09 ` Paul Bolle
2014-02-12 16:04 ` Mark Brown
2014-02-28 21:43 ` Paul Bolle
2014-03-01 3:53 ` Mark Brown
2014-02-10 14:58 ` [PATCH 18/28] Remove MN10300_PROC_MN2WS0038 David Howells
2014-04-15 9:13 ` Paul Bolle
2014-06-18 9:42 ` Paul Bolle
2014-09-05 9:45 ` Paul Bolle
2014-09-12 12:36 ` [PATCH] [TRIVIAL] " Paul Bolle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1397552118.1985.16.camel@x220 \
--to=pebolle@tiscali.nl \
--cc=herbert@gondor.apana.org.au \
--cc=jamie@jamieiles.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mpm@selenic.com \
--cc=richard@nod.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).