Re: sdhci-omap: issues with PM features since 5.16

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Le 29/01/2024 à 12:17, Tony Lindgren a écrit :
> * Romain Naour <romain.naour@xxxxxxxx> [240129 10:11]:
>> Hello,
>>
>> Le 27/01/2024 à 05:48, Tony Lindgren a écrit :
>>> Hi,
>>>
>>> * Romain Naour <romain.naour@xxxxxxxx> [240126 20:53]:
>>>> Hello,
>>>>
>>>> I'm upgrading the kernel from 5.10.168 to 6.1.69 (both from TI tree) on a custom
>>>> board based on a AM574x SoC and I noticed a regression on the sdhci-omap driver.
>>>>
>>>> The emmc was working on the 5.10 kernel using mmc-hs200 powered at 1,8v (mmc2).
>>>
>>> Is this limited to emmc or does it also happen with the micro-sd or wlan possibly?
>>
>> I can't test with a wlan device but I noticed the same issue on micro-sd (the
>> mmc0 interface in my first post is a micro-sd)
> 
> OK
> 
>>> If the issue is emmc related, do you have mmc-pwrseq-emmc configured in the dts?
>>>
>>>> I'm able to reproduce on the IDK574x evaluation board (where the emmc is powered
>>>> at 3v3) with vanilla kernels.
>>>
>>> OK, looks like only am5729-beagleboneai.dts has configured mmc-pwrseq-emmc.
>>>
>>>> I had to revert all commits related to "PM runtime functions" [1] and "card
>>>> power off and enable aggressive PM" [2] from kernel 5.16 to use the emmc again
>>>> on both boards.
>>>
>>> OK, this sounds like power sequence related when the emmc gets idled.
>>
>> It seems mmc0 ios infos are lost at some point, just after the kernel boot they
>> are correct:
>>
>> cat /sys/kernel/debug/mmc0/ios
>> 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)
>> driver type:	0 (driver type B)
>>
>> And without notice, ios became wrong:
>>
>> cat /sys/kernel/debug/mmc0/ios
>> clock:		0 Hz
>> vdd:		0 (invalid)
>> bus mode:	2 (push-pull)
>> chip select:	0 (don't care)
>> power mode:	0 (off)
>> bus width:	0 (1 bits)
>> timing spec:	0 (legacy)
>> signal voltage:	0 (3.30 V)
>> driver type:	0 (driver type B)
>>
>> # cat /sys/bus/mmc/devices/mmc0:1234/type
>> SD
> 
> With a beagle x15, the ios values are correct after I do
> something like fdisk -l /dev/mmcblk0:
> 
> # cat /sys/kernel/debug/mmc0/ios
> clock:          0 Hz
> vdd:            0 (invalid)
> bus mode:       2 (push-pull)
> chip select:    0 (don't care)
> power mode:     0 (off)
> bus width:      0 (1 bits)
> timing spec:    0 (legacy)
> signal voltage: 0 (3.30 V)
> driver type:    0 (driver type B)
> 
> # fdisk -l /dev/mmcblk0
> ...
> 
> # cat /sys/kernel/debug/mmc0/ios
> 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)
> driver type:    0 (driver type B)

OK, I reproduced the same behavior on the AM574x evaluation board. I didn't know
that ios can report clock 0 Hz and vdd invalid when the device is idle. I
thought that was a symptom of my initial issue "mmc1: cache flush error -110".

So, there is no issue on AM574x evaluation board.

> 
> So I'm still guessing your issue is with emmc not getting reinitialized
> properly as there's no mmc-pwrseq-emmc configured. Can you give it a
> try? See am5729-beagleboneai.dts for an example.

I don't understand how the emmc_pwrseq node can work on am5729-beagleboneai
using gpio5_7 as reset-gpio since this pin it's not connected (F13 ball)

	emmc_pwrseq: emmc_pwrseq {
		compatible = "mmc-pwrseq-emmc";
		reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
	};

https://openbeagle.org/beagleboard/beaglebone-ai/-/blob/master/BeagleBone-AI_RevA2_sch.pdf

Note that mmc2 node is using ti,needs-special-reset property that is not used in
shdci-omap driver but only in omap_hsmmc.

Best regards,
Romain

> 
> Regards,
> 
> Tony





[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux