etraxfs_dma: Dont forward zero-length payload to clients

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
master
Edgar E. Iglesias 2016-02-16 12:42:49 +01:00
parent 586d1a99ff
commit c3bce9d5f9
1 changed files with 8 additions and 5 deletions

View File

@ -440,13 +440,16 @@ static int channel_out_run(struct fs_dma_ctrl *ctrl, int c)
D(printf("channel %d pushes %x %u bytes eop=%u\n", c, D(printf("channel %d pushes %x %u bytes eop=%u\n", c,
saved_data_buf, len, out_eop)); saved_data_buf, len, out_eop));
if (ctrl->channels[c].client->client.push) if (ctrl->channels[c].client->client.push) {
ctrl->channels[c].client->client.push( if (len > 0) {
ctrl->channels[c].client->client.opaque, ctrl->channels[c].client->client.push(
buf, len, out_eop); ctrl->channels[c].client->client.opaque,
else buf, len, out_eop);
}
} else {
printf("WARNING: DMA ch%d dataloss," printf("WARNING: DMA ch%d dataloss,"
" no attached client.\n", c); " no attached client.\n", c);
}
saved_data_buf += len; saved_data_buf += len;