Re: [PATCH] spi: add runtime PM for transfer_one_message

From: Mark Brown
Date: Mon Nov 02 2020 - 13:17:06 EST


On Mon, Nov 02, 2020 at 07:22:39PM +0800, Chunyan Zhang wrote:
> From: Chunyan Zhang <chunyan.zhang@xxxxxxxxxx>

> Before transfer message, spi devices probably have been in runtime suspended,
> that would cause the kernel crash on some platforms once access spi
> registers, such as on Unisoc's SoCs. The spi devices can be suspended
> until message transfer completed.

This commit message is a bit hard to follow so I don't really understand
what the issue is. We only ever call transfer_one_message() from within
__spi_pump_messages() which already handles auto_runtime_pm so I'm not
seeing the situation where we might get to transfer_one_message()
without having already runtime resumed the controller. What exactly is
the error situation here? This code has been around for a while and I'm
not aware of reports of issues here and I can't see anything unusual
that the Spreadtrum driver is doing.

Also why are we doing this in transfer_one_message() where it will only
work for controllers using that? If we're missing runtime PM in some
paths then presumably controllers with a custom implementation are also
going to be affected as well, auto_runtime_pm is supposed to work for
them as well.

Attachment: signature.asc
Description: PGP signature