Skip to content

Commit 5ffc06e

Browse files
committed
Merge tag 'char-misc-5.15-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull habanalabs updates from Greg KH: "Here is another round of misc driver patches for 5.15-rc1. In here is only updates for the Habanalabs driver. This request is late because the previously-objected-to dma-buf patches are all removed and some fixes that you and others found are now included in here as well. All of these have been in linux-next for well over a week with no reports of problems, and they are all self-contained to only this one driver. Full details are in the shortlog" * tag 'char-misc-5.15-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (61 commits) habanalabs/gaudi: hwmon default card name habanalabs: add support for f/w reset habanalabs/gaudi: block ICACHE_BASE_ADDERESS_HIGH in TPC habanalabs: cannot sleep while holding spinlock habanalabs: never copy_from_user inside spinlock habanalabs: remove unnecessary device status check habanalabs: disable IRQ in user interrupts spinlock habanalabs: add "in device creation" status habanalabs/gaudi: invalidate PMMU mem cache on init habanalabs/gaudi: size should be printed in decimal habanalabs/gaudi: define DC POWER for secured PMC habanalabs/gaudi: unmask out of bounds SLM access interrupt habanalabs: add userptr_lookup node in debugfs habanalabs/gaudi: fetch TPC/MME ECC errors from F/W habanalabs: modify multi-CS to wait on stream masters habanalabs/gaudi: add monitored SOBs to state dump habanalabs/gaudi: restore user registers when context opens habanalabs/gaudi: increase boot fit timeout habanalabs: update to latest firmware headers habanalabs/gaudi: minimize number of register reads ...
2 parents a668acb + 4cd67ad commit 5ffc06e

28 files changed

+3918
-834
lines changed

Documentation/ABI/testing/debugfs-driver-habanalabs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,17 @@ Description: Sets the skip reset on timeout option for the device. Value of
215215
"0" means device will be reset in case some CS has timed out,
216216
otherwise it will not be reset.
217217

218+
What: /sys/kernel/debug/habanalabs/hl<n>/state_dump
219+
Date: Oct 2021
220+
KernelVersion: 5.15
221+
222+
Description: Gets the state dump occurring on a CS timeout or failure.
223+
State dump is used for debug and is created each time in case of
224+
a problem in a CS execution, before reset.
225+
Reading from the node returns the newest state dump available.
226+
Writing an integer X discards X state dumps, so that the
227+
next read would return X+1-st newest state dump.
228+
218229
What: /sys/kernel/debug/habanalabs/hl<n>/stop_on_err
219230
Date: Mar 2020
220231
KernelVersion: 5.6
@@ -230,6 +241,14 @@ Description: Displays a list with information about the currently user
230241
pointers (user virtual addresses) that are pinned and mapped
231242
to DMA addresses
232243

244+
What: /sys/kernel/debug/habanalabs/hl<n>/userptr_lookup
245+
Date: Aug 2021
246+
KernelVersion: 5.15
247+
248+
Description: Allows to search for specific user pointers (user virtual
249+
addresses) that are pinned and mapped to DMA addresses, and see
250+
their resolution to the specific dma address.
251+
233252
What: /sys/kernel/debug/habanalabs/hl<n>/vm
234253
Date: Jan 2019
235254
KernelVersion: 5.1

drivers/misc/habanalabs/common/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ HL_COMMON_FILES := common/habanalabs_drv.o common/device.o common/context.o \
1010
common/asid.o common/habanalabs_ioctl.o \
1111
common/command_buffer.o common/hw_queue.o common/irq.o \
1212
common/sysfs.o common/hwmon.o common/memory.o \
13-
common/command_submission.o common/firmware_if.o
13+
common/command_submission.o common/firmware_if.o \
14+
common/state_dump.o

drivers/misc/habanalabs/common/command_buffer.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,6 @@ int hl_cb_create(struct hl_device *hdev, struct hl_cb_mgr *mgr,
314314

315315
spin_lock(&mgr->cb_lock);
316316
rc = idr_alloc(&mgr->cb_handles, cb, 1, 0, GFP_ATOMIC);
317-
if (rc < 0)
318-
rc = idr_alloc(&mgr->cb_handles, cb, 1, 0, GFP_KERNEL);
319317
spin_unlock(&mgr->cb_lock);
320318

321319
if (rc < 0) {
@@ -552,7 +550,7 @@ int hl_cb_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma)
552550

553551
vma->vm_private_data = cb;
554552

555-
rc = hdev->asic_funcs->cb_mmap(hdev, vma, cb->kernel_address,
553+
rc = hdev->asic_funcs->mmap(hdev, vma, cb->kernel_address,
556554
cb->bus_address, cb->size);
557555
if (rc) {
558556
spin_lock(&cb->lock);

0 commit comments

Comments
 (0)