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

Commit 4f676b69 authored by Anil Veshala Veshala's avatar Anil Veshala Veshala Committed by Gerrit - the friendly Code Review server
Browse files

i2c: i2c-msm-geni: add rtl based changes



When IO lines not in good state we are not doing cancel
and abort for non-rtl SE's, due to this we are seeing
unexpected errors from QUP. To solve this added changes
like rtl based flag, to proceed further sequence for non-rtl
based SE's.

Change-Id: I4dac0bf97ff0077bf18b806446de95eab40a2e1f
Signed-off-by: default avatarAnil Veshala Veshala <quic_aveshala@quicinc.com>
parent f094cbc6
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -991,10 +991,13 @@ static int geni_i2c_gsi_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
			if ((geni_ios & 0x3) != 0x3) { //SCL:b'1, SDA:b'0
				GENI_SE_DBG(gi2c->ipcl, true, gi2c->dev,
					"%s: IO lines not in good state\n", __func__);
					/* doing pending cancel only rtl based SE's */
					if (gi2c->is_i2c_rtl_based) {
						gi2c->prev_cancel_pending = true;
						goto geni_i2c_gsi_cancel_pending;
					}
			}
		}
geni_i2c_err_prep_sg:
		if (gi2c->err) {
			if (!gi2c->is_le_vm) {
@@ -1200,10 +1203,13 @@ static int geni_i2c_xfer(struct i2c_adapter *adap,
			if ((geni_ios & 0x3) != 0x3) { //SCL:b'1, SDA:b'0
				GENI_SE_DBG(gi2c->ipcl, true, gi2c->dev,
					"%s: IO lines not in good state\n", __func__);
				/* doing pending cancel only rtl based SE's */
				if (gi2c->is_i2c_rtl_based) {
					gi2c->prev_cancel_pending = true;
					goto geni_i2c_txn_ret;
				}
			}
		}

		if (gi2c->err) {
			reinit_completion(&gi2c->xfer);