Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24f14669 authored by David S. Miller's avatar David S. Miller
Browse files

n2rng: Attach on Niagara-T3.



And stop referring to Victoria Falls, as the attribute we're
talking about is whether the rng is multi-unit capable which
applies to several chip variants now.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4ba991d3
Loading
Loading
Loading
Loading
+17 −12
Original line number Diff line number Diff line
/* n2-drv.c: Niagara-2 RNG driver.
 *
 * Copyright (C) 2008 David S. Miller <davem@davemloft.net>
 * Copyright (C) 2008, 2011 David S. Miller <davem@davemloft.net>
 */

#include <linux/kernel.h>
@@ -22,8 +22,8 @@

#define DRV_MODULE_NAME		"n2rng"
#define PFX DRV_MODULE_NAME	": "
#define DRV_MODULE_VERSION	"0.1"
#define DRV_MODULE_RELDATE	"May 15, 2008"
#define DRV_MODULE_VERSION	"0.2"
#define DRV_MODULE_RELDATE	"July 27, 2011"

static char version[] __devinitdata =
	DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
@@ -623,14 +623,14 @@ static const struct of_device_id n2rng_match[];
static int __devinit n2rng_probe(struct platform_device *op)
{
	const struct of_device_id *match;
	int victoria_falls;
	int multi_capable;
	int err = -ENOMEM;
	struct n2rng *np;

	match = of_match_device(n2rng_match, &op->dev);
	if (!match)
		return -EINVAL;
	victoria_falls = (match->data != NULL);
	multi_capable = (match->data != NULL);

	n2rng_driver_version();
	np = kzalloc(sizeof(*np), GFP_KERNEL);
@@ -640,8 +640,8 @@ static int __devinit n2rng_probe(struct platform_device *op)

	INIT_DELAYED_WORK(&np->work, n2rng_work);

	if (victoria_falls)
		np->flags |= N2RNG_FLAG_VF;
	if (multi_capable)
		np->flags |= N2RNG_FLAG_MULTI;

	err = -ENODEV;
	np->hvapi_major = 2;
@@ -658,10 +658,10 @@ static int __devinit n2rng_probe(struct platform_device *op)
		}
	}

	if (np->flags & N2RNG_FLAG_VF) {
	if (np->flags & N2RNG_FLAG_MULTI) {
		if (np->hvapi_major < 2) {
			dev_err(&op->dev, "VF RNG requires HVAPI major "
				"version 2 or later, got %lu\n",
			dev_err(&op->dev, "multi-unit-capable RNG requires "
				"HVAPI major version 2 or later, got %lu\n",
				np->hvapi_major);
			goto out_hvapi_unregister;
		}
@@ -688,8 +688,8 @@ static int __devinit n2rng_probe(struct platform_device *op)
		goto out_free_units;

	dev_info(&op->dev, "Found %s RNG, units: %d\n",
		 ((np->flags & N2RNG_FLAG_VF) ?
		  "Victoria Falls" : "Niagara2"),
		 ((np->flags & N2RNG_FLAG_MULTI) ?
		  "multi-unit-capable" : "single-unit"),
		 np->num_units);

	np->hwrng.name = "n2rng";
@@ -751,6 +751,11 @@ static const struct of_device_id n2rng_match[] = {
		.compatible	= "SUNW,vf-rng",
		.data		= (void *) 1,
	},
	{
		.name		= "random-number-generator",
		.compatible	= "SUNW,kt-rng",
		.data		= (void *) 1,
	},
	{},
};
MODULE_DEVICE_TABLE(of, n2rng_match);
+1 −1
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ struct n2rng {
	struct platform_device	*op;

	unsigned long		flags;
#define N2RNG_FLAG_VF		0x00000001 /* Victoria Falls RNG, else N2 */
#define N2RNG_FLAG_MULTI	0x00000001 /* Multi-unit capable RNG */
#define N2RNG_FLAG_CONTROL	0x00000002 /* Operating in control domain */
#define N2RNG_FLAG_READY	0x00000008 /* Ready for hw-rng layer      */
#define N2RNG_FLAG_SHUTDOWN	0x00000010 /* Driver unregistering        */