[Feature]add MT2731_MP2_MR2_SVN388 baseline version

Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/src/kernel/linux/v4.14/drivers/thermal/backward_compatible.c b/src/kernel/linux/v4.14/drivers/thermal/backward_compatible.c
new file mode 100644
index 0000000..7a7f086
--- /dev/null
+++ b/src/kernel/linux/v4.14/drivers/thermal/backward_compatible.c
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2015 MediaTek Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/module.h>
+#include <linux/thermal.h>
+
+#include "thermal_core.h"
+
+/**
+ * backward_compatible_throttle
+ * @tz - thermal_zone_device
+ *
+ * This function update the cooler state by monitoring the current
+ * temperature and trip points
+ */
+static int backward_compatible_throttle(struct thermal_zone_device *tz,
+	 int trip)
+{
+	int trip_temp;
+	struct thermal_instance *instance;
+
+	if (trip == THERMAL_TRIPS_NONE)
+		trip_temp = tz->forced_passive;
+	else
+		tz->ops->get_trip_temp(tz, trip, &trip_temp);
+
+	list_for_each_entry(instance, &tz->thermal_instances, tz_node) {
+		if (instance->trip != trip)
+			continue;
+
+		if (tz->temperature >= trip_temp)
+			instance->target = 1;
+		else
+			instance->target = 0;
+		instance->cdev->updated = false;
+		thermal_cdev_update(instance->cdev);
+	}
+
+	return 0;
+}
+
+static struct thermal_governor thermal_gov_backward_compatible = {
+	.name = "backward_compatible",
+	.throttle = backward_compatible_throttle,
+};
+
+static int __init thermal_gov_backward_compatible_init(void)
+{
+	return thermal_register_governor(&thermal_gov_backward_compatible);
+}
+
+static void __exit thermal_gov_backward_compatible_exit(void)
+{
+	thermal_unregister_governor(&thermal_gov_backward_compatible);
+}
+
+/* This should load after thermal framework */
+fs_initcall(thermal_gov_backward_compatible_init);
+module_exit(thermal_gov_backward_compatible_exit);
+
+MODULE_AUTHOR("Weiyi Lu");
+MODULE_DESCRIPTION("A backward compatible Thermal governor");
+MODULE_LICENSE("GPL");