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 1/9] arch/x86/platform/uv: BAU cleanup: update printks
[PATCH 2/9] arch/x86/platform/uv: BAU cleanup: pq_init
[PATCH 3/9] 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 4/9] arch/x86/platform/uv: BAU add generic function pointers
[PATCH 5/9] 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 6/9] arch/x86/platform/uv: BAU UV4 populate uvhub_version
[PATCH 7/9] arch/x86/platform/uv: BAU UV4 disable software timeout
[PATCH 8/9] arch/x86/platform/uv: BAU UV4 fix payload queue setup
[PATCH 9/9] 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.