forked from luck/tmp_suning_uos_patched
1802d0beec
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 655 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Reviewed-by: Richard Fontana <rfontana@redhat.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
51 lines
1.1 KiB
C
51 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2015-2016 MediaTek Inc.
|
|
* Author: Yong Wu <yong.wu@mediatek.com>
|
|
*/
|
|
#ifndef MTK_IOMMU_SMI_H
|
|
#define MTK_IOMMU_SMI_H
|
|
|
|
#include <linux/bitops.h>
|
|
#include <linux/device.h>
|
|
|
|
#ifdef CONFIG_MTK_SMI
|
|
|
|
#define MTK_LARB_NR_MAX 16
|
|
|
|
#define MTK_SMI_MMU_EN(port) BIT(port)
|
|
|
|
struct mtk_smi_larb_iommu {
|
|
struct device *dev;
|
|
unsigned int mmu;
|
|
};
|
|
|
|
struct mtk_smi_iommu {
|
|
unsigned int larb_nr;
|
|
struct mtk_smi_larb_iommu larb_imu[MTK_LARB_NR_MAX];
|
|
};
|
|
|
|
/*
|
|
* mtk_smi_larb_get: Enable the power domain and clocks for this local arbiter.
|
|
* It also initialize some basic setting(like iommu).
|
|
* mtk_smi_larb_put: Disable the power domain and clocks for this local arbiter.
|
|
* Both should be called in non-atomic context.
|
|
*
|
|
* Returns 0 if successful, negative on failure.
|
|
*/
|
|
int mtk_smi_larb_get(struct device *larbdev);
|
|
void mtk_smi_larb_put(struct device *larbdev);
|
|
|
|
#else
|
|
|
|
static inline int mtk_smi_larb_get(struct device *larbdev)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void mtk_smi_larb_put(struct device *larbdev) { }
|
|
|
|
#endif
|
|
|
|
#endif
|