When wMaxPacket is set to a value that is not a multiple of 4 (in this case 2) then some DMA transfers will not be aligned to the required 4 byte boundary. The dwc2 driver sets up a buffer to handle unaligned dma destinations, but it only copies the data from that buffer in the case of an isosynchronous transfer.
This change moves that copy out of the dwc2_xfercomp_isoc_split_in function and performs it in all cases where the aligned buffer would have been setup for a transfer.