ARM: uniphier: display revision of Micro Support Card 3.6.x kindly
The revision of the original support card (rev 3.5, rev 3.6) fits in the 8 bit width revision register. When it was extended in a weird way, it was versioned in the format of "3.6.x" (where it should have been "3.7", of course). What is worse, only the sub-level version "6.x" was recorded in the 8 bit width register, completely ignoring the compatibility of the revision register format. This patch saves madly-versioned support cards by assuming the major version "3" when the MSB 4 bit of the register is read as "6". With this, the support card revision that were displayed as "6.10" is now corrected to "3.6.10". Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
928f3248b3
commit
499c8679be
@ -1,5 +1,7 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
* Copyright (C) 2012-2015 Panasonic Corporation
|
||||
* Copyright (C) 2015-2016 Socionext Inc.
|
||||
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
@ -38,7 +40,12 @@ static int support_card_show_revision(void)
|
||||
u32 revision;
|
||||
|
||||
revision = readl(MICRO_SUPPORT_CARD_REVISION);
|
||||
printf("(CPLD version %d.%d)\n", revision >> 4, revision & 0xf);
|
||||
revision &= 0xff;
|
||||
|
||||
/* revision 3.6.x card changed the revision format */
|
||||
printf("(CPLD version %s%d.%d)\n", revision >> 4 == 6 ? "3." : "",
|
||||
revision >> 4, revision & 0xf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user