Link Power Management for LimeSDR

I notice that the kernel detects the LimeSDR when attached and I notice this message printed out:

LPM exit latency is zeroed, disabling LPM.

From the kernel source:

/*
* According to the USB 3.0 spec, all USB 3.0 devices must support LPM.
* However, there are some that don’t, and they set the U1/U2 exit
* latencies to zero.
*/
if (!udev->bos->ss_cap) {
dev_info(&udev->dev, “No LPM exit latency info found, disabling LPM.\n”);
return 0;
}

This seems like a good feature to have enabled when you have a device that is not always active. But maybe I am misunderstanding LPM.

This article leads me to this conclusion:

https://lwn.net/Articles/498068/

Is it possible to enable this feature with the current code? Or would the code (i.e. firmware) require modification? Or is this not possible at all?

Here is a document from Cypress. You should check chapters 2.2, 2.4, 2.7. Long story short - it is better to avoid LPM.

I think that is the correct conclusion. The problems it causes outweigh any benefit. I guess there are other ways to reduce power consumption. I had not even heard about it before and after I posted I followed some threads on it.

Maybe once hardware and software people sync up on LPM it might be beneficial. I will not hold my breath.

Some errors also related to LPM. Some might see these in dmesg.

Cannot set link state.
cannot disable (err = -32)

These are not specific to the LimeSDR but are for USB3 devices that have disabled LPM. Which seems to be all USB3 devices out there.