• Rajashekhara, Sudhakar's avatar
    davinci: support for EDMA resource sharing · 90bd4e6d
    Rajashekhara, Sudhakar authored
    Current EDMA driver is not taking care of EDMA channels/slots
    which are allocated from other processor, say DSP. If a
    channel/slot is allocated from DSP, the existing EDMA driver
    can still allocate the same resource on ARM.
    
    This patch enables the user to pass the channel/slots reserved
    for DSP as platform data. EDMA driver scans this list during
    probe and prepares a bitmap of channel/slots which can be used
    on ARM side.
    
    Trying to reserve channels by doing a 'pre-allocate' using
    edma_alloc_{slot|channel}() API does not work because
    
    1) The reservation should be done in probe() to avoid race
       with other ARM side driver trying to use EDMA
    
    2) The alloc channel API sets up the access through shadow region
       0 which will be incorrect for DSP usage. It also sets up the
       channel <-> queue number mapping which is not required as DSP
       will likely do its own mapping anyway.
    
    3) (minor) There is no API to allocate channels in bulk.
    Signed-off-by: default avatarSudhakar Rajashekhara <sudhakar.raj@ti.com>
    Cc: David Brownell <david-b@pacbell.net>
    Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
    Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
    90bd4e6d
dma.c 44.6 KB