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

Commit 0107bae0 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nv50: fail auxch transaction if reply count not what we expect



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 0208843d
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -490,7 +490,8 @@ nouveau_dp_auxch(struct nouveau_i2c_chan *auxch, int cmd, int addr,
		if (!nv_wait(NV50_AUXCH_CTRL(index), 0x00010000, 0x00000000)) {
			NV_ERROR(dev, "expected bit 16 == 0, got 0x%08x\n",
				 nv_rd32(dev, NV50_AUXCH_CTRL(index)));
			return -EBUSY;
			ret = -EBUSY;
			goto out;
		}

		udelay(400);
@@ -501,6 +502,11 @@ nouveau_dp_auxch(struct nouveau_i2c_chan *auxch, int cmd, int addr,
			break;
	}

	if ((stat & NV50_AUXCH_STAT_COUNT) != data_nr) {
		ret = -EREMOTEIO;
		goto out;
	}

	if (cmd & 1) {
		for (i = 0; i < 4; i++) {
			data32[i] = nv_rd32(dev, NV50_AUXCH_DATA_IN(index, i));