Linux Audio

Check our new training course

Loading...
 1/* shmobile-ipmmu.h
 2 *
 3 * Copyright (C) 2012  Hideki EIRAKU
 4 *
 5 * This program is free software; you can redistribute it and/or modify
 6 * it under the terms of the GNU General Public License as published by
 7 * the Free Software Foundation; version 2 of the License.
 8 */
 9
10#ifndef __SHMOBILE_IPMMU_H__
11#define __SHMOBILE_IPMMU_H__
12
13struct shmobile_ipmmu {
14	struct device *dev;
15	void __iomem *ipmmu_base;
16	int tlb_enabled;
17	spinlock_t flush_lock;
18	const char * const *dev_names;
19	unsigned int num_dev_names;
20};
21
22#ifdef CONFIG_SHMOBILE_IPMMU_TLB
23void ipmmu_tlb_flush(struct shmobile_ipmmu *ipmmu);
24void ipmmu_tlb_set(struct shmobile_ipmmu *ipmmu, unsigned long phys, int size,
25		   int asid);
26int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu);
27#else
28static inline int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu)
29{
30	return -EINVAL;
31}
32#endif
33
34#endif /* __SHMOBILE_IPMMU_H__ */