mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
Linux 3.17-rc5
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJUFjfVAAoJEHm+PkMAQRiGANkIAIU3PNrAz9dIItq8a/rEAhnx l2shHoOyEmyNR2apholM3BPUNX50cbsc/HGdi7lZKLkA/ifAj6B9nFD2NzVsIChD 1QWVcvdkKlVuxXCDd26qbijlfmbTOAWrLw9ntvM+J6ZtECM6zCAZF4MAV/FwogPq ETGKD76AxJtVIhBMS99troAiC1YxmQ7DKgEr8CraTOR1qwXEonnPCmN/IZA6x2/G EXiihOuQB5me1X7k4PI0V8CDscQOn+3B2CQHIrjRB+KiTF+iKIuI8n6ORC6bpFh+ U8UZP9wLlIG1BrUHG83pIndglIHotqPcjmtfl1WGrRr2hn7abzVSfV+g5Syo3Vg= =Ep+s -----END PGP SIGNATURE----- Merge tag 'v3.17-rc5' from upstream
This commit is contained in:
commit
7622d4905a
980 changed files with 10963 additions and 5534 deletions
|
|
@ -931,7 +931,7 @@ static int omap_calculate_ecc(struct mtd_info *mtd, const u_char *dat,
|
|||
u32 val;
|
||||
|
||||
val = readl(info->reg.gpmc_ecc_config);
|
||||
if (((val >> ECC_CONFIG_CS_SHIFT) & ~CS_MASK) != info->gpmc_cs)
|
||||
if (((val >> ECC_CONFIG_CS_SHIFT) & CS_MASK) != info->gpmc_cs)
|
||||
return -EINVAL;
|
||||
|
||||
/* read ecc result */
|
||||
|
|
@ -1794,9 +1794,12 @@ static int omap_nand_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
/* populate MTD interface based on ECC scheme */
|
||||
nand_chip->ecc.layout = &omap_oobinfo;
|
||||
ecclayout = &omap_oobinfo;
|
||||
switch (info->ecc_opt) {
|
||||
case OMAP_ECC_HAM1_CODE_SW:
|
||||
nand_chip->ecc.mode = NAND_ECC_SOFT;
|
||||
break;
|
||||
|
||||
case OMAP_ECC_HAM1_CODE_HW:
|
||||
pr_info("nand: using OMAP_ECC_HAM1_CODE_HW\n");
|
||||
nand_chip->ecc.mode = NAND_ECC_HW;
|
||||
|
|
@ -1848,7 +1851,7 @@ static int omap_nand_probe(struct platform_device *pdev)
|
|||
nand_chip->ecc.priv = nand_bch_init(mtd,
|
||||
nand_chip->ecc.size,
|
||||
nand_chip->ecc.bytes,
|
||||
&nand_chip->ecc.layout);
|
||||
&ecclayout);
|
||||
if (!nand_chip->ecc.priv) {
|
||||
pr_err("nand: error: unable to use s/w BCH library\n");
|
||||
err = -EINVAL;
|
||||
|
|
@ -1923,7 +1926,7 @@ static int omap_nand_probe(struct platform_device *pdev)
|
|||
nand_chip->ecc.priv = nand_bch_init(mtd,
|
||||
nand_chip->ecc.size,
|
||||
nand_chip->ecc.bytes,
|
||||
&nand_chip->ecc.layout);
|
||||
&ecclayout);
|
||||
if (!nand_chip->ecc.priv) {
|
||||
pr_err("nand: error: unable to use s/w BCH library\n");
|
||||
err = -EINVAL;
|
||||
|
|
@ -2012,6 +2015,9 @@ static int omap_nand_probe(struct platform_device *pdev)
|
|||
goto return_error;
|
||||
}
|
||||
|
||||
if (info->ecc_opt == OMAP_ECC_HAM1_CODE_SW)
|
||||
goto scan_tail;
|
||||
|
||||
/* all OOB bytes from oobfree->offset till end off OOB are free */
|
||||
ecclayout->oobfree->length = mtd->oobsize - ecclayout->oobfree->offset;
|
||||
/* check if NAND device's OOB is enough to store ECC signatures */
|
||||
|
|
@ -2021,7 +2027,9 @@ static int omap_nand_probe(struct platform_device *pdev)
|
|||
err = -EINVAL;
|
||||
goto return_error;
|
||||
}
|
||||
nand_chip->ecc.layout = ecclayout;
|
||||
|
||||
scan_tail:
|
||||
/* second phase scan */
|
||||
if (nand_scan_tail(mtd)) {
|
||||
err = -ENXIO;
|
||||
|
|
|
|||
Loading…
Reference in a new issue