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

Commit 40b79544 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: kgsl: Use the firmware to host error HFI"

parents 1e9faec8 217d5d5c
Loading
Loading
Loading
Loading
+41 −30
Original line number Diff line number Diff line
@@ -467,8 +467,10 @@ static void receive_err_req(struct gmu_device *gmu, void *rcvd)
{
	struct hfi_err_cmd *cmd = rcvd;

	dev_err(&gmu->pdev->dev, "HFI Error Received: %d %d %d\n",
			cmd->error_code, cmd->data[0], cmd->data[1]);
	dev_err(&gmu->pdev->dev, "HFI Error Received: %d %d %s\n",
			((cmd->error_code >> 16) & 0xFFFF),
			(cmd->error_code & 0xFFFF),
			(char *) cmd->data);
}

static void receive_debug_req(struct gmu_device *gmu, void *rcvd)
@@ -507,13 +509,21 @@ void hfi_receiver(unsigned long data)
{
	struct gmu_device *gmu;
	uint32_t rcvd[MAX_RCVD_SIZE];
	int read_queue[] = {
		HFI_MSG_IDX,
		HFI_DBG_IDX,
	};
	int q;

	if (!data)
		return;

	gmu = (struct gmu_device *)data;

	while (hfi_queue_read(gmu, HFI_MSG_IDX, rcvd, sizeof(rcvd)) > 0) {
	/* While we are here, check all of the queues for messages */
	for (q = 0; q < ARRAY_SIZE(read_queue); q++) {
		while (hfi_queue_read(gmu, read_queue[q],
				rcvd, sizeof(rcvd)) > 0) {
			/* Special case if we're v1 */
			if (HFI_VER_MAJOR(&gmu->hfi) < 2) {
				hfi_v1_receiver(gmu, rcvd);
@@ -542,6 +552,7 @@ void hfi_receiver(unsigned long data)
			}
		};
	}
}

#define GMU_VER_MAJOR(ver) (((ver) >> 28) & 0xF)
#define GMU_VER_MINOR(ver) (((ver) >> 16) & 0xFFF)
+2 −0
Original line number Diff line number Diff line
@@ -63,6 +63,8 @@
#define HFI_IRQ_CM3_FAULT_MASK		BIT(15)
#define HFI_IRQ_OOB_MASK		GENMASK(31, 16)
#define HFI_IRQ_MASK			(HFI_IRQ_MSGQ_MASK |\
					HFI_IRQ_SIDEMSGQ_MASK |\
					HFI_IRQ_DBGQ_MASK |\
					HFI_IRQ_CM3_FAULT_MASK)

#define CLKSET_OPTION_DEFAULT 0