History log of /linux-6.15/drivers/accel/ivpu/ (Results 1 – 25 of 292)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
2f0c6fce08-May-2025 Markus Burri <[email protected]>

accel/ivpu: Use effective buffer size for zero terminator

Use the effective written size instead of original size as index for zero
termination. If the input from user-space is to larger and the inp

accel/ivpu: Use effective buffer size for zero terminator

Use the effective written size instead of original size as index for zero
termination. If the input from user-space is to larger and the input is
truncated, the original size is out-of-bound.
Since there is an upfront size check here, the change is for consistency.

Signed-off-by: Markus Burri <[email protected]>
Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

75680b7c25-Apr-2025 Karol Wachowski <[email protected]>

accel/ivpu: Correct mutex unlock order in job submission

The mutex unlock for vdev->submitted_jobs_lock was incorrectly placed
before unlocking file_priv->lock. Change order of unlocks to avoid pote

accel/ivpu: Correct mutex unlock order in job submission

The mutex unlock for vdev->submitted_jobs_lock was incorrectly placed
before unlocking file_priv->lock. Change order of unlocks to avoid potential
race conditions.

Fixes: 5bbccadaf33e ("accel/ivpu: Abort all jobs after command queue unregister")
Signed-off-by: Karol Wachowski <[email protected]>
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

f2ecc70025-Apr-2025 Jacek Lawrynowicz <[email protected]>

accel/ivpu: Fix pm related deadlocks in cmdq ioctls

Fix deadlocks in ivpu_cmdq_create_ioctl() and ivpu_cmdq_destroy_ioctl()
related to runtime suspend.

Runtime suspend acquires file_priv->lock mute

accel/ivpu: Fix pm related deadlocks in cmdq ioctls

Fix deadlocks in ivpu_cmdq_create_ioctl() and ivpu_cmdq_destroy_ioctl()
related to runtime suspend.

Runtime suspend acquires file_priv->lock mutex by calling
ivpu_cmdq_reset_all_contexts(). The same lock is acquired in the cmdq
ioctls. If one of the cmdq ioctls is called while runtime suspend is in
progress, it can lead to a deadlock.

Call stacks from example deadlock below.

Runtime suspend thread:
[ 3443.179717] Call Trace:
[ 3443.179724] __schedule+0x4b6/0x16b0
[ 3443.179732] ? __mod_timer+0x27d/0x3a0
[ 3443.179738] schedule+0x2f/0x140
[ 3443.179741] schedule_preempt_disabled+0x19/0x30
[ 3443.179743] __mutex_lock.constprop.0+0x335/0x7d0
[ 3443.179745] ? xas_find+0x1ed/0x260
[ 3443.179747] ? xa_find+0x8e/0xf0
[ 3443.179749] __mutex_lock_slowpath+0x13/0x20
[ 3443.179751] mutex_lock+0x41/0x60
[ 3443.179757] ivpu_cmdq_reset_all_contexts+0x82/0x150 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.179786] ivpu_pm_runtime_suspend_cb+0x1f1/0x3f0 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.179850] pci_pm_runtime_suspend+0x6e/0x1f0
[ 3443.179870] ? __pfx_pci_pm_runtime_suspend+0x10/0x10
[ 3443.179886] __rpm_callback+0x48/0x130
[ 3443.179899] rpm_callback+0x64/0x70
[ 3443.179911] rpm_suspend+0x12c/0x630
[ 3443.179922] ? __schedule+0x4be/0x16b0
[ 3443.179941] pm_runtime_work+0xca/0xf0
[ 3443.179955] process_one_work+0x188/0x3d0
[ 3443.179971] worker_thread+0x2b9/0x3c0
[ 3443.179984] kthread+0xfb/0x220
[ 3443.180001] ? __pfx_worker_thread+0x10/0x10
[ 3443.180013] ? __pfx_kthread+0x10/0x10
[ 3443.180029] ret_from_fork+0x47/0x70
[ 3443.180044] ? __pfx_kthread+0x10/0x10
[ 3443.180059] ret_from_fork_asm+0x1a/0x30

User space thread:
[ 3443.180128] Call Trace:
[ 3443.180138] __schedule+0x4b6/0x16b0
[ 3443.180159] schedule+0x2f/0x140
[ 3443.180163] rpm_resume+0x1a7/0x6a0
[ 3443.180165] ? __pfx_autoremove_wake_function+0x10/0x10
[ 3443.180169] __pm_runtime_resume+0x56/0x90
[ 3443.180171] ivpu_rpm_get+0x28/0xb0 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.180181] ivpu_ipc_send_receive+0x6d/0x120 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.180193] ? free_frozen_pages+0x395/0x670
[ 3443.180199] ? __free_pages+0xa7/0xc0
[ 3443.180202] ivpu_jsm_hws_destroy_cmdq+0x76/0xf0 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.180213] ? locks_dispose_list+0x6c/0xa0
[ 3443.180219] ? kmem_cache_free+0x342/0x470
[ 3443.180222] ? vm_area_free+0x19/0x30
[ 3443.180225] ? xas_load+0x17/0xf0
[ 3443.180229] ? xa_load+0x72/0xb0
[ 3443.180230] ivpu_cmdq_unregister.isra.0+0xb1/0x100 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.180241] ivpu_cmdq_destroy_ioctl+0x8d/0x130 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.180251] ? __pfx_ivpu_cmdq_destroy_ioctl+0x10/0x10 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.180260] drm_ioctl_kernel+0xb3/0x110
[ 3443.180265] drm_ioctl+0x2ca/0x580
[ 3443.180266] ? __pfx_ivpu_cmdq_destroy_ioctl+0x10/0x10 [intel_vpu a9bd091a97f28f0235f161316b29f8234f437295]
[ 3443.180275] ? __fput+0x1ae/0x2f0
[ 3443.180279] ? kmem_cache_free+0x342/0x470
[ 3443.180282] __x64_sys_ioctl+0xa9/0xe0
[ 3443.180286] x64_sys_call+0x13b7/0x26f0
[ 3443.180289] do_syscall_64+0x62/0x180
[ 3443.180291] entry_SYSCALL_64_after_hwframe+0x71/0x79

Fixes: 465a3914b254 ("accel/ivpu: Add API for command queue create/destroy/submit")
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

c4eb2f8825-Apr-2025 Jacek Lawrynowicz <[email protected]>

accel/ivpu: Increase state dump msg timeout

Increase JMS message state dump command timeout to 100 ms. On some
platforms, the FW may take a bit longer than 50 ms to dump its state
to the log buffer

accel/ivpu: Increase state dump msg timeout

Increase JMS message state dump command timeout to 100 ms. On some
platforms, the FW may take a bit longer than 50 ms to dump its state
to the log buffer and we don't want to miss any debug info during TDR.

Fixes: 5e162f872d7a ("accel/ivpu: Add FW state dump on TDR")
Cc: [email protected] # v6.13+
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

759ee40016-Apr-2025 Andrzej Kacprowski <[email protected]>

accel/ivpu: Fix the D0i2 disable test mode

Correct setup of D0i2 disable which was
by mistake set up to value 1 and use BIT(1) instead.

Fixes: 011529fe8112 ("accel/ivpu: Implement D0i2 disable test

accel/ivpu: Fix the D0i2 disable test mode

Correct setup of D0i2 disable which was
by mistake set up to value 1 and use BIT(1) instead.

Fixes: 011529fe8112 ("accel/ivpu: Implement D0i2 disable test mode")
Signed-off-by: Andrzej Kacprowski <[email protected]>
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

e53e004e16-Apr-2025 Karol Wachowski <[email protected]>

accel/ivpu: Correct DCT interrupt handling

Fix improper use of dct_active_percent field in DCT interrupt handler
causing DCT to never get enabled. Set dct_active_percent internally before
IPC to ens

accel/ivpu: Correct DCT interrupt handling

Fix improper use of dct_active_percent field in DCT interrupt handler
causing DCT to never get enabled. Set dct_active_percent internally before
IPC to ensure correct driver value even if IPC fails.
Set default DCT value to 30 accordingly to HW architecture specification.

Fixes: a19bffb10c46 ("accel/ivpu: Implement DCT handling")
Signed-off-by: Karol Wachowski <[email protected]>
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

31660b4001-Apr-2025 Karol Wachowski <[email protected]>

accel/ivpu: Add cmdq_id to job related logs

Add tracking of command queue ID in JOB debug message to improve
debugging capabilities.

Signed-off-by: Karol Wachowski <[email protected]>
Signe

accel/ivpu: Add cmdq_id to job related logs

Add tracking of command queue ID in JOB debug message to improve
debugging capabilities.

Signed-off-by: Karol Wachowski <[email protected]>
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Lizhi Hou <[email protected]>
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

1524c28b01-Apr-2025 Andrzej Kacprowski <[email protected]>

accel/ivpu: Show NPU frequency in sysfs

Add sysfs files that show maximum and current
frequency of the NPU's data processing unit.
New sysfs entries:
- npu_max_frequency_mhz
- npu_current_frequency_

accel/ivpu: Show NPU frequency in sysfs

Add sysfs files that show maximum and current
frequency of the NPU's data processing unit.
New sysfs entries:
- npu_max_frequency_mhz
- npu_current_frequency_mhz

Signed-off-by: Andrzej Kacprowski <[email protected]>
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

6c2b754001-Apr-2025 Andrzej Kacprowski <[email protected]>

accel/ivpu: Fix the NPU's DPU frequency calculation

Fix the frequency returned to the user space by
the DRM_IVPU_PARAM_CORE_CLOCK_RATE GET_PARAM IOCTL.
The kernel driver returned CPU frequency for M

accel/ivpu: Fix the NPU's DPU frequency calculation

Fix the frequency returned to the user space by
the DRM_IVPU_PARAM_CORE_CLOCK_RATE GET_PARAM IOCTL.
The kernel driver returned CPU frequency for MTL and bare
PLL frequency for LNL - this was inconsistent and incorrect
for both platforms. With this fix the driver returns maximum
frequency of the NPU data processing unit (DPU) for all HW
generations. This is what user space always expected.

Also do not set CPU frequency in boot params - the firmware
does not use frequency passed from the driver, it was only
used by the early pre-production firmware.
With that we can remove CPU frequency calculation code.

Show NPU frequency in FREQ_CHANGE interrupt when frequency
tracking is enabled.

Fixes: 8a27ad81f7d3 ("accel/ivpu: Split IP and buttress code")
Cc: [email protected] # v6.11+
Signed-off-by: Andrzej Kacprowski <[email protected]>
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

082a29e201-Apr-2025 Karol Wachowski <[email protected]>

accel/ivpu: Update FW Boot API to version 3.28.3

Update firmware Boot API to 3.28.3 version and
adjust driver to API changes for preemption buffers.

Use new preemption buffer size fields from FW he

accel/ivpu: Update FW Boot API to version 3.28.3

Update firmware Boot API to 3.28.3 version and
adjust driver to API changes for preemption buffers.

Use new preemption buffer size fields from FW header added to
firmware boot API for preemption buffers allocations,
if those new fields are zeroed, use old values instead.

Signed-off-by: Karol Wachowski <[email protected]>
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

683e9fa101-Apr-2025 Maciej Falkowski <[email protected]>

accel/ivpu: Flush pending jobs of device's workqueues

Use flush_work() instead of cancel_work_sync() for driver IRQ
workqueues to guarantee that remaining pending work
will be handled.

This resolve

accel/ivpu: Flush pending jobs of device's workqueues

Use flush_work() instead of cancel_work_sync() for driver IRQ
workqueues to guarantee that remaining pending work
will be handled.

This resolves two issues that were encountered where a driver was left
in an incorrect state as the bottom-half was canceled:

1. Cancelling context-abort of a job that is still executing and
is causing translation faults which is going to cause additional TDRs

2. Cancelling bottom-half of a DCT (duty-cycle throttling) request
which will cause a device to not be adjusted to an external frequency
request.

Fixes: bc3e5f48b7ee ("accel/ivpu: Use workqueue for IRQ handling")
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Lizhi Hou <[email protected]>
Reviewed-by: Jeff Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

d893da8525-Mar-2025 Jacek Lawrynowicz <[email protected]>

accel/ivpu: Fix PM related deadlocks in MS IOCTLs

Prevent runtime resume/suspend while MS IOCTLs are in progress.
Failed suspend will call ivpu_ms_cleanup() that would try to acquire
file_priv->ms_l

accel/ivpu: Fix PM related deadlocks in MS IOCTLs

Prevent runtime resume/suspend while MS IOCTLs are in progress.
Failed suspend will call ivpu_ms_cleanup() that would try to acquire
file_priv->ms_lock, which is already held by the IOCTLs.

Fixes: cdfad4db7756 ("accel/ivpu: Add NPU profiling support")
Cc: [email protected] # v6.11+
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Lizhi Hou <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

9a6f567625-Mar-2025 Jacek Lawrynowicz <[email protected]>

accel/ivpu: Fix deadlock in ivpu_ms_cleanup()

Fix deadlock in ivpu_ms_cleanup() by preventing runtime resume after
file_priv->ms_lock is acquired.

During a failure in runtime resume, a cold boot is

accel/ivpu: Fix deadlock in ivpu_ms_cleanup()

Fix deadlock in ivpu_ms_cleanup() by preventing runtime resume after
file_priv->ms_lock is acquired.

During a failure in runtime resume, a cold boot is executed, which
calls ivpu_ms_cleanup_all(). This function calls ivpu_ms_cleanup()
that acquires file_priv->ms_lock and causes the deadlock.

Fixes: cdfad4db7756 ("accel/ivpu: Add NPU profiling support")
Cc: [email protected] # v6.11+
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Lizhi Hou <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...

6b4568b625-Mar-2025 Jacek Lawrynowicz <[email protected]>

accel/ivpu: Fix warning in ivpu_ipc_send_receive_internal()

Warn if device is suspended only when runtime PM is enabled.
Runtime PM is disabled during reset/recovery and it is not an error
to use iv

accel/ivpu: Fix warning in ivpu_ipc_send_receive_internal()

Warn if device is suspended only when runtime PM is enabled.
Runtime PM is disabled during reset/recovery and it is not an error
to use ivpu_ipc_send_receive_internal() in such cases.

Fixes: 5eaa49741119 ("accel/ivpu: Prevent recovery invocation during probe and resume")
Cc: [email protected] # v6.13+
Signed-off-by: Maciej Falkowski <[email protected]>
Reviewed-by: Lizhi Hou <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

show more ...


/linux-6.15/.mailmap
/linux-6.15/MAINTAINERS
/linux-6.15/drivers/accel/amdxdna/amdxdna_mailbox.c
ivpu_ipc.c
/linux-6.15/drivers/accel/qaic/qaic_data.c
/linux-6.15/drivers/dma-buf/udmabuf.c
/linux-6.15/drivers/gpu/drm/display/drm_dp_helper.c
/linux-6.15/drivers/gpu/drm/display/drm_dp_mst_topology.c
/linux-6.15/drivers/gpu/drm/drm_atomic_uapi.c
/linux-6.15/drivers/gpu/drm/drm_connector.c
/linux-6.15/drivers/gpu/drm/drm_fbdev_dma.c
/linux-6.15/drivers/gpu/drm/drm_panic_qr.rs
/linux-6.15/drivers/gpu/drm/gma500/mid_bios.c
/linux-6.15/drivers/gpu/drm/hisilicon/hibmc/Kconfig
/linux-6.15/drivers/gpu/drm/imagination/Makefile
/linux-6.15/drivers/gpu/drm/imagination/pvr_fw.c
/linux-6.15/drivers/gpu/drm/imagination/pvr_fw_meta.c
/linux-6.15/drivers/gpu/drm/imagination/pvr_fw_trace.c
/linux-6.15/drivers/gpu/drm/imagination/pvr_job.c
/linux-6.15/drivers/gpu/drm/imagination/pvr_queue.c
/linux-6.15/drivers/gpu/drm/imagination/pvr_queue.h
/linux-6.15/drivers/gpu/drm/imagination/pvr_vm.c
/linux-6.15/drivers/gpu/drm/imagination/pvr_vm.h
/linux-6.15/drivers/gpu/drm/nouveau/Kconfig
/linux-6.15/drivers/gpu/drm/nouveau/nouveau_bo.c
/linux-6.15/drivers/gpu/drm/nouveau/nouveau_connector.c
/linux-6.15/drivers/gpu/drm/nouveau/nouveau_gem.c
/linux-6.15/drivers/gpu/drm/nouveau/nouveau_svm.c
/linux-6.15/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp10b.c
/linux-6.15/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
/linux-6.15/drivers/gpu/drm/panthor/panthor_drv.c
/linux-6.15/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h
/linux-6.15/drivers/gpu/drm/scheduler/sched_entity.c
/linux-6.15/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
/linux-6.15/drivers/gpu/drm/tiny/bochs.c
/linux-6.15/drivers/gpu/drm/v3d/v3d_sched.c
/linux-6.15/drivers/gpu/drm/virtio/virtgpu_prime.c
/linux-6.15/drivers/gpu/drm/vkms/vkms_composer.c
/linux-6.15/drivers/gpu/host1x/dev.c
/linux-6.15/drivers/gpu/host1x/intr.c
/linux-6.15/include/drm/display/drm_dp.h
/linux-6.15/kernel/cgroup/dmem.c
011529fe04-Feb-2025 Karol Wachowski <[email protected]>

accel/ivpu: Implement D0i2 disable test mode

Add power_profile firmware boot param and set it to 0 by default
which is default FW power profile.

Implement IVPU_TEST_MODE_D0I2_DISABLE which is used

accel/ivpu: Implement D0i2 disable test mode

Add power_profile firmware boot param and set it to 0 by default
which is default FW power profile.

Implement IVPU_TEST_MODE_D0I2_DISABLE which is used for setting
power profile boot param value to 1 which prevents NPU from entering
d0i2 power state.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Karol Wachowski <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

55e856c304-Feb-2025 Karol Wachowski <[email protected]>

accel/ivpu: Add test modes to toggle clock relinquish disable

Add IVPU_TEST_MODE_CLK_RELINQ_[DISABLE|ENABLE] that overrides
workaround for disabling clock relinquish for testing purposes.

Reviewed-

accel/ivpu: Add test modes to toggle clock relinquish disable

Add IVPU_TEST_MODE_CLK_RELINQ_[DISABLE|ENABLE] that overrides
workaround for disabling clock relinquish for testing purposes.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Karol Wachowski <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

67725f5e04-Feb-2025 Tomasz Rusinowicz <[email protected]>

accel/ivpu: Allow to import single buffer into multiple contexts

Use ivpu_gem_prime_import() based on drm_gem_prime_import_dev()
for importing buffers, removing optimization for same device
imports.

accel/ivpu: Allow to import single buffer into multiple contexts

Use ivpu_gem_prime_import() based on drm_gem_prime_import_dev()
for importing buffers, removing optimization for same device
imports. This optimization reused the same ivpu_bo object in multiple
contexts but a single buffer can be MMU-mapped only to a single context.
Each import now creates a new instance of ivpu_bo object that shares
the same sg_table but have separate MMU mappings.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Tomasz Rusinowicz <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

320323d204-Feb-2025 Karol Wachowski <[email protected]>

accel/ivpu: Add debugfs interface for setting HWS priority bands

Add debugfs interface to modify following priority bands properties:
* grace period
* process grace period
* process quantum

This

accel/ivpu: Add debugfs interface for setting HWS priority bands

Add debugfs interface to modify following priority bands properties:
* grace period
* process grace period
* process quantum

This allows for the adjustment of hardware scheduling algorithm parameters
for each existing priority band, facilitating validation and fine-tuning.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Karol Wachowski <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

7806bad704-Feb-2025 Andrzej Kacprowski <[email protected]>

accel/ivpu: Prevent runtime suspend during context abort work

Increment the runtime PM counter when entering
ivpu_context_abort_work_fn() to prevent the device
from suspending while the function is

accel/ivpu: Prevent runtime suspend during context abort work

Increment the runtime PM counter when entering
ivpu_context_abort_work_fn() to prevent the device
from suspending while the function is executing.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Andrzej Kacprowski <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

4720e0ad04-Feb-2025 Andrzej Kacprowski <[email protected]>

accel/ivpu: Add missing locks around mmu queues

Multiple threads were accessing mmu cmd queue simultaneously
causing sporadic failures in ivpu_mmu_cmdq_sync() function.
Protect critical code with mm

accel/ivpu: Add missing locks around mmu queues

Multiple threads were accessing mmu cmd queue simultaneously
causing sporadic failures in ivpu_mmu_cmdq_sync() function.
Protect critical code with mmu mutex.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Andrzej Kacprowski <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

d24b85df29-Jan-2025 Karol Wachowski <[email protected]>

accel/ivpu: Move recovery work to system_unbound_wq

Recovery work doesn't need to be bound to any specific CPU, so move it
to unbound workqueue to improve execution time and system latency.

Reviewe

accel/ivpu: Move recovery work to system_unbound_wq

Recovery work doesn't need to be bound to any specific CPU, so move it
to unbound workqueue to improve execution time and system latency.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Karol Wachowski <[email protected]>
Reviewed-by: Jeffrey Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

af80fe1329-Jan-2025 Tomasz Rusinowicz <[email protected]>

accel/ivpu: Enable recovery and adjust timeouts for fpga

Recovery now works on fpga. JSM state dump timeout needs to
be really long for the new fpga model releases.

Enable punit on fpga.

Reviewed-

accel/ivpu: Enable recovery and adjust timeouts for fpga

Recovery now works on fpga. JSM state dump timeout needs to
be really long for the new fpga model releases.

Enable punit on fpga.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Tomasz Rusinowicz <[email protected]>
Reviewed-by: Jeffrey Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

3a40d4f429-Jan-2025 Karol Wachowski <[email protected]>

accel/ivpu: Turn on HWS by default on all platforms

Hardware scheduling (HWS) is supposed to be supported on all existing
platform with recent FW including pre-silicon ones. Turn on HWS by
default.

accel/ivpu: Turn on HWS by default on all platforms

Hardware scheduling (HWS) is supposed to be supported on all existing
platform with recent FW including pre-silicon ones. Turn on HWS by
default.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Karol Wachowski <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

2f5bbea129-Jan-2025 Karol Wachowski <[email protected]>

accel/ivpu: Fix missing MMU events if file_priv is unbound

Move the ivpu_mmu_discard_events() function to the common portion of
the abort work function. This ensures it is called only once, even if

accel/ivpu: Fix missing MMU events if file_priv is unbound

Move the ivpu_mmu_discard_events() function to the common portion of
the abort work function. This ensures it is called only once, even if
there are no faulty contexts in context_xa, to guarantee that MMU events
are discarded and new events are not missed.

Reviewed-by: Jacek Lawrynowicz <[email protected]>
Signed-off-by: Karol Wachowski <[email protected]>
Reviewed-by: Jeffrey Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

b8c0032329-Jan-2025 Jacek Lawrynowicz <[email protected]>

accel/ivpu: Update last_busy in IRQ handler

Call pm_runtime_mark_last_busy() in top half of IRQ handler to prevent
device from being runtime suspended before bottom half is executed on
a workqueue.

accel/ivpu: Update last_busy in IRQ handler

Call pm_runtime_mark_last_busy() in top half of IRQ handler to prevent
device from being runtime suspended before bottom half is executed on
a workqueue.

Reviewed-by: Karol Wachowski <[email protected]>
Reviewed-by: Jeffrey Hugo <[email protected]>
Signed-off-by: Jacek Lawrynowicz <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]

show more ...

12345678910>>...12