lkml.org 
[lkml]   [2011]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC 3/5] ARM: OMAP: iommu: declare a private iommu binding struct
    Date
    Declare an omap iommu private struct, which binds an iommu user
    to its iommu device. This struct 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.

    While at it, provide an accessor method to ease the retrieval of the
    omap_iommu handle from a user device.

    Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
    Cc: Tony Lindgren <tony@atomide.com>
    Cc: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
    ---
    arch/arm/plat-omap/include/plat/iommu.h | 26 ++++++++++++++++++++++++++
    1 files changed, 26 insertions(+), 0 deletions(-)

    diff --git a/arch/arm/plat-omap/include/plat/iommu.h b/arch/arm/plat-omap/include/plat/iommu.h
    index a1d79ee..fa11ee2 100644
    --- a/arch/arm/plat-omap/include/plat/iommu.h
    +++ b/arch/arm/plat-omap/include/plat/iommu.h
    @@ -111,6 +111,32 @@ struct iommu_platform_data {
    u32 da_end;
    };

    +/**
    + * 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;
    +};
    +
    +/**
    + * dev_to_omap_iommu() - retrieves an omap iommu object from a user device
    + * @dev: iommu client device
    + */
    +static inline struct omap_iommu *dev_to_omap_iommu(struct device *dev)
    +{
    + struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
    +
    + return arch_data->iommu_dev;
    +}
    +
    /* IOMMU errors */
    #define OMAP_IOMMU_ERR_TLB_MISS (1 << 0)
    #define OMAP_IOMMU_ERR_TRANS_FAULT (1 << 1)
    --
    1.7.4.1


    \
     
     \ /
      Last update: 2011-09-25 13:05    [W:0.033 / U:0.676 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site