• James Hogan's avatar
    mmc: dw_mmc: don't hard code fifo depth, fix usage · b86d8253
    James Hogan authored
    The FIFO_DEPTH hardware configuration parameter can be found from the
    power-on value of RX_WMark in the FIFOTH register. This is used to
    initialise the watermarks, but when calculating the number of free fifo
    spaces a preprocessor definition is used which is hard coded to 32.
    
    Fix reading the value out of FIFOTH (the default value in the RX_WMark
    field is FIFO_DEPTH-1 not FIFO_DEPTH). Allow the fifo depth to be
    overriden by platform data (since a bootloader may have changed FIFOTH
    making auto-detection unreliable). Store the fifo_depth for later use.
    Also fix the calculation to find the number of free bytes in the fifo to
    include the fifo depth in the left shift by the data shift, since the
    fifo depth is measured in fifo items not bytes.
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Acked-by: default avatarWill Newton <will.newton@imgtec.com>
    Signed-off-by: default avatarChris Ball <cjb@laptop.org>
    b86d8253
dw_mmc.c 44.7 KB