MIPS: OCTEON: reintroduce crypto features check
Reintroduce run-time check for crypto features. The old one was deleted because it was unreliable, now decide the crypto availability on early boot when the model string is constructed. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
1e585ef51c
commit
011f3c6cbb
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
#include <asm/octeon/octeon.h>
|
#include <asm/octeon/octeon.h>
|
||||||
|
|
||||||
|
enum octeon_feature_bits __octeon_feature_bits __read_mostly;
|
||||||
|
EXPORT_SYMBOL_GPL(__octeon_feature_bits);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read a byte of fuse data
|
* Read a byte of fuse data
|
||||||
* @byte_addr: address to read
|
* @byte_addr: address to read
|
||||||
|
@ -103,6 +106,9 @@ static const char *__init octeon_model_get_string_buffer(uint32_t chip_id,
|
||||||
else
|
else
|
||||||
suffix = "NSP";
|
suffix = "NSP";
|
||||||
|
|
||||||
|
if (!fus_dat2.s.nocrypto)
|
||||||
|
__octeon_feature_bits |= OCTEON_HAS_CRYPTO;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Assume pass number is encoded using <5:3><2:0>. Exceptions
|
* Assume pass number is encoded using <5:3><2:0>. Exceptions
|
||||||
* will be fixed later.
|
* will be fixed later.
|
||||||
|
|
|
@ -46,8 +46,6 @@ enum octeon_feature {
|
||||||
OCTEON_FEATURE_SAAD,
|
OCTEON_FEATURE_SAAD,
|
||||||
/* Does this Octeon support the ZIP offload engine? */
|
/* Does this Octeon support the ZIP offload engine? */
|
||||||
OCTEON_FEATURE_ZIP,
|
OCTEON_FEATURE_ZIP,
|
||||||
/* Does this Octeon support crypto acceleration using COP2? */
|
|
||||||
OCTEON_FEATURE_CRYPTO,
|
|
||||||
OCTEON_FEATURE_DORM_CRYPTO,
|
OCTEON_FEATURE_DORM_CRYPTO,
|
||||||
/* Does this Octeon support PCI express? */
|
/* Does this Octeon support PCI express? */
|
||||||
OCTEON_FEATURE_PCIE,
|
OCTEON_FEATURE_PCIE,
|
||||||
|
@ -86,6 +84,21 @@ enum octeon_feature {
|
||||||
OCTEON_MAX_FEATURE
|
OCTEON_MAX_FEATURE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum octeon_feature_bits {
|
||||||
|
OCTEON_HAS_CRYPTO = 0x0001, /* Crypto acceleration using COP2 */
|
||||||
|
};
|
||||||
|
extern enum octeon_feature_bits __octeon_feature_bits;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* octeon_has_crypto() - Check if this OCTEON has crypto acceleration support.
|
||||||
|
*
|
||||||
|
* Returns: Non-zero if the feature exists. Zero if the feature does not exist.
|
||||||
|
*/
|
||||||
|
static inline int octeon_has_crypto(void)
|
||||||
|
{
|
||||||
|
return __octeon_feature_bits & OCTEON_HAS_CRYPTO;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if the current Octeon supports a specific feature. These
|
* Determine if the current Octeon supports a specific feature. These
|
||||||
* checks have been optimized to be fairly quick, but they should still
|
* checks have been optimized to be fairly quick, but they should still
|
||||||
|
|
Loading…
Reference in New Issue