Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1fb2dc25 authored by David Collins's avatar David Collins
Browse files

bif: bif-core: fall back on time-invariant transactions for read and write



Fall back and use time-invariant individual transactions for BIF
slave register read and write operations if high level read or
write controller callback functions fail.

Change-Id: Ieaf479717383719dc1f5b94cc4be72f2e8901127
Signed-off-by: default avatarDavid Collins <collinsd@codeaurora.org>
parent 8d63656e
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -448,8 +448,13 @@ static int _bif_slave_read_no_retry(struct bif_slave_dev *sdev, u16 addr,
		rc = bdev->desc->ops->read_slave_registers(bdev, addr, buf,
							   len);
		if (rc)
			pr_err("read_slave_registers failed, rc=%d\n", rc);
			pr_debug("read_slave_registers failed, rc=%d\n", rc);
		else
			return rc;
		/*
		 * Fall back on individual transactions if high level register
		 * read failed.
		 */
	}

	for (i = 0; i < len; i++) {
@@ -521,8 +526,13 @@ static int _bif_slave_write_no_retry(struct bif_slave_dev *sdev, u16 addr,
		rc = bdev->desc->ops->write_slave_registers(bdev, addr, buf,
							    len);
		if (rc)
			pr_err("write_slave_registers failed, rc=%d\n", rc);
			pr_debug("write_slave_registers failed, rc=%d\n", rc);
		else
			return rc;
		/*
		 * Fall back on individual transactions if high level register
		 * write failed.
		 */
	}

	rc = bdev->desc->ops->bus_transaction(bdev, BIF_TRANS_ERA, addr >> 8);