Skip to content
  • Russell King's avatar
    mmc: omap_hsmmc: fix DMA API warning · 4d7a081d
    Russell King authored
    commit 0b479790
    
     upstream.
    
    While booting with rootfs on MMC, the following warning is encountered
    on OMAP4430:
    
    omap-dma-engine 4a056000.dma-controller: DMA-API: mapping sg segment longer than device claims to support [len=69632] [max=65536]
    
    This is because the DMA engine has a default maximum segment size of 64K
    but HSMMC sets:
    
            mmc->max_blk_size = 512;       /* Block Length at max can be 1024 */
            mmc->max_blk_count = 0xFFFF;    /* No. of Blocks is 16 bits */
            mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
            mmc->max_seg_size = mmc->max_req_size;
    
    which ends up telling the block layer that we support a maximum segment
    size of 65535*512, which exceeds the advertised DMA engine capabilities.
    
    Fix this by clamping the maximum segment size to the lower of the
    maximum request size and of the DMA engine device used for either DMA
    channel.
    
    Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    4d7a081d