https://github.com/torvalds/linux
Revision e7b11dc7b77bfce0a351230a5feeadc1d0bba997 authored by Tony Lindgren on 05 January 2016, 20:04:20 UTC, committed by Tony Lindgren on 06 January 2016, 17:21:09 UTC
Commit 63aa945b1013 ("memory: omap-gpmc: Add Kconfig option for debug")
unified the GPMC debug for the SoCs with GPMC. The commit also left out
the option for HWMOD_INIT_NO_RESET as we now require proper timings for
GPMC to be able to remap GPMC devices out of address 0.

Unfortunately on Nokia N900, onenand now only partially works with the
device tree provided timings. It works enough to get detected but the
clock rate supported by the onenand chip gets misdetected. This in turn
causes the GPMC timings to be miscalculated and this leads into file
system corruption on N900.

Looks like onenand needs CS_CONFIG1 bit 27 WRITETYPE set for for sync
write. This is needed also for async timings when we write to onenand
with omap2_onenand_set_async_mode(). Without sync write bit set, the
async read for the onenand ONENAND_REG_VERSION_ID will return 0xfff.

Let's exit with an error if onenand rate is not detected. And let's
remove the extra call to omap2_onenand_set_async_mode() as we only need
to do this once at the end of omap2_onenand_setup_async().

Fixes: 63aa945b1013 ("memory: omap-gpmc: Add Kconfig option for debug")
Cc: stable@vger.kernel.org # v4.2+
Reported-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Tested-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Tony Lindgren <tony@atomide.com>
1 parent 0b4d697
History
Tip revision: e7b11dc7b77bfce0a351230a5feeadc1d0bba997 authored by Tony Lindgren on 05 January 2016, 20:04:20 UTC
ARM: OMAP2+: Fix onenand rate detection to avoid filesystem corruption
Tip revision: e7b11dc
File Mode Size
basic
coccinelle
dtc
gdb
genksyms
kconfig
ksymoops
mod
package
selinux
tracing
.gitignore -rw-r--r-- 154 bytes
Kbuild.include -rw-r--r-- 13.1 KB
Lindent -rwxr-xr-x 496 bytes
Makefile -rw-r--r-- 1.7 KB
Makefile.asm-generic -rw-r--r-- 683 bytes
Makefile.build -rw-r--r-- 13.4 KB
Makefile.clean -rw-r--r-- 2.8 KB
Makefile.dtbinst -rw-r--r-- 1.4 KB
Makefile.extrawarn -rw-r--r-- 2.4 KB
Makefile.fwinst -rw-r--r-- 2.0 KB
Makefile.headersinst -rw-r--r-- 4.7 KB
Makefile.help -rw-r--r-- 68 bytes
Makefile.host -rw-r--r-- 4.5 KB
Makefile.kasan -rw-r--r-- 934 bytes
Makefile.lib -rw-r--r-- 14.0 KB
Makefile.modbuiltin -rw-r--r-- 1.8 KB
Makefile.modinst -rw-r--r-- 1.2 KB
Makefile.modpost -rw-r--r-- 5.3 KB
Makefile.modsign -rw-r--r-- 1005 bytes
analyze_suspend.py -rwxr-xr-x 117.6 KB
asn1_compiler.c -rw-r--r-- 35.5 KB
bloat-o-meter -rwxr-xr-x 1.9 KB
bootgraph.pl -rwxr-xr-x 6.3 KB
check-lc_ctype.c -rw-r--r-- 201 bytes
check_extable.sh -rwxr-xr-x 4.9 KB
checkincludes.pl -rwxr-xr-x 1.8 KB
checkkconfigsymbols.py -rwxr-xr-x 11.4 KB
checkpatch.pl -rwxr-xr-x 169.8 KB
checkstack.pl -rwxr-xr-x 5.4 KB
checksyscalls.sh -rwxr-xr-x 5.6 KB
checkversion.pl -rwxr-xr-x 1.9 KB
cleanfile -rwxr-xr-x 3.4 KB
cleanpatch -rwxr-xr-x 5.0 KB
coccicheck -rwxr-xr-x 4.7 KB
config -rwxr-xr-x 4.5 KB
conmakehash.c -rw-r--r-- 6.0 KB
decode_stacktrace.sh -rwxr-xr-x 3.1 KB
decodecode -rwxr-xr-x 2.1 KB
depmod.sh -rwxr-xr-x 1.7 KB
diffconfig -rwxr-xr-x 3.7 KB
docproc.c -rw-r--r-- 13.8 KB
export_report.pl -rwxr-xr-x 4.5 KB
extract-cert.c -rw-r--r-- 3.5 KB
extract-ikconfig -rwxr-xr-x 1.7 KB
extract-module-sig.pl -rwxr-xr-x 3.6 KB
extract-sys-certs.pl -rwxr-xr-x 3.3 KB
extract-vmlinux -rwxr-xr-x 1.6 KB
gcc-goto.sh -rwxr-xr-x 495 bytes
gcc-ld -rwxr-xr-x 676 bytes
gcc-version.sh -rwxr-xr-x 822 bytes
gcc-x86_32-has-stack-protector.sh -rwxr-xr-x 184 bytes
gcc-x86_64-has-stack-protector.sh -rwxr-xr-x 200 bytes
gen_initramfs_list.sh -rwxr-xr-x 7.9 KB
get_maintainer.pl -rwxr-xr-x 58.3 KB
gfp-translate -rwxr-xr-x 1.7 KB
headerdep.pl -rwxr-xr-x 3.5 KB
headers.sh -rwxr-xr-x 477 bytes
headers_check.pl -rwxr-xr-x 3.6 KB
headers_install.sh -rwxr-xr-x 1.3 KB
kallsyms.c -rw-r--r-- 16.7 KB
kernel-doc -rwxr-xr-x 76.0 KB
kernel-doc-xml-ref -rwxr-xr-x 4.2 KB
ld-version.sh -rwxr-xr-x 205 bytes
link-vmlinux.sh -rwxr-xr-x 5.8 KB
makelst -rwxr-xr-x 773 bytes
markup_oops.pl -rwxr-xr-x 8.1 KB
mkcompile_h -rwxr-xr-x 2.5 KB
mkmakefile -rwxr-xr-x 1.2 KB
mksysmap -rwxr-xr-x 1.3 KB
mkuboot.sh -rwxr-xr-x 379 bytes
mkversion -rw-r--r-- 74 bytes
module-common.lds -rw-r--r-- 833 bytes
namespace.pl -rwxr-xr-x 13.0 KB
objdiff -rwxr-xr-x 2.7 KB
patch-kernel -rwxr-xr-x 9.9 KB
pnmtologo.c -rw-r--r-- 11.9 KB
profile2linkerlist.pl -rwxr-xr-x 375 bytes
recordmcount.c -rw-r--r-- 12.9 KB
recordmcount.h -rw-r--r-- 16.4 KB
recordmcount.pl -rwxr-xr-x 17.8 KB
setlocalversion -rwxr-xr-x 3.9 KB
show_delta -rwxr-xr-x 3.0 KB
sign-file.c -rwxr-xr-x 8.1 KB
sortextable.c -rw-r--r-- 7.6 KB
sortextable.h -rw-r--r-- 5.5 KB
spelling.txt -rw-r--r-- 21.3 KB
stackdelta -rwxr-xr-x 1.8 KB
stackusage -rwxr-xr-x 759 bytes
tags.sh -rwxr-xr-x 10.6 KB
unifdef.c -rw-r--r-- 34.8 KB
ver_linux -rwxr-xr-x 3.9 KB
xen-hypercalls.sh -rw-r--r-- 351 bytes
xz_wrap.sh -rwxr-xr-x 562 bytes

back to top