[git pull] habanalabs pull request for kernel 5.5

From: Oded Gabbay
Date: Thu Nov 21 2019 - 09:42:29 EST

Hello Greg,

This is the pull request for habanalabs driver for kernel 5.5.

It mainly contains improvements to MMU and reset code, and exposes more
information through our INFO IOCTL.

Please see the tag message for more details on what this pull request


The following changes since commit ab64ec1db25e0cceab0bad15b03fd57e2b461b15:

misc: Fix Kconfig indentation (2019-11-20 15:09:49 +0100)

are available in the Git repository at:

git://people.freedesktop.org/~gabbayo/linux tags/misc-habanalabs-next-2019-11-21

for you to fetch changes up to 5feccddcf9922ee3c25587d5e609bf58503ad93e:

habanalabs: add more protection of device during reset (2019-11-21 11:35:47 +0200)

This tag contains the following changes for kernel 5.5:

- MMU code improvements that includes:
- Distinguish between "normal" unmapping and unmapping that is done as
part of the tear-down of a user process. This improves performance of
unmapping during reset of the device.
- Add future ASIC support in generic MMU code.

- Improve device reset code by adding more protection around accessing the
device during the reset process.

- Add new H/W queue type for future ASIC support

- Add more information to be retrieved by users through INFO IOCTL:
- clock rate
- board name
- reset counters

- Small bug fixes and minor improvements to code.

Moti Haimovski (1):
habanalabs: expose reset counters via existing INFO IOCTL

Oded Gabbay (16):
habanalabs: handle F/W failure for sensor initialization
habanalabs: set TPC Icache to 16 cache lines
habanalabs: add opcode to INFO IOCTL to return clock rate
habanalabs: expose card name in INFO IOCTL
habanalabs: read F/W versions before failure
habanalabs: use registers name defines for ETR block
habanalabs: set ETR as non-secured
habanalabs: increase max jobs number to 512
habanalabs: don't print error when queues are full
habanalabs: export uapi defines to user-space
habanalabs: remove prints on successful device initialization
habanalabs: use defines for F/W files
habanalabs: make code more concise
habanalabs: make the reset code more consistent
habanalabs: flush EQ workers in hard reset
habanalabs: add more protection of device during reset

Omer Shpigelman (9):
habanalabs: re-factor memory module code
habanalabs: type specific MMU cache invalidation
habanalabs: re-factor MMU masks and documentation
habanalabs: split MMU properties to PCI/DRAM
habanalabs: prevent read/write from/to the device during hard reset
habanalabs: optimize MMU unmap
habanalabs: skip VA block list update in reset flow
habanalabs: invalidate MMU cache only once
habanalabs: remove unnecessary checks

Tomer Tayar (3):
habanalabs: Fix typos
habanalabs: Mark queue as expecting CB handle or address
habanalabs: Add a new H/W queue type

YueHaibing (2):
habanalabs: remove set but not used variable 'ctx'
habanalabs: remove set but not used variable 'qman_base_addr'

drivers/misc/habanalabs/command_submission.c | 127 ++++---
drivers/misc/habanalabs/debugfs.c | 112 ++++--
drivers/misc/habanalabs/device.c | 18 +-
drivers/misc/habanalabs/firmware_if.c | 5 +-
drivers/misc/habanalabs/goya/goya.c | 78 ++--
drivers/misc/habanalabs/goya/goyaP.h | 2 +
drivers/misc/habanalabs/goya/goya_coresight.c | 53 +--
drivers/misc/habanalabs/goya/goya_hwmgr.c | 31 ++
drivers/misc/habanalabs/habanalabs.h | 171 +++++----
drivers/misc/habanalabs/habanalabs_ioctl.c | 73 +++-
drivers/misc/habanalabs/hw_queue.c | 249 ++++++++++---
.../habanalabs/include/goya/asic_reg/goya_masks.h | 2 +
.../habanalabs/include/goya/asic_reg/goya_regs.h | 1 +
.../include/goya/asic_reg/psoc_etr_regs.h | 114 ++++++
drivers/misc/habanalabs/include/hl_boot_if.h | 2 +
.../habanalabs/include/hw_ip/mmu/mmu_general.h | 7 +-
drivers/misc/habanalabs/include/qman_if.h | 12 +
drivers/misc/habanalabs/memory.c | 392 +++++++++++----------
drivers/misc/habanalabs/mmu.c | 204 ++++++-----
include/uapi/misc/habanalabs.h | 48 ++-
20 files changed, 1159 insertions(+), 542 deletions(-)
create mode 100644 drivers/misc/habanalabs/include/goya/asic_reg/psoc_etr_regs.h