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

Commit 90bec1c5 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "coresight-tmc: Use sysfs_buf for byte-cntr and sw usb cases"

parents c5289e45 1ebe55d9
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ static struct tmc_drvdata *tmcdrvdata;
static void tmc_etr_read_bytes(struct byte_cntr *byte_cntr_data, loff_t *ppos,
			       size_t bytes, size_t *len, char **bufp)
{
	struct etr_buf *etr_buf = tmcdrvdata->etr_buf;
	struct etr_buf *etr_buf = tmcdrvdata->sysfs_buf;
	size_t actual;

	if (*len >= bytes)
@@ -62,7 +62,7 @@ static irqreturn_t etr_handler(int irq, void *data)
static void tmc_etr_flush_bytes(loff_t *ppos, size_t bytes, size_t *len)
{
	uint32_t rwp = 0;
	dma_addr_t paddr = tmcdrvdata->etr_buf->hwaddr;
	dma_addr_t paddr = tmcdrvdata->sysfs_buf->hwaddr;

	rwp = readl_relaxed(tmcdrvdata->base + TMC_RWP);

@@ -327,7 +327,7 @@ static int usb_transfer_small_packet(struct qdss_request *usb_req,
			struct byte_cntr *drvdata, size_t *small_size)
{
	int ret = 0;
	struct etr_buf *etr_buf = tmcdrvdata->etr_buf;
	struct etr_buf *etr_buf = tmcdrvdata->sysfs_buf;
	size_t req_size, actual;
	long w_offset;

@@ -352,7 +352,7 @@ static int usb_transfer_small_packet(struct qdss_request *usb_req,
		req_size -= actual;

		if ((drvdata->offset + actual) >=
				tmcdrvdata->etr_buf->size)
				tmcdrvdata->sysfs_buf->size)
			drvdata->offset = 0;
		else
			drvdata->offset += actual;
@@ -389,7 +389,7 @@ static void usb_read_work_fn(struct work_struct *work)
{
	int ret, i, seq = 0;
	struct qdss_request *usb_req = NULL;
	struct etr_buf *etr_buf = tmcdrvdata->etr_buf;
	struct etr_buf *etr_buf = tmcdrvdata->sysfs_buf;
	size_t actual, req_size, req_sg_num, small_size = 0;
	size_t actual_total = 0;
	char *buf;
@@ -461,7 +461,7 @@ static void usb_read_work_fn(struct work_struct *work)
					sg_mark_end(&usb_req->sg[i]);

				if ((drvdata->offset + actual) >=
					tmcdrvdata->etr_buf->size)
					tmcdrvdata->sysfs_buf->size)
					drvdata->offset = 0;
				else
					drvdata->offset += actual;
+3 −5
Original line number Diff line number Diff line
@@ -1525,7 +1525,10 @@ static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev)
			dev_err(&csdev->dev, "usb_qdss_open failed\n");
			drvdata->enable = false;
			drvdata->mode = CS_MODE_DISABLED;
			if (drvdata->byte_cntr->sw_usb)
				tmc_etr_disable_hw(drvdata);
			ret = -ENODEV;
			goto out;
		}
	}

@@ -2052,11 +2055,6 @@ static int _tmc_disable_etr_sink(struct coresight_device *csdev,
		}
		coresight_cti_unmap_trigin(drvdata->cti_reset, 2, 0);
		coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0);
		/* Free memory outside the spinlock if need be */
		if (drvdata->etr_buf) {
			tmc_etr_free_sysfs_buf(drvdata->etr_buf);
			drvdata->etr_buf = NULL;
		}
	}
out:
	dev_info(&csdev->dev, "TMC-ETR disabled\n");