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

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

 



* 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)

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.

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