From aadecdd77e42d47b33e0a440c4e3955378cdfd70 Mon Sep 17 00:00:00 2001 From: Michael Sparmann Date: Wed, 3 Mar 2010 02:36:15 +0000 Subject: Fix numerous non-critical iPod Nano 2G FTL bugs git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24999 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c') diff --git a/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c index 7961b94f7f..3b5f88d3c2 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c @@ -406,9 +406,12 @@ uint32_t nand_read_page(uint32_t bank, uint32_t page, void* databuffer, return nand_unlock(rc); } if (nand_transfer_data(bank, 0, spare, 0x40)) return nand_unlock(1); - memcpy(nand_ecc, &spare[0xC], 0x28); - rc |= (ecc_decode(3, data, nand_ecc) & 0xF) << 4; - if (databuffer && data != databuffer) memcpy(databuffer, data, 0x800); + if (databuffer) + { + memcpy(nand_ecc, &spare[0xC], 0x28); + rc |= (ecc_decode(3, data, nand_ecc) & 0xF) << 4; + if (data != databuffer) memcpy(databuffer, data, 0x800); + } memset(nand_ctrl, 0xFF, 0x200); memcpy(nand_ctrl, spare, 0xC); memcpy(nand_ecc, &spare[0x34], 0xC); -- cgit v1.2.3