mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 16:41:58 +00:00
MIPS: Cavium-Octeon: Add more chip specific feature tests.
The octeon-ethernet driver needs to check for additional chip specific features, we add them to the octeon_has_feature() framework. Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
2b1b62e841
commit
f1f1f5902b
@ -57,6 +57,13 @@ enum octeon_feature {
|
||||
OCTEON_FEATURE_RAID,
|
||||
/* Octeon has a builtin USB */
|
||||
OCTEON_FEATURE_USB,
|
||||
/* Octeon IPD can run without using work queue entries */
|
||||
OCTEON_FEATURE_NO_WPTR,
|
||||
/* Octeon has DFA state machines */
|
||||
OCTEON_FEATURE_DFA,
|
||||
/* Octeon MDIO block supports clause 45 transactions for 10
|
||||
* Gig support */
|
||||
OCTEON_FEATURE_MDIO_CLAUSE_45,
|
||||
};
|
||||
|
||||
static inline int cvmx_fuse_read(int fuse);
|
||||
@ -112,6 +119,26 @@ static inline int octeon_has_feature(enum octeon_feature feature)
|
||||
case OCTEON_FEATURE_USB:
|
||||
return !(OCTEON_IS_MODEL(OCTEON_CN38XX)
|
||||
|| OCTEON_IS_MODEL(OCTEON_CN58XX));
|
||||
case OCTEON_FEATURE_NO_WPTR:
|
||||
return (OCTEON_IS_MODEL(OCTEON_CN56XX)
|
||||
|| OCTEON_IS_MODEL(OCTEON_CN52XX))
|
||||
&& !OCTEON_IS_MODEL(OCTEON_CN56XX_PASS1_X)
|
||||
&& !OCTEON_IS_MODEL(OCTEON_CN52XX_PASS1_X);
|
||||
case OCTEON_FEATURE_DFA:
|
||||
if (!OCTEON_IS_MODEL(OCTEON_CN38XX)
|
||||
&& !OCTEON_IS_MODEL(OCTEON_CN31XX)
|
||||
&& !OCTEON_IS_MODEL(OCTEON_CN58XX))
|
||||
return 0;
|
||||
else if (OCTEON_IS_MODEL(OCTEON_CN3020))
|
||||
return 0;
|
||||
else if (OCTEON_IS_MODEL(OCTEON_CN38XX_PASS1))
|
||||
return 1;
|
||||
else
|
||||
return !cvmx_fuse_read(120);
|
||||
case OCTEON_FEATURE_MDIO_CLAUSE_45:
|
||||
return !(OCTEON_IS_MODEL(OCTEON_CN3XXX)
|
||||
|| OCTEON_IS_MODEL(OCTEON_CN58XX)
|
||||
|| OCTEON_IS_MODEL(OCTEON_CN50XX));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user