This is version 2 of a patch set to add UV4 support to the BAU. The only
changes from the the original version are whitespace sytle fixes (PATCH 1).
The following patch set adds support for UV4 architecture to the Broadcast
Assist Unit (BAU). Major hardware changes to the BAU require these fixes to
ensure correct operation and to avoid illegal MMR writes.
The patch set can be thought of in three logical groups:
1) General cleanup.
[PATCH 01/10] arch/x86/platform/uv: BAU cleanup: vertical alignment
[PATCH 02/10] arch/x86/platform/uv: BAU cleanup: update printks
[PATCH 03/10] arch/x86/platform/uv: BAU cleanup: pq_init
[PATCH 04/10] arch/x86/platform/uv: BAU replace uv_physnodeaddr
These housekeeping patches make the subsequent UV4 patches clearer,
and they should be done in any case.
2) Implement a new scheme to abstract UV version-specific functions.
[PATCH 05/10] arch/x86/platform/uv: BAU add generic function pointers
[PATCH 06/10] arch/x86/platform/uv: BAU use generic function pointers
We add a struct of function pointers to define version-specific BAU
operations. The philosophy is to abstract functions that perform the same
operation on all UV versions but have different implementations. This will
simplify their use in the body of the driver code and greatly simplify the
UV4 patches to follow.
3) Add UV4 functionality.
[PATCH 07/10] arch/x86/platform/uv: BAU UV4 populate uvhub_version
[PATCH 08/10] arch/x86/platform/uv: BAU UV4 disable software timeout
[PATCH 09/10] arch/x86/platform/uv: BAU UV4 fix payload queue setup
[PATCH 10/10] arch/x86/platform/uv: BAU UV4 add version-specific
These patches feature a minimal set of changes to make the BAU on UV4
This patch set has been tested for regressions on pre-UV4 architectures and
for correct functionality on UV4. The patches apply cleanly to 4.8-rc7.
Fine-tuned performance tweaking for UV4 will come in a future patch set.