[PATCH v3 1/3] mtd: nand: gpmi: add gpmi_move_bits function
From: Huang Shijie <hidden>
Date: 2014-09-23 15:04:46
Also in:
lkml
On Tue, Sep 23, 2014 at 04:58:22PM +0200, Boris BREZILLON wrote:
On Tue, 23 Sep 2014 22:54:15 +0800 Huang Shijie [off-list ref] wrote:quoted
On Tue, Sep 23, 2014 at 04:07:34PM +0200, Boris BREZILLON wrote:quoted
Add a new function to move bits (not bytes) from a memory region to another one. This function is similar to memmove except it acts at bit level. This function is needed to implement GPMI raw access functions, given the fact that ECC engine does not pad ECC bits to the next byte boundary.sorry for not comment your v2 patch set.quoted
Signed-off-by: Boris BREZILLON <redacted> --- drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 88 ++++++++++++++++++++++++++++++++++ drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 4 ++ 2 files changed, 92 insertions(+)diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c index 87e658c..e2f706a 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c@@ -1353,3 +1353,91 @@ int gpmi_read_page(struct gpmi_nand_data *this, set_dma_type(this, DMA_FOR_READ_ECC_PAGE); return start_dma_with_bch_irq(this, desc); } + +void gpmi_move_bits(u8 *dst, size_t dst_bit_off, + const u8 *src, size_t src_bit_off, + size_t nbits)we can simplify the code.Any suggestions ?quoted
We could use the bytes to replace the @nbits. The chunk data is always byte aligned.This function is also used to store ECC bits in the OOB buffer and these chunk of data are not byte aligned :-).
yes. you are right. I missed it. could you also comment these two hooks in the patch set. I hope Brian also can check it, and we can make it more clear about how to implement them. thanks Huang Shijie