• Laurent Pinchart's avatar
    iommu/omap: Allocate archdata on the fly for DT-based devices · 07a02030
    Laurent Pinchart authored
    The OMAP IOMMU driver locates the IOMMU associated to a device using the
    IOMMU name stored in the device archdata iommu field. That field is
    expected to be populated by platform code and is left unset for DT-based
    devices. This results in a crash when the IOMMU driver attaches a domain
    to a device.
    
    Fix this by allocating the archdata iommu structure when devices are
    added and freeing when they are removed. Devices without an OF node, and
    devices without an iommus property in their OF node are ignored. The
    iommu name is initialized from the IOMMU device node name.
    
    This should be simplified when removing non-DT support completely from
    the IOMMU users as the IOMMU name won't be needed anymore, and the
    IOMMU device pointer could then be stored in the archdata iommu field
    directly.
    Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
    [s-anna@ti.com: updated to use device name instead of OF name]
    Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
    Signed-off-by: default avatarJoerg Roedel <joro@8bytes.org>
    07a02030
omap-iommu.c 29.8 KB