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

Commit f0ac131a authored by Sonic Zhang's avatar Sonic Zhang Committed by Ben Dooks
Browse files

i2c-bfin-twi: return completion in interrupt for smbus quick transfers



A smbus quick transfer has no data after the address byte.

Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
parent be2f80f0
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -159,18 +159,14 @@ static void bfin_twi_handle_interrupt(struct bfin_twi_iface *iface,
		if (mast_stat & BUFWRERR)
			dev_dbg(&iface->adap.dev, "Buffer Write Error\n");

		/* if both err and complete int stats are set, return proper
		 * results.
		 */
		if (twi_int_status & MCOMP) {
		/* If it is a quick transfer, only address without data,
		 * not an err, return 1.
			 * If address is acknowledged return 1.
		 */
			if ((iface->writeNum == 0 && (mast_stat & BUFRDERR))
				|| !(mast_stat & ANAK))
		if (iface->cur_mode == TWI_I2C_MODE_STANDARD &&
			iface->transPtr == NULL &&
			(twi_int_status & MCOMP) && (mast_stat & DNAK))
			iface->result = 1;
		}

		complete(&iface->complete);
		return;
	}