mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 22:51:37 +00:00
nand: Try to align the default buffers
The NAND layer needs to use cache-aligned buffers by default. Towards this goal. align the default buffers and their members according to the minimum DMA alignment defined for the architecture. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Warren <twarren@nvidia.com> Acked-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
parent
057df193b4
commit
b572595ee9
2 changed files with 6 additions and 4 deletions
|
@ -2936,7 +2936,8 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
struct nand_chip *chip = mtd->priv;
|
struct nand_chip *chip = mtd->priv;
|
||||||
|
|
||||||
if (!(chip->options & NAND_OWN_BUFFERS))
|
if (!(chip->options & NAND_OWN_BUFFERS))
|
||||||
chip->buffers = kmalloc(sizeof(*chip->buffers), GFP_KERNEL);
|
chip->buffers = memalign(ARCH_DMA_MINALIGN,
|
||||||
|
sizeof(*chip->buffers));
|
||||||
if (!chip->buffers)
|
if (!chip->buffers)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
|
@ -391,9 +391,10 @@ struct nand_ecc_ctrl {
|
||||||
* consecutive order.
|
* consecutive order.
|
||||||
*/
|
*/
|
||||||
struct nand_buffers {
|
struct nand_buffers {
|
||||||
uint8_t ecccalc[NAND_MAX_OOBSIZE];
|
uint8_t ecccalc[ALIGN(NAND_MAX_OOBSIZE, ARCH_DMA_MINALIGN)];
|
||||||
uint8_t ecccode[NAND_MAX_OOBSIZE];
|
uint8_t ecccode[ALIGN(NAND_MAX_OOBSIZE, ARCH_DMA_MINALIGN)];
|
||||||
uint8_t databuf[NAND_MAX_PAGESIZE + NAND_MAX_OOBSIZE];
|
uint8_t databuf[ALIGN(NAND_MAX_PAGESIZE + NAND_MAX_OOBSIZE,
|
||||||
|
ARCH_DMA_MINALIGN)];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue