accel/habanalabs: add pcie reset prepare/done hooks
authorfarah kassabri <fkassabri@habana.ai>
Mon, 9 Oct 2023 12:07:38 +0000 (15:07 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Tue, 19 Dec 2023 09:09:42 +0000 (11:09 +0200)
commitf64fa332602c311a76495fd0139bd4abb9aa7bbf
treef9be16a7828f81046270e85db5246caab09df41c
parenta0a28956b46ec7f16ce5d762ac5a124bb532da0d
accel/habanalabs: add pcie reset prepare/done hooks

When working on a bare-metal system, if FLR will happen the firmware
will handle it and driver will have no knowledge of it, and this will
cause two issues:

1.The driver will be in operational state while it should be in reset.
  This will cause the heartbeat mechanism to keep sending messages to FW
  while pci device is in reset. Eventually heartbeat will fail and
  the device will end up in non-operational state.

2. After FW handles the FLR, and due to the reset it'll go back to
   preboot stage, and driver need to perform hard reset in order to
   load the boot fit binary.

This patch will add reset_prepare hook that will set the device to
be in disabled state, so it'll be not operational, and also
reset_done hook which will be called after the actual FLR handling,
then it will perform hard reset.

Signed-off-by: farah kassabri <fkassabri@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/accel/habanalabs/common/habanalabs_drv.c