Revision 72741084d903e65e121c27bd29494d941729d4a1 authored by Ulf Hansson on 27 August 2019, 08:10:43 UTC, committed by Ulf Hansson on 30 August 2019, 07:17:53 UTC
The OCR register defines the supported range of VDD voltages for SD cards. However, it has turned out that some SD cards reports an invalid voltage range, for example having bit7 set. When a host supports MMC_CAP2_FULL_PWR_CYCLE and some of the voltages from the invalid VDD range, this triggers the core to run a power cycle of the card to try to initialize it at the lowest common supported voltage. Obviously this fails, since the card can't support it. Let's fix this problem, by clearing invalid bits from the read OCR register for SD cards, before proceeding with the VDD voltage negotiation. Cc: stable@vger.kernel.org Reported-by: Philip Langdale <philipl@overt.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Philip Langdale <philipl@overt.org> Tested-by: Philip Langdale <philipl@overt.org> Tested-by: Manuel Presnitz <mail@mpy.de>
1 parent 7871aa6
File | Mode | Size |
---|---|---|
cluster | ||
dlm | ||
dlmfs | ||
Kconfig | -rw-r--r-- | 2.5 KB |
Makefile | -rw-r--r-- | 1.0 KB |
acl.c | -rw-r--r-- | 9.1 KB |
acl.h | -rw-r--r-- | 776 bytes |
alloc.c | -rw-r--r-- | 195.4 KB |
alloc.h | -rw-r--r-- | 11.2 KB |
aops.c | -rw-r--r-- | 61.5 KB |
aops.h | -rw-r--r-- | 2.4 KB |
blockcheck.c | -rw-r--r-- | 15.4 KB |
blockcheck.h | -rw-r--r-- | 3.3 KB |
buffer_head_io.c | -rw-r--r-- | 11.1 KB |
buffer_head_io.h | -rw-r--r-- | 1.6 KB |
dcache.c | -rw-r--r-- | 12.5 KB |
dcache.h | -rw-r--r-- | 1.2 KB |
dir.c | -rw-r--r-- | 113.5 KB |
dir.h | -rw-r--r-- | 3.2 KB |
dlmglue.c | -rw-r--r-- | 125.0 KB |
dlmglue.h | -rw-r--r-- | 6.7 KB |
export.c | -rw-r--r-- | 6.2 KB |
export.h | -rw-r--r-- | 392 bytes |
extent_map.c | -rw-r--r-- | 23.6 KB |
extent_map.h | -rw-r--r-- | 2.3 KB |
file.c | -rw-r--r-- | 65.4 KB |
file.h | -rw-r--r-- | 2.3 KB |
filecheck.c | -rw-r--r-- | 12.0 KB |
filecheck.h | -rw-r--r-- | 1.9 KB |
heartbeat.c | -rw-r--r-- | 2.8 KB |
heartbeat.h | -rw-r--r-- | 828 bytes |
inode.c | -rw-r--r-- | 45.4 KB |
inode.h | -rw-r--r-- | 5.3 KB |
ioctl.c | -rw-r--r-- | 22.4 KB |
ioctl.h | -rw-r--r-- | 369 bytes |
journal.c | -rw-r--r-- | 61.4 KB |
journal.h | -rw-r--r-- | 22.2 KB |
localalloc.c | -rw-r--r-- | 33.3 KB |
localalloc.h | -rw-r--r-- | 1.5 KB |
locks.c | -rw-r--r-- | 2.8 KB |
locks.h | -rw-r--r-- | 471 bytes |
mmap.c | -rw-r--r-- | 4.3 KB |
mmap.h | -rw-r--r-- | 173 bytes |
move_extents.c | -rw-r--r-- | 25.2 KB |
move_extents.h | -rw-r--r-- | 363 bytes |
namei.c | -rw-r--r-- | 69.3 KB |
namei.h | -rw-r--r-- | 1.1 KB |
ocfs1_fs_compat.h | -rw-r--r-- | 2.3 KB |
ocfs2.h | -rw-r--r-- | 24.6 KB |
ocfs2_fs.h | -rw-r--r-- | 49.6 KB |
ocfs2_ioctl.h | -rw-r--r-- | 6.5 KB |
ocfs2_lockid.h | -rw-r--r-- | 2.7 KB |
ocfs2_lockingver.h | -rw-r--r-- | 562 bytes |
ocfs2_trace.h | -rw-r--r-- | 75.8 KB |
quota.h | -rw-r--r-- | 4.6 KB |
quota_global.c | -rw-r--r-- | 29.8 KB |
quota_local.c | -rw-r--r-- | 35.5 KB |
refcounttree.c | -rw-r--r-- | 120.2 KB |
refcounttree.h | -rw-r--r-- | 4.4 KB |
reservations.c | -rw-r--r-- | 20.0 KB |
reservations.h | -rw-r--r-- | 4.9 KB |
resize.c | -rw-r--r-- | 15.5 KB |
resize.h | -rw-r--r-- | 444 bytes |
slot_map.c | -rw-r--r-- | 11.6 KB |
slot_map.h | -rw-r--r-- | 769 bytes |
stack_o2cb.c | -rw-r--r-- | 11.2 KB |
stack_user.c | -rw-r--r-- | 28.9 KB |
stackglue.c | -rw-r--r-- | 17.0 KB |
stackglue.h | -rw-r--r-- | 8.8 KB |
suballoc.c | -rw-r--r-- | 74.6 KB |
suballoc.h | -rw-r--r-- | 6.9 KB |
super.c | -rw-r--r-- | 68.4 KB |
super.h | -rw-r--r-- | 911 bytes |
symlink.c | -rw-r--r-- | 2.5 KB |
symlink.h | -rw-r--r-- | 634 bytes |
sysfile.c | -rw-r--r-- | 4.1 KB |
sysfile.h | -rw-r--r-- | 416 bytes |
uptodate.c | -rw-r--r-- | 17.0 KB |
uptodate.h | -rw-r--r-- | 2.3 KB |
xattr.c | -rw-r--r-- | 192.9 KB |
xattr.h | -rw-r--r-- | 3.1 KB |
Computing file changes ...