Skip to content
  • Damian Hobson-Garcia's avatar
    Add new uio device for dynamic memory allocation · 0a0c3b5a
    Damian Hobson-Garcia authored
    
    
    This device extends the uio_pdrv_genirq driver to provide limited
    dynamic memory allocation for UIO devices.  This allows UIO devices
    to use CMA and IOMMU allocated memory regions. This driver is based
    on the uio_pdrv_genirq driver and provides the same generic interrupt
    handling capabilities.  Like uio_prdv_genirq,
    a fixed number of memory regions, defined in the platform device's
    .resources field are exported to userpace. This driver adds the ability
    to export additional regions whose number and size are known at boot time,
    but whose memory is not allocated until the uio device file is opened for
    the first time.  When the device file is closed, the allocated memory block
    is freed.  Physical (DMA) addresses for the dynamic regions are provided to
    the userspace via /sys/class/uio/uioX/maps/mapY/addr in the same way as
    static addresses are when the uio device file is open, when no processes
    are holding the device file open, the address returned to userspace is
    DMA_ERROR_CODE.
    
    Signed-off-by: default avatarDamian Hobson-Garcia <dhobsong@igel.co.jp>
    Signed-off-by: default avatar"Hans J. Koch" <hjk@hansjkoch.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0a0c3b5a