kernel_samsung_a34x-permissive/drivers/misc/mediatek/smi/smi_pmqos.h
2024-04-28 15:49:01 +02:00

36 lines
997 B
C
Executable file

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2020 MediaTek Inc.
*/
#ifndef __SMI_PMQOS_H__
#define __SMI_PMQOS_H__
#include <smi_port.h>
#define SMI_PMQOS_BWL_MAX (0xfff)
#define SMI_PMQOS_BWL_MASK(b) \
((b) > (SMI_PMQOS_BWL_MAX) ? (SMI_PMQOS_BWL_MAX) : (b))
#if IS_ENABLED(PMQOS_USE_IOMMU_PORT)
#define SMI_PMQOS_PORT_MASK(p) MTK_IOMMU_TO_PORT(p)
#define SMI_PMQOS_LARB_DEC(l) MTK_IOMMU_TO_LARB(l)
#define SMI_PMQOS_ENC(l, p) MTK_M4U_ID(l, p)
#else
#define SMI_PMQOS_PORT_MASK(p) ((p) & 0xffff)
#define SMI_PMQOS_LARB_DEC(l) ((l) >> 16)
#define SMI_PMQOS_LARB_ENC(l) ((l) << 16)
#define SMI_PMQOS_ENC(l, p) (SMI_PMQOS_LARB_ENC(l) | SMI_PMQOS_PORT_MASK(p))
#endif
#if IS_ENABLED(CONFIG_MTK_SMI_EXT)
void
smi_bwl_update(const u32 id, const u32 bwl, const bool soft, const char *user);
void smi_ostd_update(const struct plist_head *head, const char *user);
#else
#define smi_bwl_update(id, bwl, soft, user) ((void)0)
#define smi_ostd_update(head, user) ((void)0)
#endif
#endif