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

Commit f02489b4 authored by Harshdeep Dhatt's avatar Harshdeep Dhatt
Browse files

msm: kgsl: Restrict gpu governors to gpu devfreq devices



These governors should fail if being set for any device other
than the gpu device. Do this by checking that the devfreq
device for which this governor is being set for has the gpu
device as it's parent device.

Change-Id: I391557c0d52a1f4ffba70e010401a0769587dea0
Signed-off-by: default avatarHarshdeep Dhatt <hdhatt@codeaurora.org>
parent 17c22334
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -197,6 +197,9 @@ static int devfreq_gpubw_event_handler(struct devfreq *devfreq,
	int result = 0;
	unsigned long freq;

	if (strcmp(dev_name(devfreq->dev.parent), "kgsl-busmon"))
		return -EINVAL;

	mutex_lock(&devfreq->lock);
	freq = devfreq->previous_freq;
	switch (event) {
+10 −5
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2010-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2010-2020, The Linux Foundation. All rights reserved.
 */
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/devfreq.h>
#include <linux/dma-mapping.h>
#include <linux/math64.h>
#include <linux/of_platform.h>
#include <linux/spinlock.h>
#include <linux/slab.h>
#include <linux/io.h>
@@ -505,9 +506,13 @@ static int tz_suspend(struct devfreq *devfreq)
static int tz_handler(struct devfreq *devfreq, unsigned int event, void *data)
{
	int result;
	struct msm_adreno_extended_profile *gpu_profile;
	struct device_node *node = devfreq->dev.parent->of_node;

	struct msm_adreno_extended_profile *gpu_profile = container_of(
					(devfreq->profile),
	if (!of_device_is_compatible(node, "qcom,kgsl-3d0"))
		return -EINVAL;

	gpu_profile = container_of((devfreq->profile),
			struct msm_adreno_extended_profile,
			profile);