From: Albert H. <he...@us...> - 2009-10-25 18:59:37
|
Update of /cvsroot/gc-linux/linux/drivers/exi In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv751/drivers/exi Modified Files: exi-hw.c Log Message: Merge gc-linux-v2.6.31. Index: exi-hw.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi-hw.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** exi-hw.c 28 Mar 2009 20:44:19 -0000 1.20 --- exi-hw.c 25 Oct 2009 18:59:28 -0000 1.21 *************** *** 660,665 **** static int exi_cmd_transfer(struct exi_command *cmd) { - static u8 exi_aligned_transfer_buf[EXI_DMA_ALIGN+1] - __attribute__ ((aligned(EXI_DMA_ALIGN+1))); struct exi_channel *exi_channel = cmd->exi_channel; struct exi_command *post_cmd = &exi_channel->post_cmd; --- 660,663 ---- *************** *** 729,751 **** * Maximum transfer size here is 31+31=62 bytes. */ ! ! /* ! * On transfer sizes greater than or equal to 32 bytes ! * we can optimize the transfer by performing a 32-byte ! * DMA transfer using a specially aligned temporary buffer, ! * followed by a non-DMA transfer for the remaining bytes. ! */ ! if (pre_len + post_len > EXI_DMA_ALIGN) { ! post_len = pre_len + post_len - (EXI_DMA_ALIGN+1); ! post_data = pre_data + EXI_DMA_ALIGN+1; ! len = EXI_DMA_ALIGN+1; ! data = exi_aligned_transfer_buf; ! memcpy(data, pre_data, EXI_DMA_ALIGN+1); ! pre_len = 0; ! } else { ! exi_transfer_raw(exi_channel, pre_data, ! pre_len + post_len, opcode); ! goto done; ! } } --- 727,733 ---- * Maximum transfer size here is 31+31=62 bytes. */ ! exi_transfer_raw(exi_channel, pre_data, ! pre_len + post_len, opcode); ! goto done; } |