• S
    iommu/omap: Consolidate OMAP IOMMU modules · bd4396f0
    Suman Anna 提交于
    The OMAP IOMMU driver was originally designed as modules, and split
    into a core module and a thin arch-specific module through the OMAP
    arch-specific struct iommu_functions, to scale for both OMAP1 and
    OMAP2+ IOMMU variants. The driver can only be built for OMAP2+
    platforms currently, and also can only be built-in after the
    adaptation to generic IOMMU API. The OMAP1 variant was never added
    and will most probably be never added (the code for the only potential
    user, its parent, DSP processor has already been cleaned up). So,
    consolidate the OMAP2 specific omap-iommu2 module into the core OMAP
    IOMMU driver - this eliminates the arch-specific ops structure and
    simplifies the driver into a single module that only implements the
    generic IOMMU API's iommu_ops.
    
    The following are the main changes:
    - omap-iommu2 module is completely eliminated, with the common
      definitions moved to the internal omap-iommu.h, and the ops
      implementations moved into omap-iommu.c
    - OMAP arch-specific struct iommu_functions is also eliminated,
      with the ops implementations directly absorbed into the calling
      functions
    - iotlb_alloc_cr() is no longer inlined and defined only when
      PREFETCH_IOTLB is defined
    - iotlb_dump_cr() is similarly defined only when CONFIG_OMAP_IOMMU_DEBUG
      is defined
    - Elimination of the OMAP IOMMU exported functions to register the
      arch ops, omap_install_iommu_arch() & omap_uninstall_iommu_arch()
    - Any stale comments about OMAP1 are also cleaned up
    Signed-off-by: NSuman Anna <s-anna@ti.com>
    Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: NJoerg Roedel <jroedel@suse.de>
    bd4396f0
omap-iommu.c 31.4 KB