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

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

[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
Loading
Loading
Loading
Loading
+14 −20
Original line number Diff line number Diff line
@@ -566,29 +566,23 @@ version_info(char *page)
	pal_version_u_t min_ver, cur_ver;
	char *p = page;

	/* The PAL_VERSION call is advertised as being able to support
	 * both physical and virtual mode calls. This seems to be a documentation
	 * 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;
	if (ia64_pal_version(&min_ver, &cur_ver) != 0)
		return 0;

	p += sprintf(p,
		     "PAL_vendor : 0x%02x (min=0x%02x)\n"
		     "PAL_A      : %x.%x.%x (min=%x.%x.%x)\n"
		     "PAL_B      : %x.%x.%x (min=%x.%x.%x)\n",
		     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&0xf, 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&0xf, min_ver.pal_version_s.pv_pal_a_rev,

		     cur_ver.pal_version_s.pv_pal_b_model>>4,
		     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>>4,
		     min_ver.pal_version_s.pv_pal_b_model&0xf, min_ver.pal_version_s.pv_pal_b_rev);
		     "PAL_A      : %02x.%02x (min=%02x.%02x)\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_a_model,
		     cur_ver.pal_version_s.pv_pal_a_rev,
		     min_ver.pal_version_s.pv_pal_a_model,
		     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_rev,
		     min_ver.pal_version_s.pv_pal_b_model,
		     min_ver.pal_version_s.pv_pal_b_rev);
	return p - page;
}

+6 −1
Original line number Diff line number Diff line
@@ -1433,7 +1433,12 @@ typedef union pal_version_u {
} 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
ia64_pal_version (pal_version_u_t *pal_min_version, pal_version_u_t *pal_cur_version)
{