diff --git a/drivers/gpu/msm/governor_gpubw_mon.c b/drivers/gpu/msm/governor_gpubw_mon.c index 8813cc60c921..0b8cf34c707f 100644 --- a/drivers/gpu/msm/governor_gpubw_mon.c +++ b/drivers/gpu/msm/governor_gpubw_mon.c @@ -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) { @@ -233,6 +236,7 @@ static struct devfreq_governor devfreq_gpubw = { .name = "gpubw_mon", .get_target_freq = devfreq_gpubw_get_target, .event_handler = devfreq_gpubw_event_handler, + .immutable = 1, }; static int __init devfreq_gpubw_init(void) diff --git a/drivers/gpu/msm/governor_msm_adreno_tz.c b/drivers/gpu/msm/governor_msm_adreno_tz.c index 0a363218112f..360ff0cc91d5 100644 --- a/drivers/gpu/msm/governor_msm_adreno_tz.c +++ b/drivers/gpu/msm/governor_msm_adreno_tz.c @@ -1,12 +1,13 @@ // 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 #include #include #include #include +#include #include #include #include @@ -505,11 +506,15 @@ 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), - struct msm_adreno_extended_profile, - profile); + if (!of_device_is_compatible(node, "qcom,kgsl-3d0")) + return -EINVAL; + + gpu_profile = container_of((devfreq->profile), + struct msm_adreno_extended_profile, + profile); switch (event) { case DEVFREQ_GOV_START: