[U-Boot] [PATCH 1/2] mmc: tmio: Pass full address to tmio_sd_addr_is_dmaable()
Marek Vasut
marek.vasut at gmail.com
Wed Oct 3 07:05:12 UTC 2018
On 10/03/2018 04:17 AM, Masahiro Yamada wrote:
> On Wed, Oct 3, 2018 at 7:54 AM Marek Vasut <marek.vasut at gmail.com> wrote:
>>
>> Pass the entire source data pointer to tmio_sd_addr_is_dmaable()
>> to avoid losing top 32 bits on 64bit systems.
>
>
> Really?
>
> sizeof(long) is 8 on 64bit systems.
Isn't that long long that's guaranteed to be 64bit ?
Anyway, this looks cleaner to me and removes one cast from the code.
> (In other words, long and (void *) have the same size)
>
> Why is the top 32-bits lost?
>
>
>
>
>> Signed-off-by: Marek Vasut <marek.vasut+renesas at gmail.com>
>> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
>> ---
>> drivers/mmc/tmio-common.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c
>> index b311b80be8..6b21941991 100644
>> --- a/drivers/mmc/tmio-common.c
>> +++ b/drivers/mmc/tmio-common.c
>> @@ -372,8 +372,10 @@ static int tmio_sd_dma_xfer(struct udevice *dev, struct mmc_data *data)
>> }
>>
>> /* check if the address is DMA'able */
>> -static bool tmio_sd_addr_is_dmaable(unsigned long addr)
>> +static bool tmio_sd_addr_is_dmaable(const char *src)
>> {
>> + uintptr_t addr = (uintptr_t)src;
>> +
>> if (!IS_ALIGNED(addr, TMIO_SD_DMA_MINALIGN))
>> return false;
>>
>> @@ -486,7 +488,7 @@ int tmio_sd_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
>> if (data) {
>> /* use DMA if the HW supports it and the buffer is aligned */
>> if (priv->caps & TMIO_SD_CAP_DMA_INTERNAL &&
>> - tmio_sd_addr_is_dmaable((long)data->src))
>> + tmio_sd_addr_is_dmaable(data->src))
>> ret = tmio_sd_dma_xfer(dev, data);
>> else
>> ret = tmio_sd_pio_xfer(dev, data);
>> --
>> 2.18.0
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> https://lists.denx.de/listinfo/u-boot
>
>
>
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list