Bug 102791

Summary: mmc2: error -84 whilst initialising SD card
Product: Drivers Reporter: nutrinfnon
Component: MMC/SDAssignee: drivers_mmc-sd
Status: RESOLVED INVALID    
Severity: normal    
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 4.2.0-rc6 Subsystem:
Regression: No Bisected commit-id:
Attachments: logs of all scenarios

Description nutrinfnon 2015-08-13 05:54:39 UTC
Created attachment 184811 [details]
logs of all scenarios

I'm using tablet CHUWI 8VX 3G (baytrail 3735G with 8GB internal storage and a slot for sd).

I can start debian with kernel 3.10.20 (from tablet original android installation) and with latest mainline 4.2.0-rc6.

With 3.10.20 sd card works fine (obviously).

With 4.2.0-rc6 there is two cases:
 cold start (device start from switched off) no sd device has been recognized
 warm start (device reboot from 3.10.20) sd works fine


In attach the logs (dmesg, /sys/kernel/debugfs/gpio, /proc/interrupts):
1) log_3.10.20 all OK;
2) log_4.2.0-rc6_cold_start (sd does not work);
3) log_4.2.0-rc6_warm_start (sd works)

Thanks
Comment 1 nutrinfnon 2015-09-14 06:09:43 UTC
I think issue is due to signal voltage:

cold start sd does not work
cat mmc2/ios 
clock:		50000000 Hz
actual clock:	50000000 Hz
vdd:		21 (3.3 ~ 3.4 V)
bus mode:	2 (push-pull)
chip select:	0 (don't care)
power mode:	2 (on)
bus width:	2 (4 bits)
timing spec:	2 (sd high-speed)
signal voltage:	0 (3.30 V)

warm start sd works fine
cat /sys/kernel/debug/mmc2/ios
clock:		50000000 Hz
actual clock:	50000000 Hz
vdd:		17 (2.9 ~ 3.0 V)
bus mode:	2 (push-pull)
chip select:	0 (don't care)
power mode:	2 (on)
bus width:	2 (4 bits)
timing spec:	7 (sd uhs DDR50)
signal voltage:	1 (1.80 V)


It seems, android_kernel is able to change signal voltage, mainstream does not.

I don't know if the problem is in BIOS/UEFI or in kernel, so for the moment I close this bug #102791.