X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fasm-blackfin%2Fprocessor.h;h=6f3995b119d8e78658abd9c5ca448deaa2026435;hb=5c9ffc9c3d61dfcafd7cdb61c7b94f2d7ac408fb;hp=1c004072461257a2b7ebb2c850858103f30cf620;hpb=b9fa38f75ea7e1f64bc29653ca9758303ce698e4;p=linux-2.6 diff --git a/include/asm-blackfin/processor.h b/include/asm-blackfin/processor.h index 1c00407246..6f3995b119 100644 --- a/include/asm-blackfin/processor.h +++ b/include/asm-blackfin/processor.h @@ -112,7 +112,26 @@ unsigned long get_wchan(struct task_struct *p); static inline uint32_t __pure bfin_revid(void) { /* stored in the upper 4 bits */ - return bfin_read_CHIPID() >> 28; + uint32_t revid = bfin_read_CHIPID() >> 28; + +#ifdef CONFIG_BF52x + /* ANOMALY_05000357 + * Incorrect Revision Number in DSPID Register + */ + if (revid == 0) + switch (bfin_read16(_BOOTROM_GET_DXE_ADDRESS_TWI)) { + case 0x0010: + revid = 0; + break; + case 0x2796: + revid = 1; + break; + default: + revid = 0xFFFF; + break; + } +#endif + return revid; } static inline uint32_t __pure bfin_compiled_revid(void)