Commit 1bf1eba7 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Tony Luck

[IA64] Format /proc/pal/*/version_info correctly

/proc/pal/*/version_info is a bit confusing.  HP firmware, at least,
reports 07.31 instead of 0.7.31.  Also, the comment is out of place;
it's an internal detail about the implementation of ia64_pal_version.
Since the 2.2 revision of the SDM still states that PAL_VERSION can
be called in virtual mode, correct the comment to be more accurate.
Signed-off-by: default avatarMatthew Wilcox <matthew@wil.cx>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent b6ff5083
...@@ -566,29 +566,23 @@ version_info(char *page) ...@@ -566,29 +566,23 @@ version_info(char *page)
pal_version_u_t min_ver, cur_ver; pal_version_u_t min_ver, cur_ver;
char *p = page; char *p = page;
/* The PAL_VERSION call is advertised as being able to support if (ia64_pal_version(&min_ver, &cur_ver) != 0)
* both physical and virtual mode calls. This seems to be a documentation return 0;
* bug rather than firmware bug. In fact, it does only support physical mode.
* So now the code reflects this fact and the pal_version() has been updated
* accordingly.
*/
if (ia64_pal_version(&min_ver, &cur_ver) != 0) return 0;
p += sprintf(p, p += sprintf(p,
"PAL_vendor : 0x%02x (min=0x%02x)\n" "PAL_vendor : 0x%02x (min=0x%02x)\n"
"PAL_A : %x.%x.%x (min=%x.%x.%x)\n" "PAL_A : %02x.%02x (min=%02x.%02x)\n"
"PAL_B : %x.%x.%x (min=%x.%x.%x)\n", "PAL_B : %02x.%02x (min=%02x.%02x)\n",
cur_ver.pal_version_s.pv_pal_vendor, min_ver.pal_version_s.pv_pal_vendor, cur_ver.pal_version_s.pv_pal_vendor,
min_ver.pal_version_s.pv_pal_vendor,
cur_ver.pal_version_s.pv_pal_a_model>>4, cur_ver.pal_version_s.pv_pal_a_model,
cur_ver.pal_version_s.pv_pal_a_model&0xf, cur_ver.pal_version_s.pv_pal_a_rev, cur_ver.pal_version_s.pv_pal_a_rev,
min_ver.pal_version_s.pv_pal_a_model>>4, min_ver.pal_version_s.pv_pal_a_model,
min_ver.pal_version_s.pv_pal_a_model&0xf, min_ver.pal_version_s.pv_pal_a_rev, min_ver.pal_version_s.pv_pal_a_rev,
cur_ver.pal_version_s.pv_pal_b_model,
cur_ver.pal_version_s.pv_pal_b_model>>4, cur_ver.pal_version_s.pv_pal_b_rev,
cur_ver.pal_version_s.pv_pal_b_model&0xf, cur_ver.pal_version_s.pv_pal_b_rev, min_ver.pal_version_s.pv_pal_b_model,
min_ver.pal_version_s.pv_pal_b_model>>4, min_ver.pal_version_s.pv_pal_b_rev);
min_ver.pal_version_s.pv_pal_b_model&0xf, min_ver.pal_version_s.pv_pal_b_rev);
return p - page; return p - page;
} }
......
...@@ -1433,7 +1433,12 @@ typedef union pal_version_u { ...@@ -1433,7 +1433,12 @@ typedef union pal_version_u {
} pal_version_u_t; } pal_version_u_t;
/* Return PAL version information */ /*
* Return PAL version information. While the documentation states that
* PAL_VERSION can be called in either physical or virtual mode, some
* implementations only allow physical calls. We don't call it very often,
* so the overhead isn't worth eliminating.
*/
static inline s64 static inline s64
ia64_pal_version (pal_version_u_t *pal_min_version, pal_version_u_t *pal_cur_version) ia64_pal_version (pal_version_u_t *pal_min_version, pal_version_u_t *pal_cur_version)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment