162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2020-2023 Intel Corporation
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __IVPU_FW_LOG_H__
762306a36Sopenharmony_ci#define __IVPU_FW_LOG_H__
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/types.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <drm/drm_print.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include "ivpu_drv.h"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define IVPU_FW_LOG_DEFAULT 0
1662306a36Sopenharmony_ci#define IVPU_FW_LOG_DEBUG   1
1762306a36Sopenharmony_ci#define IVPU_FW_LOG_INFO    2
1862306a36Sopenharmony_ci#define IVPU_FW_LOG_WARN    3
1962306a36Sopenharmony_ci#define IVPU_FW_LOG_ERROR   4
2062306a36Sopenharmony_ci#define IVPU_FW_LOG_FATAL   5
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciextern unsigned int ivpu_log_level;
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#define IVPU_FW_VERBOSE_BUFFER_SMALL_SIZE	SZ_1M
2562306a36Sopenharmony_ci#define IVPU_FW_VERBOSE_BUFFER_LARGE_SIZE	SZ_8M
2662306a36Sopenharmony_ci#define IVPU_FW_CRITICAL_BUFFER_SIZE		SZ_512K
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_civoid ivpu_fw_log_print(struct ivpu_device *vdev, bool only_new_msgs, struct drm_printer *p);
2962306a36Sopenharmony_civoid ivpu_fw_log_clear(struct ivpu_device *vdev);
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_cistatic inline void ivpu_fw_log_dump(struct ivpu_device *vdev)
3262306a36Sopenharmony_ci{
3362306a36Sopenharmony_ci	struct drm_printer p = drm_info_printer(vdev->drm.dev);
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	ivpu_fw_log_print(vdev, false, &p);
3662306a36Sopenharmony_ci}
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci#endif /* __IVPU_FW_LOG_H__ */
39