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

Commit 011f3c6c authored by Aaro Koskinen's avatar Aaro Koskinen Committed by Herbert Xu
Browse files

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: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 1e585ef5
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -27,6 +27,9 @@

#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
 * @byte_addr:	 address to read
@@ -103,6 +106,9 @@ static const char *__init octeon_model_get_string_buffer(uint32_t chip_id,
	else
		suffix = "NSP";

	if (!fus_dat2.s.nocrypto)
		__octeon_feature_bits |= OCTEON_HAS_CRYPTO;

	/*
	 * Assume pass number is encoded using <5:3><2:0>. Exceptions
	 * will be fixed later.
+15 −2
Original line number Diff line number Diff line
@@ -46,8 +46,6 @@ enum octeon_feature {
	OCTEON_FEATURE_SAAD,
	/* Does this Octeon support the ZIP offload engine? */
	OCTEON_FEATURE_ZIP,
	/* Does this Octeon support crypto acceleration using COP2? */
	OCTEON_FEATURE_CRYPTO,
	OCTEON_FEATURE_DORM_CRYPTO,
	/* Does this Octeon support PCI express? */
	OCTEON_FEATURE_PCIE,
@@ -86,6 +84,21 @@ enum octeon_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
 * checks have been optimized to be fairly quick, but they should still