[git pull] habanalabs pull request for kernel 5.4

From: Oded Gabbay
Date: Thu Sep 05 2019 - 08:19:40 EST


Hello Greg,

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

It contains one major change, the creation of an additional char device
per PCI device. In addition, there are some small changes and
improvements.

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

Thanks,
Oded

The following changes since commit 25ec8710d9c2cd4d0446ac60a72d388000d543e6:

w1: add DS2501, DS2502, DS2505 EPROM device driver (2019-09-04 14:34:31 +0200)

are available in the Git repository at:

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

for you to fetch changes up to 6dc66f7c26f97396a570f84f6b3c3593a6de7f11:

habanalabs: correctly cast variable to __le32 (2019-09-05 14:55:28 +0300)

----------------------------------------------------------------
This tag contains the following changes for kernel 5.4:

- Create an additional char device per PCI device. The new char device
allows any application to query the device for stats, information, idle
state and more. This is needed to support system/monitoring
applications, while also allowing the deep-learning application to send
work to the ASIC through the main (original) char device.

- Fix possible kernel crash in case user supplies a smaller-than-required
buffer to the DEBUG IOCTL.

- Expose the device to userspace only after initialization was done, to
prevent a race between the initialization and user submitting workloads.

- Add uapi, as part of INFO IOCTL, to allow user to query the device
utilization rate.

- Add uapi, as part of INFO IOCTL, to allow user to retrieve aggregate H/W
events, i.e. counting H/W events from the loading of the driver.

- Register to the HWMON subsystem with the board's name, to allow the
user to prepare a custom sensor file per board.

- Use correct macros for endian swapping.

- Improve error printing in multiple places.

- Small bug fixes.

----------------------------------------------------------------
Chuhong Yuan (1):
habanalabs: Use dev_get_drvdata

Dotan Barak (1):
habanalabs: explicitly set the queue-id enumerated numbers

Oded Gabbay (21):
habanalabs: remove write_open_cnt property
habanalabs: add comments on INFO IOCTL
habanalabs: add debug print when rejecting CS
habanalabs: cap simulator timeout
habanalabs: power management through sysfs is only for GOYA
habanalabs: add handle field to context structure
habanalabs: kill user process after CS rollback
habanalabs: show the process context dram usage
habanalabs: rename user_ctx as compute_ctx
habanalabs: maintain a list of file private data objects
habanalabs: change device_setup_cdev() to be more generic
habanalabs: create two char devices per ASIC
habanalabs: replace __cpu_to_le32/64 with cpu_to_le32/64
habanalabs: replace __le32_to_cpu with le32_to_cpu
habanalabs: print to kernel log when reset is finished
habanalabs: add uapi to retrieve device utilization
habanalabs: add uapi to retrieve aggregate H/W events
habanalabs: display card name as sensors header
habanalabs: stop using the acronym KMD
habanalabs: show correct id in error print
habanalabs: correctly cast variable to __le32

Omer Shpigelman (2):
habanalabs: use default structure for user input in Debug IOCTL
habanalabs: improve security in Debug IOCTL

Tomer Tayar (5):
habanalabs: Add descriptive names to PSOC scratch-pad registers
habanalabs: Add descriptive name to PSOC app status register
habanalabs: Expose devices after initialization is done
habanalabs: Handle HW_IP_INFO if device disabled or in reset
habanalabs: Make the Coresight timestamp perpetual

Documentation/ABI/testing/sysfs-driver-habanalabs | 14 +-
drivers/misc/habanalabs/asid.c | 2 +-
drivers/misc/habanalabs/command_buffer.c | 3 +-
drivers/misc/habanalabs/command_submission.c | 27 +-
drivers/misc/habanalabs/context.c | 40 +-
drivers/misc/habanalabs/debugfs.c | 16 +-
drivers/misc/habanalabs/device.c | 488 +++++++++++++++------
drivers/misc/habanalabs/goya/goya.c | 95 ++--
drivers/misc/habanalabs/goya/goyaP.h | 19 +-
drivers/misc/habanalabs/goya/goya_coresight.c | 89 ++--
drivers/misc/habanalabs/goya/goya_hwmgr.c | 109 +++++
drivers/misc/habanalabs/habanalabs.h | 129 ++++--
drivers/misc/habanalabs/habanalabs_drv.c | 171 +++++---
drivers/misc/habanalabs/habanalabs_ioctl.c | 180 ++++++--
drivers/misc/habanalabs/hw_queue.c | 18 +-
drivers/misc/habanalabs/hwmon.c | 24 +-
drivers/misc/habanalabs/include/armcp_if.h | 85 ++--
drivers/misc/habanalabs/include/goya/goya.h | 2 +
.../misc/habanalabs/include/goya/goya_reg_map.h | 34 ++
drivers/misc/habanalabs/irq.c | 4 +-
drivers/misc/habanalabs/sysfs.c | 126 +-----
include/uapi/misc/habanalabs.h | 102 +++--
22 files changed, 1177 insertions(+), 600 deletions(-)
create mode 100644 drivers/misc/habanalabs/include/goya/goya_reg_map.h