Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e73b7afe authored by Joerg Roedel's avatar Joerg Roedel
Browse files

iommu/omap: Move data structures to omap-iommu.h



The internal data-structures are scattered over various
header and C files. Consolidate them in omap-iommu.h.

While at this, add the kerneldoc comment for the missing
iommu domain variable and revise the iommu_arch_data name.

Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
[s-anna@ti.com: revise kerneldoc comments]
Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 49a57ef7
Loading
Loading
Loading
Loading
+0 −16
Original line number Original line Diff line number Diff line
@@ -42,22 +42,6 @@
/* bitmap of the page sizes currently supported */
/* bitmap of the page sizes currently supported */
#define OMAP_IOMMU_PGSIZES	(SZ_4K | SZ_64K | SZ_1M | SZ_16M)
#define OMAP_IOMMU_PGSIZES	(SZ_4K | SZ_64K | SZ_1M | SZ_16M)


/**
 * struct omap_iommu_domain - omap iommu domain
 * @pgtable:	the page table
 * @iommu_dev:	an omap iommu device attached to this domain. only a single
 *		iommu device can be attached for now.
 * @dev:	Device using this domain.
 * @lock:	domain lock, should be taken when attaching/detaching
 */
struct omap_iommu_domain {
	u32 *pgtable;
	struct omap_iommu *iommu_dev;
	struct device *dev;
	spinlock_t lock;
	struct iommu_domain domain;
};

#define MMU_LOCK_BASE_SHIFT	10
#define MMU_LOCK_BASE_SHIFT	10
#define MMU_LOCK_BASE_MASK	(0x1f << MMU_LOCK_BASE_SHIFT)
#define MMU_LOCK_BASE_MASK	(0x1f << MMU_LOCK_BASE_SHIFT)
#define MMU_LOCK_BASE(x)	\
#define MMU_LOCK_BASE(x)	\
+33 −0
Original line number Original line Diff line number Diff line
@@ -14,6 +14,7 @@
#define _OMAP_IOMMU_H
#define _OMAP_IOMMU_H


#include <linux/bitops.h>
#include <linux/bitops.h>
#include <linux/iommu.h>


#define for_each_iotlb_cr(obj, n, __i, cr)				\
#define for_each_iotlb_cr(obj, n, __i, cr)				\
	for (__i = 0;							\
	for (__i = 0;							\
@@ -27,6 +28,23 @@ struct iotlb_entry {
	u32 endian, elsz, mixed;
	u32 endian, elsz, mixed;
};
};


/**
 * struct omap_iommu_domain - omap iommu domain
 * @pgtable:	the page table
 * @iommu_dev:	an omap iommu device attached to this domain. only a single
 *		iommu device can be attached for now.
 * @dev:	Device using this domain.
 * @lock:	domain lock, should be taken when attaching/detaching
 * @domain:	generic domain handle used by iommu core code
 */
struct omap_iommu_domain {
	u32 *pgtable;
	struct omap_iommu *iommu_dev;
	struct device *dev;
	spinlock_t lock;
	struct iommu_domain domain;
};

struct omap_iommu {
struct omap_iommu {
	const char	*name;
	const char	*name;
	void __iomem	*regbase;
	void __iomem	*regbase;
@@ -52,6 +70,21 @@ struct omap_iommu {
	u32 id;
	u32 id;
};
};


/**
 * struct omap_iommu_arch_data - omap iommu private data
 * @name: name of the iommu device
 * @iommu_dev: handle of the iommu device
 *
 * This is an omap iommu private data object, which binds an iommu user
 * to its iommu device. This object should be placed at the iommu user's
 * dev_archdata so generic IOMMU API can be used without having to
 * utilize omap-specific plumbing anymore.
 */
struct omap_iommu_arch_data {
	const char *name;
	struct omap_iommu *iommu_dev;
};

struct cr_regs {
struct cr_regs {
	u32 cam;
	u32 cam;
	u32 ram;
	u32 ram;
+0 −17
Original line number Original line Diff line number Diff line
@@ -12,23 +12,6 @@


#include <linux/platform_device.h>
#include <linux/platform_device.h>


#define MMU_REG_SIZE		256

/**
 * struct iommu_arch_data - omap iommu private data
 * @name: name of the iommu device
 * @iommu_dev: handle of the iommu device
 *
 * This is an omap iommu private data object, which binds an iommu user
 * to its iommu device. This object should be placed at the iommu user's
 * dev_archdata so generic IOMMU API can be used without having to
 * utilize omap-specific plumbing anymore.
 */
struct omap_iommu_arch_data {
	const char *name;
	struct omap_iommu *iommu_dev;
};

struct iommu_platform_data {
struct iommu_platform_data {
	const char *reset_name;
	const char *reset_name;
	int (*assert_reset)(struct platform_device *pdev, const char *name);
	int (*assert_reset)(struct platform_device *pdev, const char *name);