Re: [PATCH v1 3/3] dma: tegra: avoid int overflow for transferred count

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/07/2014 06:38 PM, Stephen Warren wrote:
On 05/06/2014 03:22 PM, Christopher Freeman wrote:
bytes_transferred will overflow during long audio playbacks.  Since
the driver only ever consults this value modulo bytes_requested, store the
value modulo bytes_requested.

The audio driver may only interpret the value modulo bytes_requested,
but what about other drivers such as the high-speed UART (and SPI?) drivers?

What is the dmaengine API's design requirement here, and what do other
dmaengine drivers do. If it's to store the modulo, then I'm fine with
this change.

Yep, this part of the API. The residue should be between transfer length and 0. While 0 is special and should only be returned if the transfer has finished. For cyclic transfers this means it should never be zero. So if transferred_bytes is incremented modulo length and residue is length - transferred_bytes you get the correct result.

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux