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

Commit e2acc023 authored by Mao Jinlong's avatar Mao Jinlong
Browse files

tmc-etr: Fix duplicate logs issue when use sw usb mode



If etr driver data size is smaller than the sysfs buffer size,
it will read the data from the begainning of etr buffer repeatedly
when the actual read size plus the offset is greater than etr
driver data size. Compare with etr buffer size instead of etr
driver data size to fix this issue.

Change-Id: Ic523f8c5efd8348de7be80128a96d4e1ce867b9b
Signed-off-by: default avatarMao Jinlong <jinlmao@codeaurora.org>
parent f1dcdac7
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -346,7 +346,8 @@ static int usb_transfer_small_packet(struct qdss_request *usb_req,
		drvdata->usb_req = usb_req;
		req_size -= actual;

		if ((drvdata->offset + actual) >= tmcdrvdata->size)
		if ((drvdata->offset + actual) >=
				tmcdrvdata->etr_buf->size)
			drvdata->offset = 0;
		else
			drvdata->offset += actual;
@@ -455,7 +456,7 @@ static void usb_read_work_fn(struct work_struct *work)
					sg_mark_end(&usb_req->sg[i]);

				if ((drvdata->offset + actual) >=
					tmcdrvdata->size)
					tmcdrvdata->etr_buf->size)
					drvdata->offset = 0;
				else
					drvdata->offset += actual;