Skip to content

Commit

Permalink
accel/ivpu: Reset fw log on cold boot
Browse files Browse the repository at this point in the history
Add ivpu_fw_log_reset() that resets the read_index of all FW logs
on cold boot so logs are properly read.

Signed-off-by: Tomasz Rusinowicz <tomasz.rusinowicz@intel.com>
Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240930195322.461209-4-jacek.lawrynowicz@linux.intel.com
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
  • Loading branch information
Tomasz Rusinowicz authored and Jacek Lawrynowicz committed Oct 11, 2024
1 parent 3a3fb81 commit 4b4d9e3
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/accel/ivpu/ivpu_fw_log.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,3 +140,17 @@ void ivpu_fw_log_clear(struct ivpu_device *vdev)
while (fw_log_ptr(vdev, vdev->fw->mem_log_verb, &next, &log_header) == 0)
log_header->read_index = log_header->write_index;
}

void ivpu_fw_log_reset(struct ivpu_device *vdev)
{
struct vpu_tracing_buffer_header *log_header;
u32 next;

next = 0;
while (fw_log_ptr(vdev, vdev->fw->mem_log_crit, &next, &log_header) == 0)
log_header->read_index = 0;

next = 0;
while (fw_log_ptr(vdev, vdev->fw->mem_log_verb, &next, &log_header) == 0)
log_header->read_index = 0;
}
1 change: 1 addition & 0 deletions drivers/accel/ivpu/ivpu_fw_log.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ extern unsigned int ivpu_fw_log_level;

void ivpu_fw_log_print(struct ivpu_device *vdev, bool only_new_msgs, struct drm_printer *p);
void ivpu_fw_log_clear(struct ivpu_device *vdev);
void ivpu_fw_log_reset(struct ivpu_device *vdev);

static inline void ivpu_fw_log_dump(struct ivpu_device *vdev)
{
Expand Down
1 change: 1 addition & 0 deletions drivers/accel/ivpu/ivpu_pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ static void ivpu_pm_prepare_cold_boot(struct ivpu_device *vdev)

ivpu_cmdq_reset_all_contexts(vdev);
ivpu_ipc_reset(vdev);
ivpu_fw_log_reset(vdev);
ivpu_fw_load(vdev);
fw->entry_point = fw->cold_boot_entry_point;
}
Expand Down

0 comments on commit 4b4d9e3

Please sign in to comment.