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

Commit 44bfe6de authored by Mohammed Mirza Mandayappurath Manzoor's avatar Mohammed Mirza Mandayappurath Manzoor
Browse files

msm: kgsl: Make ACD QMP message sending failure non fatal



If ACD fails to send its state through the QMP mailbox, we do not get
the power saving as expected. An error message will do and need not
fail probe.

Change-Id: I821d0d3c774cc45726a8c7b281d226ff5da83fa5
Signed-off-by: default avatarMohammed Mirza Mandayappurath Manzoor <mmandaya@codeaurora.org>
parent eb3e2f6c
Loading
Loading
Loading
Loading
+11 −18
Original line number Diff line number Diff line
@@ -2059,22 +2059,27 @@ void a6xx_gmu_snapshot(struct adreno_device *adreno_dev,

}

static int a6xx_gmu_aop_send_acd_state(struct mbox_chan *channel, bool flag)
static void a6xx_gmu_aop_send_acd_state(struct a6xx_gmu_device *gmu, bool flag)
{
	char msg_buf[33];
	int ret;
	struct {
		u32 len;
		void *msg;
	} msg;

	if (IS_ERR_OR_NULL(channel))
		return 0;
	if (IS_ERR_OR_NULL(gmu->mailbox.channel))
		return;

	msg.len = scnprintf(msg_buf, sizeof(msg_buf),
			"{class: gpu, res: acd, value: %d}", flag);
	msg.msg = msg_buf;

	return mbox_send_message(channel, &msg);
	ret = mbox_send_message(gmu->mailbox.channel, &msg);

	if (ret < 0)
		dev_err(&gmu->pdev->dev,
			"AOP mbox send message failed: %d\n", ret);
}

static int a6xx_gmu_enable_gdsc(struct adreno_device *adreno_dev)
@@ -2140,13 +2145,7 @@ static int a6xx_gmu_first_boot(struct adreno_device *adreno_dev)

	trace_kgsl_pwr_request_state(device, KGSL_STATE_AWARE);

	ret = a6xx_gmu_aop_send_acd_state(gmu->mailbox.channel,
			adreno_dev->acd_enabled);
	if (ret) {
		dev_err(&gmu->pdev->dev,
			"AOP mbox send message failed: %d\n", ret);
		return ret;
	}
	a6xx_gmu_aop_send_acd_state(gmu, adreno_dev->acd_enabled);

	ret = a6xx_gmu_enable_gdsc(adreno_dev);
	if (ret)
@@ -2314,15 +2313,9 @@ static int a6xx_gmu_boot(struct adreno_device *adreno_dev)
static void set_acd(struct adreno_device *adreno_dev, void *priv)
{
	struct a6xx_gmu_device *gmu = to_a6xx_gmu(adreno_dev);
	int ret;

	adreno_dev->acd_enabled = *((bool *)priv);

	ret = a6xx_gmu_aop_send_acd_state(gmu->mailbox.channel,
		adreno_dev->acd_enabled);
	if (ret)
		dev_err(&gmu->pdev->dev,
				"AOP mbox send message failed: %d\n", ret);
	a6xx_gmu_aop_send_acd_state(gmu, adreno_dev->acd_enabled);
}

static int a6xx_gmu_acd_set(struct kgsl_device *device, bool val)