IB/hfi1: Add ASIC resource reservation functions
authorDean Luick <dean.luick@intel.com>
Sat, 5 Mar 2016 16:49:50 +0000 (08:49 -0800)
committerDoug Ledford <dledford@redhat.com>
Thu, 17 Mar 2016 19:55:13 +0000 (15:55 -0400)
commita2ee27a4552505db5967630abcc3a90340e0d824
treeec452c85bb3040746b31fc9be0436199991d2e03
parent78eb129d47f553e6f0607c393ebf4e9851edd73e
IB/hfi1: Add ASIC resource reservation functions

The ASIC block is a shared hardware resource between two devices
on the chip.  Add functions to acquire and release these resources
in a way that is safe for both multiple users on the same OS
and multiple users on different OSes, while holding the hardware
mutex as little as possible.

Reservations are noted in a scratch register in the shared region.
There are two types of reservations: per-HFI dynamic and permanent.

Reviewed-by: Mitko Haralanov <mitko.haralanov@intel.com>
Reviewed-by: Easwar Hariharan <easwar.hariharan@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/staging/rdma/hfi1/chip.c
drivers/staging/rdma/hfi1/chip.h
drivers/staging/rdma/hfi1/firmware.c