0
     !ˆÂÇƒÎµÁÀÅ R    !/* SPDX-License-Identifier: GPL-2.0-only */
/*
 *  linux/include/linux/cpu_cooling.h
 *
 *  Copyright (C) 2012	Samsung Electronics Co., Ltd(http://www.samsung.com)
 *  Copyright (C) 2012  Amit Daniel <amit.kachhap@linaro.org>
 *
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */

#ifndef __CPU_COOLING_H__
#define __CPU_COOLING_H__

#include <linux/of.h>
#include <linux/thermal.h>

struct cpufreq_policy;

#ifdef CONFIG_CPU_FREQ_THERMAL
/**
 * cpufreq_cooling_register - function to create cpufreq cooling device.
 * @policy: cpufreq policy.
 */
struct thermal_cooling_device *
cpufreq_cooling_register(struct cpufreq_policy *policy);

/**
 * cpufreq_cooling_unregister - function to remove cpufreq cooling device.
 * @cdev: thermal cooling device pointer.
 */
void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev);

/**
 * of_cpufreq_cooling_register - create cpufreq cooling device based on DT.
 * @policy: cpufreq policy.
 */
struct thermal_cooling_device *
of_cpufreq_cooling_register(struct cpufreq_policy *policy);

#else /* !CONFIG_CPU_FREQ_THERMAL */
static inline struct thermal_cooling_device *
cpufreq_cooling_register(struct cpufreq_policy *policy)
{
	return ERR_PTR(-ENOSYS);
}

static inline
void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev)
{
	return;
}

static inline struct thermal_cooling_device *
of_cpufreq_cooling_register(struct cpufreq_policy *policy)
{
	return NULL;
}
#endif /* CONFIG_CPU_FREQ_THERMAL */

struct cpuidle_driver;

#ifdef CONFIG_CPU_IDLE_THERMAL
void cpuidle_cooling_register(struct cpuidle_driver *drv);
#else /* CONFIG_CPU_IDLE_THERMAL */
static inline void cpuidle_cooling_register(struct cpuidle_driver *drv)
{
}
#endif /* CONFIG_CPU_IDLE_THERMAL */

#endif /* __CPU_COOLING_H__ */
  1   #ˆl–Ðz¾”ªe¶…8 ^¸\eõ1hßÈƒtLƒ_�uÐb&=LyZof¯ÂÇ >    #‹     Ü<ksÛ¶–ßù+°î¶’›±”äÞÔM2W±åX3‰í•”Üvª^‡!‰Šd	ÒŽºÝüö=ç  Á‡(9mgg×3ND8ï' Ùž°~š„k'ñæŽïoØ’<vî²Ù†Ý„îéé;'`OíîSÖ¦Ç±·Ž|ÎžØO{Ëžà/'Nà:±Ë¢˜;ë™ÏOiøåŸôcÙ.gãˆÈ<&R™ˆœ9gíûØ=gs'h%,œÙ77@˜·`	³EÄìgwôà“eÛëÃa½æK/`w<žûk–ðÏ‰e/vöOËðËÙtúïÝlÇEƒÀ­Y2‚=šˆÒà@IÄD¸ºVNìÌ³$váÃ²0Ä…²rùÂ@Ö"‰½`)lÆ¦‡íãcvïù>�Zzw&³4˜�d?9 Zæ:bu„o†4QNŠ<{{`Œ9Ìç‹„ ¹aŠkMÃ„z˜<*NŽ½å*)Ì”�=*Äo,�=z3ÎœÈK@#ÀîÒaž@-¸,	R…nN¬¤dÅc¾cÎîCÔÝàÞ9ž�sÞ�šÐ³ãŸ#| °[ÔÄábqD�‚0Y�øp4¡Q`Éî½dÅÎ^¼½$1›¶ÿyª@8;›ÞµŽíî]kºjw£ÖT÷©Ï�¦â^oÁ„8˜Ðô¿¦ÐÆÀ 5)€j Ôyò	ì­=ÚöåË§iç»vwý²˜�/#¸½´e~>F=yÀÈº' +™¯¶‚;i÷\BËÀõLp°Ìäà {ž@ìæSŸZ³xúß–Íý²~Ÿ¶ùzú») !2}üh"jµD�BE”�˜;gôª�Q ‚}|	Ý_z[Äáš-Që-ÁÞƒY†à©äj`k›ô†¢[’´ú¿uÎ¯È“?j´•!.Ð2Ù‹!:t\°èW'GdZè**>-.ÿÌx t ea ¹<ŽÑô¤y{‰/Úöä²sÄVÜ�·ø8ÆG‘ÎŸËP Cc¾Öø0Œ:Ò?	�ÒHÖNü	<‹ŒúÇ¯P7×ç Âë›‡i,À³7aŠd®pSð•(ç\d‰@…i¥	Î‚ÙþAP˜Zs' y.RŸ-ÀM�0;“Hÿ.ô «ãCàÌ™8pqÅ2‰µ.Z2d¤˜Ä,¾`'‡•2à©7]zƒ&_œ’¥/_¾<étr£…ù3™�„¯“5¢ÈN1fO“é4øvšÀCï€ˆÐó Ô¿¬—/{Epøä|‹t–Æ.X/C#ÕÿãoŒ,äÂšÏA]¤*Frñ”–ÿÑþ¦³¶3Ÿ³®ýŒ=þø¤÷øä9¿þ …úþì5$Ú^G&‘îÄ€g”ðïÕ©•ÏW!†·ø~ï Sx�œ8ŠOX¿HÝ%eÎ“ìb •†A?©¬h:ô7—šy|øÀìçëü´õÄxü™MÝüñx¼‘¡Ô[ÛnwÓãö~@¹‹ôÛ^ÚéÚÝ'ëNßß
øN
Ø¾+ ûNâRÌ
Y”8$ü}¹m™0?šÿ2ŽÌ‡/ìKöùñvîôÓ)Fá6±{Ÿ>Ü=9†<öÍe§5…œrð;¼9MLô�k>Â+¹¦eRY^Ó=yÜíêEÿªYsT�§Ó:ª™ü¥2Y‚†´¹î´¾Ô¬x¼ƒ�ß¦má›ë&™ÂÚ®ã‰Í1”vÜïhEJÕRö>mÂòˆ{„Ÿ. ¤xüø0Û0ßî©W-;'&É9û9ƒ7sé‘È'zV0?šÞÃD—·”l:�{òØ~œŸ‘i—c9�#9Zx÷u�Mœ‘K8ï[_Z
PïÙº5]ô¦íÕ|ÑH‘²ócv®iƒÅçzq·»&±ÃZ,hºë–)~3“d"�ðV<ê¡êJ$ž6@¶ÒÃÞã',”º!NË9˜hâQ÷¸æÉãg-+ÔH²•8­ÆàÀì§dŒœÞõ9ëëwýìÝ 3˜yÇ:‰¢Çße~~Gi½j¾‡ß›Æˆt¦_¦.Rm
%°ËÁˆ­§kp4`ëiQ²:
]~x©Q„~Š´BVÀ�a'dî~w²Ôxùª÷„é‡¯ºß³©e—SÆ³ÏÏ™ÙCÈœì3XYQìi™“�¨áÕ&F[³(wã	�¼½ÉGPO9bÔÌ@e¿5gˆÈä!‚CÔ>û“[?L¬ÃÙë)v0øps;ê_�³'¡>¼š\²â;è�ôþv|Ò=îýêÚ'ö3ûüñ`<~+³ô…NG,Iã€a„ùÏT$ÞzKÔpÚ÷ï��Èß¯6ôšôö¨Ö Åâ‚ Á<¨µB	6l%¾¡n„ÏWu«n8O×ÀlÝŒ: x¨Œ $_²ƒ«þ»Á�¥9ÊXº]p(ÛÍç˜sã1�n¡‰2Î&?YæÓmÀï‹ïË0p¨Ç€� ñ Ô5à¥�9žÏÖU±1Ï¹ka07a�,¡l¹õÃù'¨+�‰Ð]{‹Íío<½ßHÞLÉ-Ôþ<X&+˜.c'·P ßyPz—ø¥wÐ%˜zâÖ)/œµÉ>Š[7¼u|¿<Õåb{Ñk•‘ÝBuæ¬Eé…È_ä8$tM¸[â½ä<ù\&jÞVˆ“3*k……·5x+ëÆ“þdpûþjx5œûo‡ãÁyåíhÐ?ÿÉ€&G£ÑõˆM�q6#�Ž¡Ã€ÞBH/ÿtu}3ŽeD¸¤žª0úa½Äô;ö�Ìý„!¸=…Çü.²W¯à¾N6n½`™Î