spi: orion: enable clocks before spi_setup
authorMarcin Wojtas <mw@semihalf.com>
Wed, 23 Dec 2020 10:38:26 +0000 (12:38 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 28 Dec 2020 12:25:30 +0000 (12:25 +0000)
commite2be70318d7b0ad9446d8a64ed1bc73e3316ee39
tree6a124300d4ad82083daa35a6f5379743da130508
parenta34d4197a144d83d508163404ad7d214082e909a
spi: orion: enable clocks before spi_setup

The spi-orion driver disables its clocks whenever it is not used.
In usual case during boot (i.e. using SPI flash) it is not a problem,
as the child device driver is present and probed along with
spi_register_master() execution.

However in case the child device driver is not ready
(e.g. when its type is module_spi_driver) the spi_setup() callback
can be called after the spi-orion probe. It may happen,
that as a result there will be an attempt to access controller's
registers with the clocks disabled.

Prevent such situations and make sure the clocks are on,
each time the spi_setup() is called.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
Link: https://lore.kernel.org/r/20201223103827.29721-2-kostap@marvell.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-orion.c