On 8/6/21 8:24 AM, Vinod Koul wrote: > On 02-08-21, 08:59, Pierre-Louis Bossart wrote: >> >> >> >>>> On some HDaudio platforms, SoundWire devices are described in the >>>> DSDT but never used. This patch adds a boolean status flag to skip all >>>> suspend/resume/wake sequences for this configuration. >>> >>> Why are the sdw devices created in this case then? I would assume you >>> are detecting this configuration and should skip device creation? >> >> The SDW Linux devices are created during the probe step, based on >> information extracted from platform firmware. Since we see a matching >> driver, there will be a probe and that driver also contains pm ops. >> >> We only know if the physical peripherals described in ACPI are real or >> not during the startup() phase. After the bus reset, SoundWire >> peripherals will report as ATTACHED as Device0 and the enumeration starts. >> >> So in these HDaudio cases, we create the Linux devices based on >> incorrect ACPI information, but since we detect an HDaudio configuration >> we never start the links and the suspend-resume fails. >> >> For a bit of historical context, the decision to handle devices in this >> way was not the original proposal from Intel. In the initial patches, >> the Linux devices were created when their matching physical peripheral >> was showing signs of activity and attached after synchronizing. We >> modified this behavior so that a device driver could use out-of-band >> signaling to power-up a peripheral so that it could attach. That wasn't >> a bad idea, but that also exposes a number of 'ghost devices' that are >> not real. And unfortunately the Intel BIOS reference keeps using those >> invalid _ADR values... >> >> Does this answer to the question? > > Yes it does thanks, very helpful. > > Can we add this to the changelog, am sure down the line people might > forget why it was added. yes, will do.