MTD fixes for 4.13-rc7
Two fixes - one for a 4.13 regression, and the other for an older one: * Atmel NAND: since we started utilizing ONFI timings, we found that we were being too restrict at rejecting them, partly due to discrepancies in ONFI 4.0 and earlier versions. Relax the restriction to keep these platforms booting. This is a 4.13-rc1 regression. * nandsim: repeated probe/removal may not work after a failed init, because we didn't free up our debugfs files properly on the failure path. This has been around since 3.8, but it's nice to get this fixed now in a nice easy patch that can target -stable, since there's already refactoring work (that also fixes the issue) targeted for the next merge window -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJZoJsiAAoJEFySrpd9RFgtGdUP/3egWJlXkx7/XNZNVHXX4/lx xDv7T3+VXIypU17zyMMkGOzYmzGoUOu9kppz5J0xbw1CwpZskaLnx0x85RN/wRt8 ZVY5Qai/G8YyqJCAD9/pToNjr83EgsfzSq/iLO/L/O2NzuqVWj+dTk3gT5ALFwmH ME5lHPdVAp1r4EOLGQUGmuzMZRi8p+IJYtIU2kKXkNM112auhcF+dDv4Jh4W9ex0 Pc5an+JOTu22x2H6zsL+epgrpojGSqc6M6bSvNJNyMovcfXL26TcrZm6hn5yO4pF 9kE92jWS0CXR3pCPq4CpVWKbGMzm7HKOkvhAE2/v+wpBzs9GpkQtLamo3Xu9ZQbA mHUo9oYjzPfOTuXDCUi31MEwlW515PxUa6IYzSNFC5pdR2GU9DvVd23H/gs5A744 +l+e2A0+/09UVyHOrii4ujH8fodm1s6MlHXN8Y+8RPhso7yFd83RfI6LQLjwPTxn RtmCVVW3EBnk1z+X2H64YE62MlqXWDZ+8SYQrEaSHiEUaQz1osxa+TkslUFeVYCS yp3F8bsftmcxYIsjQJBv5tE2lEmWjpBYnWOPG/fwXVn3NY3cIJ5qoKcpi4TzFDvW pQ2k1ksQ0gTuNdDm8EDefeTA0BGHTMGKe60zhFjVCUmk6EOSxJ7XPYiXdCzWGxc7 OTTEukeDhXlPod+GLioK =yDqO -----END PGP SIGNATURE----- Merge tag 'for-linus-20170825' of git://git.infradead.org/linux-mtd Pull MTD fixes from Brian Norris: "Two fixes - one for a 4.13 regression, and the other for an older one: - Atmel NAND: since we started utilizing ONFI timings, we found that we were being too restrict at rejecting them, partly due to discrepancies in ONFI 4.0 and earlier versions. Relax the restriction to keep these platforms booting. This is a 4.13-rc1 regression. - nandsim: repeated probe/removal may not work after a failed init, because we didn't free up our debugfs files properly on the failure path. This has been around since 3.8, but it's nice to get this fixed now in a nice easy patch that can target -stable, since there's already refactoring work (that also fixes the issue) targeted for the next merge window" * tag 'for-linus-20170825' of git://git.infradead.org/linux-mtd: mtd: nand: atmel: Relax tADL_min constraint mtd: nandsim: remove debugfs entries in error path
This commit is contained in:
commit
d580e80c7f
@ -1364,7 +1364,18 @@ static int atmel_smc_nand_prepare_smcconf(struct atmel_nand *nand,
|
||||
ret = atmel_smc_cs_conf_set_timing(smcconf,
|
||||
ATMEL_HSMC_TIMINGS_TADL_SHIFT,
|
||||
ncycles);
|
||||
if (ret)
|
||||
/*
|
||||
* Version 4 of the ONFI spec mandates that tADL be at least 400
|
||||
* nanoseconds, but, depending on the master clock rate, 400 ns may not
|
||||
* fit in the tADL field of the SMC reg. We need to relax the check and
|
||||
* accept the -ERANGE return code.
|
||||
*
|
||||
* Note that previous versions of the ONFI spec had a lower tADL_min
|
||||
* (100 or 200 ns). It's not clear why this timing constraint got
|
||||
* increased but it seems most NANDs are fine with values lower than
|
||||
* 400ns, so we should be safe.
|
||||
*/
|
||||
if (ret && ret != -ERANGE)
|
||||
return ret;
|
||||
|
||||
ncycles = DIV_ROUND_UP(conf->timings.sdr.tAR_min, mckperiodps);
|
||||
|
@ -2373,6 +2373,7 @@ static int __init ns_init_module(void)
|
||||
return 0;
|
||||
|
||||
err_exit:
|
||||
nandsim_debugfs_remove(nand);
|
||||
free_nandsim(nand);
|
||||
nand_release(nsmtd);
|
||||
for (i = 0;i < ARRAY_SIZE(nand->partitions); ++i)
|
||||
|
Loading…
Reference in New Issue
Block a user