Skip to content

Commit e006c18

Browse files
dlechbroonie
authored andcommitted
spi: axi-spi-engine: remove xfer arg from spi_engine_gen_sleep()
This replaces the xfer parameter of spi_engine_gen_sleep() in the AXI SPI Engine driver with parameters for the delay in nanoseconds and the SPI SCLK rate. This will allow this function to be used by callers in the future that do not have a spi_transfer struct. Signed-off-by: David Lechner <dlechner@baylibre.com> Acked-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Nuno Sa <nuno.sa@analog.com> Link: https://lore.kernel.org/r/20231204-axi-spi-engine-series-2-v1-5-063672323fce@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent be9070b commit e006c18

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

drivers/spi/spi-axi-spi-engine.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,17 +168,16 @@ static void spi_engine_gen_xfer(struct spi_engine_program *p, bool dry,
168168
}
169169

170170
static void spi_engine_gen_sleep(struct spi_engine_program *p, bool dry,
171-
struct spi_transfer *xfer)
171+
int delay_ns, u32 sclk_hz)
172172
{
173173
unsigned int t;
174-
int delay_ns;
175174

176-
delay_ns = spi_delay_to_ns(&xfer->delay, xfer);
175+
/* negative delay indicates error, e.g. from spi_delay_to_ns() */
177176
if (delay_ns <= 0)
178177
return;
179178

180179
/* rounding down since executing the instruction adds a couple of ticks delay */
181-
t = DIV_ROUND_DOWN_ULL((u64)delay_ns * xfer->effective_speed_hz, NSEC_PER_SEC);
180+
t = DIV_ROUND_DOWN_ULL((u64)delay_ns * sclk_hz, NSEC_PER_SEC);
182181
while (t) {
183182
unsigned int n = min(t, 256U);
184183

@@ -256,7 +255,8 @@ static void spi_engine_compile_message(struct spi_message *msg, bool dry,
256255
}
257256

258257
spi_engine_gen_xfer(p, dry, xfer);
259-
spi_engine_gen_sleep(p, dry, xfer);
258+
spi_engine_gen_sleep(p, dry, spi_delay_to_ns(&xfer->delay, xfer),
259+
xfer->effective_speed_hz);
260260

261261
if (xfer->cs_change) {
262262
if (list_is_last(&xfer->transfer_list, &msg->transfers)) {

0 commit comments

Comments
 (0)