On Mon, Oct 12, 2020 at 12:59:34PM +0200, Christian Eggers wrote: > Hi Sascha, > > On Friday, 9 October 2020, 09:39:44 CEST, Sascha Hauer wrote: > > On Fri, Oct 09, 2020 at 06:27:38AM +0200, Christian Eggers wrote: > > > This reverts commit 525c9e5a32bd7951eae3f06d9d077fea51718a6c. > > > > > > If CONFIG_PM is disabled, the system completely freezes on probe as > > > nothing enables the clock of the SPI peripheral. > > > > Instead of reverting it, why not just fix it? > > > > Normally the device should be brought to active state manually in probe > > before pm_runtime takes over, then CONFIG_PM disabled doesn't hurt. > > Using pm_runtime to put the device to active state initially has the > > problem you describe. > > prior introducing runtime pm for spi-imx, the clock was "manually" enabled and > disabled around each transfer (so the power usage should already have been > optimal). If we would manually enable the clock in probe() as you suggested, > for users without CONFIG_PM there would be a drawback compared with the > previous state (as the clock will always be on now). > > What is the benefit of controlling the SPI clock with runtime PM instead of > doing it manually? The clocks are reconfigured less frequently with pm_runtime. Especially when enabling/disabling PLLs are involved pm_runtime can increase performance. Also you can put other stuff you need to handle for your device into pm_runtime, think of regulators for example. All this is then abstracted behind a common kernel API. Generally when you disable CONFIG_PM then you are not interested in power consumption and in that case you shouldn't be interested in disabling your SPI clocks. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |