Skip to content

Commit 03314cd

Browse files
roliver-rpipelwell
authored andcommitted
media: i2c: imx500: Allow larger SPI transfers
Remove the arbitrary 1 MiB transfer limit from imx500_spi_write() as the 1 MiB chunk limitation for firmware / network transfers is already upheld by imx500_state_transition(). This allows for larger input tensors to be injected via imx500_inject_input_tensor() (where there is no 1 MiB chunk limitation). Increase the number of poll attempts whilst waiting for the injection handshake register to be TRANS_COMP to allow more time for the checksum of larger input tensors to be calculated. Alter error messages in imx500_inject_input_tensor() so that imx500_spi_write() and imx500_injection_wait_transfer_complete() errors may be more easily differentiated. Signed-off-by: Richard Oliver <[email protected]>
1 parent 5a2415a commit 03314cd

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/media/i2c/imx500.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1937,7 +1937,7 @@ static void imx500_clear_fw_network(struct imx500 *imx500)
19371937
static int __must_check imx500_spi_write(struct imx500 *state, const u8 *data,
19381938
size_t size)
19391939
{
1940-
if (size % 4 || size > ONE_MIB)
1940+
if (size % 4)
19411941
return -EINVAL;
19421942

19431943
if (!state->spi_device)
@@ -1957,7 +1957,7 @@ static int imx500_injection_wait_transfer_complete(struct imx500 *imx500)
19571957

19581958
/* Continue polling until we reach the final TRANS_COMP state */
19591959
while (hndsk_reg.val != IMX500_DD_DAT_INJECTION_HNDSK_TRANS_COMP) {
1960-
ret = imx500_poll_status_reg(imx500, &hndsk_reg, 5);
1960+
ret = imx500_poll_status_reg(imx500, &hndsk_reg, 10);
19611961
if (ret) {
19621962
dev_err(&client->dev,
19631963
"Handshake register did not update from state %llu\n",
@@ -2085,7 +2085,7 @@ static int imx500_inject_input_tensor(struct imx500 *imx500, const u32 *data,
20852085

20862086
ret = imx500_injection_wait_transfer_complete(imx500);
20872087
if (ret) {
2088-
dev_err(&client->dev, "SPI transfer of input tensor failed\n");
2088+
dev_err(&client->dev, "Input tensor transfer failed to complete\n");
20892089
return ret;
20902090
}
20912091

0 commit comments

Comments
 (0)