MALI: midgard: Linux: support custom ondemand_data
authorJacob Chen <jacob2.chen@rock-chips.com>
Thu, 23 Mar 2017 01:03:23 +0000 (09:03 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 29 Mar 2017 05:06:58 +0000 (13:06 +0800)
get parameter from dts

Change-Id: Id1b11e3d6a5809cbd4f6f52b1595562e0fa66f70
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
drivers/gpu/arm/midgard_for_linux/backend/gpu/mali_kbase_devfreq.c
drivers/gpu/arm/midgard_for_linux/mali_kbase_defs.h

index ad05fe5bea8d225d10d7ed1476a79f4d32ce1943..69b13ddad95f881ad3e995f1816a1ba92227c05c 100644 (file)
@@ -223,8 +223,14 @@ int kbase_devfreq_init(struct kbase_device *kbdev)
        if (kbase_devfreq_init_freq_table(kbdev, dp))
                return -EFAULT;
 
+       of_property_read_u32(kbdev->dev->of_node, "upthreshold",
+                            &kbdev->ondemand_data.upthreshold);
+       of_property_read_u32(kbdev->dev->of_node, "downdifferential",
+                            &kbdev->ondemand_data.downdifferential);
+
        kbdev->devfreq = devfreq_add_device(kbdev->dev, dp,
-                               "simple_ondemand", NULL);
+                               "simple_ondemand",
+                               &kbdev->ondemand_data);
        if (IS_ERR(kbdev->devfreq)) {
                kbase_devfreq_term_freq_table(kbdev);
                return PTR_ERR(kbdev->devfreq);
index 4bb8c2c7aec23176a4208809a58a087fe4936025..69845c2a69ec5088607c5a3c04e0be75171216e1 100644 (file)
@@ -1035,6 +1035,7 @@ struct kbase_device {
        struct devfreq *devfreq;
        unsigned long current_freq;
        unsigned long current_voltage;
+       struct devfreq_simple_ondemand_data ondemand_data;
 #ifdef CONFIG_DEVFREQ_THERMAL
 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0)
        struct devfreq_cooling_device *devfreq_cooling;