Commit 7351d3a5 authored by Florian Fainelli's avatar Florian Fainelli Committed by David Woodhouse

mtd: fix almost all checkpatch warnings in nand_base.c

Only 3 warnings are left, one is off by one character, but splitting the line
would reduce the readability. One is for a for loop statement, which would also
not improve readability. The last one is a false positive on a test.

Artem: it is much easier to verify patches against nand_base.c with
       checkpatch.pl when nand_base.c itself does not have so many
       checkpatch.pl warnings.
Signed-off-by: default avatarFlorian Fainelli <ffainelli@freebox.fr>
Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent f8ac0414
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/bitops.h> #include <linux/bitops.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <asm/io.h> #include <linux/io.h>
#ifdef CONFIG_MTD_PARTITIONS #ifdef CONFIG_MTD_PARTITIONS
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
...@@ -786,7 +786,7 @@ nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state) ...@@ -786,7 +786,7 @@ nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state)
spinlock_t *lock = &chip->controller->lock; spinlock_t *lock = &chip->controller->lock;
wait_queue_head_t *wq = &chip->controller->wq; wait_queue_head_t *wq = &chip->controller->wq;
DECLARE_WAITQUEUE(wait, current); DECLARE_WAITQUEUE(wait, current);
retry: retry:
spin_lock(lock); spin_lock(lock);
/* Hardware controller shared among independent devices */ /* Hardware controller shared among independent devices */
...@@ -982,6 +982,7 @@ int nand_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) ...@@ -982,6 +982,7 @@ int nand_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
return ret; return ret;
} }
EXPORT_SYMBOL(nand_unlock);
/** /**
* nand_lock - [REPLACEABLE] locks all blocks present in the device * nand_lock - [REPLACEABLE] locks all blocks present in the device
...@@ -1051,6 +1052,7 @@ int nand_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) ...@@ -1051,6 +1052,7 @@ int nand_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
return ret; return ret;
} }
EXPORT_SYMBOL(nand_lock);
/** /**
* nand_read_page_raw - [Intern] read raw page data without ecc * nand_read_page_raw - [Intern] read raw page data without ecc
...@@ -1078,8 +1080,9 @@ static int nand_read_page_raw(struct mtd_info *mtd, struct nand_chip *chip, ...@@ -1078,8 +1080,9 @@ static int nand_read_page_raw(struct mtd_info *mtd, struct nand_chip *chip,
* *
* We need a special oob layout and handling even when OOB isn't used. * We need a special oob layout and handling even when OOB isn't used.
*/ */
static int nand_read_page_raw_syndrome(struct mtd_info *mtd, struct nand_chip *chip, static int nand_read_page_raw_syndrome(struct mtd_info *mtd,
uint8_t *buf, int page) struct nand_chip *chip,
uint8_t *buf, int page)
{ {
int eccsize = chip->ecc.size; int eccsize = chip->ecc.size;
int eccbytes = chip->ecc.bytes; int eccbytes = chip->ecc.bytes;
...@@ -1160,7 +1163,8 @@ static int nand_read_page_swecc(struct mtd_info *mtd, struct nand_chip *chip, ...@@ -1160,7 +1163,8 @@ static int nand_read_page_swecc(struct mtd_info *mtd, struct nand_chip *chip,
* @readlen: data length * @readlen: data length
* @bufpoi: buffer to store read data * @bufpoi: buffer to store read data
*/ */
static int nand_read_subpage(struct mtd_info *mtd, struct nand_chip *chip, uint32_t data_offs, uint32_t readlen, uint8_t *bufpoi) static int nand_read_subpage(struct mtd_info *mtd, struct nand_chip *chip,
uint32_t data_offs, uint32_t readlen, uint8_t *bufpoi)
{ {
int start_step, end_step, num_steps; int start_step, end_step, num_steps;
uint32_t *eccpos = chip->ecc.layout->eccpos; uint32_t *eccpos = chip->ecc.layout->eccpos;
...@@ -1168,6 +1172,7 @@ static int nand_read_subpage(struct mtd_info *mtd, struct nand_chip *chip, uint3 ...@@ -1168,6 +1172,7 @@ static int nand_read_subpage(struct mtd_info *mtd, struct nand_chip *chip, uint3
int data_col_addr, i, gaps = 0; int data_col_addr, i, gaps = 0;
int datafrag_len, eccfrag_len, aligned_len, aligned_pos; int datafrag_len, eccfrag_len, aligned_len, aligned_pos;
int busw = (chip->options & NAND_BUSWIDTH_16) ? 2 : 1; int busw = (chip->options & NAND_BUSWIDTH_16) ? 2 : 1;
int index = 0;
/* Column address wihin the page aligned to ECC size (256bytes). */ /* Column address wihin the page aligned to ECC size (256bytes). */
start_step = data_offs / chip->ecc.size; start_step = data_offs / chip->ecc.size;
...@@ -1206,25 +1211,29 @@ static int nand_read_subpage(struct mtd_info *mtd, struct nand_chip *chip, uint3 ...@@ -1206,25 +1211,29 @@ static int nand_read_subpage(struct mtd_info *mtd, struct nand_chip *chip, uint3
} else { } else {
/* send the command to read the particular ecc bytes */ /* send the command to read the particular ecc bytes */
/* take care about buswidth alignment in read_buf */ /* take care about buswidth alignment in read_buf */
aligned_pos = eccpos[start_step * chip->ecc.bytes] & ~(busw - 1); index = start_step * chip->ecc.bytes;
aligned_pos = eccpos[index] & ~(busw - 1);
aligned_len = eccfrag_len; aligned_len = eccfrag_len;
if (eccpos[start_step * chip->ecc.bytes] & (busw - 1)) if (eccpos[index] & (busw - 1))
aligned_len++; aligned_len++;
if (eccpos[(start_step + num_steps) * chip->ecc.bytes] & (busw - 1)) if (eccpos[index + (num_steps * chip->ecc.bytes)] & (busw - 1))
aligned_len++; aligned_len++;
chip->cmdfunc(mtd, NAND_CMD_RNDOUT, mtd->writesize + aligned_pos, -1); chip->cmdfunc(mtd, NAND_CMD_RNDOUT,
mtd->writesize + aligned_pos, -1);
chip->read_buf(mtd, &chip->oob_poi[aligned_pos], aligned_len); chip->read_buf(mtd, &chip->oob_poi[aligned_pos], aligned_len);
} }
for (i = 0; i < eccfrag_len; i++) for (i = 0; i < eccfrag_len; i++)
chip->buffers->ecccode[i] = chip->oob_poi[eccpos[i + start_step * chip->ecc.bytes]]; chip->buffers->ecccode[i] = chip->oob_poi[eccpos[i + index]];
p = bufpoi + data_col_addr; p = bufpoi + data_col_addr;
for (i = 0; i < eccfrag_len ; i += chip->ecc.bytes, p += chip->ecc.size) { for (i = 0; i < eccfrag_len ; i += chip->ecc.bytes, p += chip->ecc.size) {
int stat; int stat;
stat = chip->ecc.correct(mtd, p, &chip->buffers->ecccode[i], &chip->buffers->ecccalc[i]); stat = chip->ecc.correct(mtd, p,
&chip->buffers->ecccode[i], &chip->buffers->ecccalc[i]);
if (stat < 0) if (stat < 0)
mtd->ecc_stats.failed++; mtd->ecc_stats.failed++;
else else
...@@ -1486,7 +1495,8 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from, ...@@ -1486,7 +1495,8 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,
ret = chip->ecc.read_page_raw(mtd, chip, ret = chip->ecc.read_page_raw(mtd, chip,
bufpoi, page); bufpoi, page);
else if (!aligned && NAND_SUBPAGE_READ(chip) && !oob) else if (!aligned && NAND_SUBPAGE_READ(chip) && !oob)
ret = chip->ecc.read_subpage(mtd, chip, col, bytes, bufpoi); ret = chip->ecc.read_subpage(mtd, chip,
col, bytes, bufpoi);
else else
ret = chip->ecc.read_page(mtd, chip, bufpoi, ret = chip->ecc.read_page(mtd, chip, bufpoi,
page); page);
...@@ -1878,7 +1888,7 @@ static int nand_read_oob(struct mtd_info *mtd, loff_t from, ...@@ -1878,7 +1888,7 @@ static int nand_read_oob(struct mtd_info *mtd, loff_t from,
else else
ret = nand_do_read_ops(mtd, from, ops); ret = nand_do_read_ops(mtd, from, ops);
out: out:
nand_release_device(mtd); nand_release_device(mtd);
return ret; return ret;
} }
...@@ -1907,8 +1917,9 @@ static void nand_write_page_raw(struct mtd_info *mtd, struct nand_chip *chip, ...@@ -1907,8 +1917,9 @@ static void nand_write_page_raw(struct mtd_info *mtd, struct nand_chip *chip,
* *
* We need a special oob layout and handling even when ECC isn't checked. * We need a special oob layout and handling even when ECC isn't checked.
*/ */
static void nand_write_page_raw_syndrome(struct mtd_info *mtd, struct nand_chip *chip, static void nand_write_page_raw_syndrome(struct mtd_info *mtd,
const uint8_t *buf) struct nand_chip *chip,
const uint8_t *buf)
{ {
int eccsize = chip->ecc.size; int eccsize = chip->ecc.size;
int eccbytes = chip->ecc.bytes; int eccbytes = chip->ecc.bytes;
...@@ -2448,7 +2459,7 @@ static int nand_write_oob(struct mtd_info *mtd, loff_t to, ...@@ -2448,7 +2459,7 @@ static int nand_write_oob(struct mtd_info *mtd, loff_t to,
else else
ret = nand_do_write_ops(mtd, to, ops); ret = nand_do_write_ops(mtd, to, ops);
out: out:
nand_release_device(mtd); nand_release_device(mtd);
return ret; return ret;
} }
...@@ -2634,7 +2645,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr, ...@@ -2634,7 +2645,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
} }
instr->state = MTD_ERASE_DONE; instr->state = MTD_ERASE_DONE;
erase_exit: erase_exit:
ret = instr->state == MTD_ERASE_DONE ? 0 : -EIO; ret = instr->state == MTD_ERASE_DONE ? 0 : -EIO;
...@@ -2892,7 +2903,8 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, struct nand_chip *chip, ...@@ -2892,7 +2903,8 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, struct nand_chip *chip,
*/ */
static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd, static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
struct nand_chip *chip, struct nand_chip *chip,
int busw, int *maf_id, int *dev_id, int busw,
int *maf_id, int *dev_id,
struct nand_flash_dev *type) struct nand_flash_dev *type)
{ {
int i, maf_idx; int i, maf_idx;
...@@ -3087,8 +3099,10 @@ static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd, ...@@ -3087,8 +3099,10 @@ static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
ffs(mtd->erasesize) - 1; ffs(mtd->erasesize) - 1;
if (chip->chipsize & 0xffffffff) if (chip->chipsize & 0xffffffff)
chip->chip_shift = ffs((unsigned)chip->chipsize) - 1; chip->chip_shift = ffs((unsigned)chip->chipsize) - 1;
else else {
chip->chip_shift = ffs((unsigned)(chip->chipsize >> 32)) + 32 - 1; chip->chip_shift = ffs((unsigned)(chip->chipsize >> 32));
chip->chip_shift += 32 - 1;
}
/* Set the bad block position */ /* Set the bad block position */
if (mtd->writesize > 512 || (busw & NAND_BUSWIDTH_16)) if (mtd->writesize > 512 || (busw & NAND_BUSWIDTH_16))
...@@ -3169,7 +3183,8 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips, ...@@ -3169,7 +3183,8 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
nand_set_defaults(chip, busw); nand_set_defaults(chip, busw);
/* Read the flash type */ /* Read the flash type */
type = nand_get_flash_type(mtd, chip, busw, &nand_maf_id, &nand_dev_id, table); type = nand_get_flash_type(mtd, chip, busw,
&nand_maf_id, &nand_dev_id, table);
if (IS_ERR(type)) { if (IS_ERR(type)) {
if (!(chip->options & NAND_SCAN_SILENT_NODEV)) if (!(chip->options & NAND_SCAN_SILENT_NODEV))
...@@ -3199,6 +3214,7 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips, ...@@ -3199,6 +3214,7 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
return 0; return 0;
} }
EXPORT_SYMBOL(nand_scan_ident);
/** /**
...@@ -3427,10 +3443,11 @@ int nand_scan_tail(struct mtd_info *mtd) ...@@ -3427,10 +3443,11 @@ int nand_scan_tail(struct mtd_info *mtd)
/* Build bad block table */ /* Build bad block table */
return chip->scan_bbt(mtd); return chip->scan_bbt(mtd);
} }
EXPORT_SYMBOL(nand_scan_tail);
/* is_module_text_address() isn't exported, and it's mostly a pointless /* is_module_text_address() isn't exported, and it's mostly a pointless
test if this is a module _anyway_ -- they'd have to try _really_ hard * test if this is a module _anyway_ -- they'd have to try _really_ hard
to call us from in-kernel code if the core NAND support is modular. */ * to call us from in-kernel code if the core NAND support is modular. */
#ifdef MODULE #ifdef MODULE
#define caller_is_module() (1) #define caller_is_module() (1)
#else #else
...@@ -3466,6 +3483,7 @@ int nand_scan(struct mtd_info *mtd, int maxchips) ...@@ -3466,6 +3483,7 @@ int nand_scan(struct mtd_info *mtd, int maxchips)
ret = nand_scan_tail(mtd); ret = nand_scan_tail(mtd);
return ret; return ret;
} }
EXPORT_SYMBOL(nand_scan);
/** /**
* nand_release - [NAND Interface] Free resources held by the NAND device * nand_release - [NAND Interface] Free resources held by the NAND device
...@@ -3492,12 +3510,6 @@ void nand_release(struct mtd_info *mtd) ...@@ -3492,12 +3510,6 @@ void nand_release(struct mtd_info *mtd)
& NAND_BBT_DYNAMICSTRUCT) & NAND_BBT_DYNAMICSTRUCT)
kfree(chip->badblock_pattern); kfree(chip->badblock_pattern);
} }
EXPORT_SYMBOL_GPL(nand_lock);
EXPORT_SYMBOL_GPL(nand_unlock);
EXPORT_SYMBOL_GPL(nand_scan);
EXPORT_SYMBOL_GPL(nand_scan_ident);
EXPORT_SYMBOL_GPL(nand_scan_tail);
EXPORT_SYMBOL_GPL(nand_release); EXPORT_SYMBOL_GPL(nand_release);
static int __init nand_base_init(void) static int __init nand_base_init(void)
...@@ -3515,5 +3527,6 @@ module_init(nand_base_init); ...@@ -3515,5 +3527,6 @@ module_init(nand_base_init);
module_exit(nand_base_exit); module_exit(nand_base_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Steven J. Hill <sjhill@realitydiluted.com>, Thomas Gleixner <tglx@linutronix.de>"); MODULE_AUTHOR("Steven J. Hill <sjhill@realitydiluted.com>");
MODULE_AUTHOR("Thomas Gleixner <tglx@linutronix.de>");
MODULE_DESCRIPTION("Generic NAND flash driver code"); MODULE_DESCRIPTION("Generic NAND flash driver code");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment