Currently, after completion of transfer, source address or destination addressof only the first LLI descriptor is unmapped. And length passed for unmap istotal length of all descriptors in the list. Which means unmapping code assumedthat the memory buffers pointed to by the descriptors will be physicallycontiguous, which might not be the case. It is possible for other drivers topass sglist to slave_sg(), in which all buffers are scattered throughout thememory.

This patch intends to fix this wrong expectation of dw_dmac. Now, first descwill not contain total length of transfer. But individual descriptors willcontain their individual lengths. Finally, we will call unmap for alldescriptors.