ChanServ changed the topic of #aarch64-laptops to: Linux support for AArch64 Laptops (Asus NovaGo TP370QL - HP Envy x2 - Lenovo Mixx 630 - Lenovo Yoga C630)
phire_ has joined #aarch64-laptops
phire is now known as Guest4585
phire_ is now known as phire
Guest4585 has quit [Ping timeout: 480 seconds]
agl7-Galaxy has quit [Ping timeout: 480 seconds]
hexdump0815 has joined #aarch64-laptops
hexdump01 has quit [Ping timeout: 480 seconds]
<jhovold>
broonie: i would not be suprised if there are further problems with the qualcomm runtime pm implementation, but the -EBUSY in steev's log happens already during component probe
<jhovold>
the runtime pm implementaion is incomplete, and fails to resume the soundwire device before trying to access the registers
<jhovold>
I can reproduce the issue here with some instrumentation altering the autosuspend timing, has just worked by chance for most of us so far
<jhovold>
steev: i shall have a fix for you to test by the time you wake up (go back to to bed ;) )
svarbanov has joined #aarch64-laptops
svarbanov has quit [Ping timeout: 480 seconds]
<ungeskriptet>
kitsune-tsuki: Hi, I've been told that you have a sc7180 laptop with ufs. I want to upstream SM7125 support and wanted to ask you if you have ufs working there
<ungeskriptet>
Right now I have ufs defined in sm7125.dtsi. It would be great if you could test this so that I can move the UFS nodes to sc7180.dtsi if it works for you
<hexdump0815>
ungeskriptet: but i must admit that i have no real idea about ufsand that was really just a blind try - i guess there is more code required beyond just the dts entries
<ungeskriptet>
I remember that UFS wasn't working for me on the latest kernel and I had to change some nodes/properties
<hexdump0815>
ungeskriptet: i could try a few things in case you can guide me a bit :)
<ungeskriptet>
Sure that would be great
<hexdump0815>
ungeskriptet: i'm currently running v6.1, so if you have anything to try for that, then just point me to the code and i can have a look in a few days ... i could also go to v6.3 or v6.4 if needed
<hexdump0815>
ungeskriptet: what seems to be a problem on those windows on arm devices it to get reliable resource info from the dsdt
<ungeskriptet>
You need this patch and rename sm7125-qmp-ufs-phy to sc7180-qmp-ufs-phy
<ungeskriptet>
And rename the compatible in the DTS too
<ungeskriptet>
It would be best to test this on v6.4
<jhovold>
steev, broonie: very odd, that register is only accessed in wcd938x_soc_codec_probe() and I could reproduce the exact same symptoms you reported by intstrumenting the timing
<jhovold>
it seems unlikely that we have more than one way that that access can fail with -EBUSY, but I guess not impossible
agl7 has joined #aarch64-laptops
<broonie>
Is runtime PM turned off somehow?
<hexdump0815>
ungeskriptet: i'll give it a try during the next days and report back here
<jhovold>
broonie: I'm assuming the -EBUSY comes from map->cache_only being set in _regmap_read(). If runtime was disabled, the soundwire device should not be suspended and that flah should not be set
<broonie>
jhovold: wcd9380_probe() appears to unconditionally set cache_only, assuming it's starting up with runtime PM idle.
<jhovold>
broonie: heh, indeed. So way we have at least two ways this implementation is broken...
<broonie>
The whole bootstrapping with runtime PM situation coupled with optionality always feels overly fragile and complex :/
<jhovold>
broonie, steev: so it seems we may have a regression here with 84822215acd1 ("ASoC: codecs: wcd938x: fix accessing regmap on unattached devices") that was backported to 6.3.2
<jhovold>
before that commit, the state of the regmap cache flag matched the runtime pm state
<jhovold>
and with my fix, this would not have been an issue
<broonie>
Oh, it's the TX sound device probing after whatever device this is?
<jhovold>
I'll take a closer look later, but dropping that regcache_cache_only or setting the initial state to suspended may be enough to address this
<broonie>
The other devices need to probe defer if they need the regmap.
<jhovold>
broonie: the code is using this soundwire device for register accesses, i don't understand yet why you'd set it the cache_only flag ones it has probed
<jhovold>
codec*
<broonie>
IIRC it's the SoundWire issue where the device is probed through DT but might not have actually enumerated on the bus yet.
<jhovold>
ah, ok. yeah, something clearly goes wrong, but at least we know roughly where now
<jhovold>
goes wrong here*
<broonie>
We keep a persistent Linux device around for SoundWire devices even though they might physically hot unplug and reconnect for power management purposes.
<jhovold>
ok, after skimming the commit message, it seems starting up in suspended state might do the trick, but I'll take a closer look tomorrow
<steev>
jhovold: shouldn't that mean that 6.3.9/10 shouldn't work as well though if it was backported to 6.3.2? because 6.3 works for me, but 6.4+ does not (though 6.3.10 seems to have a few timing issues)
ptitSeb has joined #aarch64-laptops
ptitSeb_ has quit [Ping timeout: 480 seconds]
agl7-Galaxy has quit [Remote host closed the connection]
agl7-Galaxy has joined #aarch64-laptops
agl7 has quit [Quit: bis denne]
svarbanov has quit [Ping timeout: 480 seconds]
Caterpillar has quit [Quit: Konversation terminated!]