n2_crypto: Attach on Niagara-T3.

A small modification was necessary since in the machine description
for 'n2cp' and 'ncp' nodes, there no longer is an 'intr' property.

That's OK because this property was always nothing more than an
array of integers '1' ... 'nr_inos + 1' so we can just compute it
in-place.

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller 2011-07-28 01:30:07 -07:00
parent 24f1466961
commit eb7caf3595

View File

@ -1,6 +1,6 @@
/* n2_core.c: Niagara2 Stream Processing Unit (SPU) crypto support. /* n2_core.c: Niagara2 Stream Processing Unit (SPU) crypto support.
* *
* Copyright (C) 2010 David S. Miller <davem@davemloft.net> * Copyright (C) 2010, 2011 David S. Miller <davem@davemloft.net>
*/ */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@ -31,8 +31,8 @@
#include "n2_core.h" #include "n2_core.h"
#define DRV_MODULE_NAME "n2_crypto" #define DRV_MODULE_NAME "n2_crypto"
#define DRV_MODULE_VERSION "0.1" #define DRV_MODULE_VERSION "0.2"
#define DRV_MODULE_RELDATE "April 29, 2010" #define DRV_MODULE_RELDATE "July 28, 2011"
static char version[] __devinitdata = static char version[] __devinitdata =
DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
@ -1823,22 +1823,17 @@ static int spu_mdesc_scan(struct mdesc_handle *mdesc, struct platform_device *de
static int __devinit get_irq_props(struct mdesc_handle *mdesc, u64 node, static int __devinit get_irq_props(struct mdesc_handle *mdesc, u64 node,
struct spu_mdesc_info *ip) struct spu_mdesc_info *ip)
{ {
const u64 *intr, *ino; const u64 *ino;
int intr_len, ino_len; int ino_len;
int i; int i;
intr = mdesc_get_property(mdesc, node, "intr", &intr_len);
if (!intr)
return -ENODEV;
ino = mdesc_get_property(mdesc, node, "ino", &ino_len); ino = mdesc_get_property(mdesc, node, "ino", &ino_len);
if (!ino) if (!ino) {
printk("NO 'ino'\n");
return -ENODEV; return -ENODEV;
}
if (intr_len != ino_len) ip->num_intrs = ino_len / sizeof(u64);
return -EINVAL;
ip->num_intrs = intr_len / sizeof(u64);
ip->ino_table = kzalloc((sizeof(struct ino_blob) * ip->ino_table = kzalloc((sizeof(struct ino_blob) *
ip->num_intrs), ip->num_intrs),
GFP_KERNEL); GFP_KERNEL);
@ -1847,7 +1842,7 @@ static int __devinit get_irq_props(struct mdesc_handle *mdesc, u64 node,
for (i = 0; i < ip->num_intrs; i++) { for (i = 0; i < ip->num_intrs; i++) {
struct ino_blob *b = &ip->ino_table[i]; struct ino_blob *b = &ip->ino_table[i];
b->intr = intr[i]; b->intr = i + 1;
b->ino = ino[i]; b->ino = ino[i];
} }
@ -2204,6 +2199,10 @@ static struct of_device_id n2_crypto_match[] = {
.name = "n2cp", .name = "n2cp",
.compatible = "SUNW,vf-cwq", .compatible = "SUNW,vf-cwq",
}, },
{
.name = "n2cp",
.compatible = "SUNW,kt-cwq",
},
{}, {},
}; };
@ -2228,6 +2227,10 @@ static struct of_device_id n2_mau_match[] = {
.name = "ncp", .name = "ncp",
.compatible = "SUNW,vf-mau", .compatible = "SUNW,vf-mau",
}, },
{
.name = "ncp",
.compatible = "SUNW,kt-mau",
},
{}, {},
}; };