From: Pavel Machek Date: Tue, 24 Mar 2015 22:20:21 +0000 (+0100) Subject: ti-soc-thermal: request temperature periodically if hw can't do that itself X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=95d079ef6710e0f60dd87d887a3cfee5bf25af5f;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git ti-soc-thermal: request temperature periodically if hw can't do that itself When periodic mode is not enabled, it is neccessary to force reads. Signed-off-by: Pavel Machek Signed-off-by: Eduardo Valentin --- diff --git a/drivers/thermal/ti-soc-thermal/ti-bandgap.c b/drivers/thermal/ti-soc-thermal/ti-bandgap.c index 12f3ee5337bb..63e2f5ce7e94 100644 --- a/drivers/thermal/ti-soc-thermal/ti-bandgap.c +++ b/drivers/thermal/ti-soc-thermal/ti-bandgap.c @@ -43,6 +43,8 @@ #include "ti-bandgap.h" +static int ti_bandgap_force_single_read(struct ti_bandgap *bgp, int id); + /*** Helper functions to access registers and their bitfields ***/ /** @@ -829,6 +831,12 @@ int ti_bandgap_read_temperature(struct ti_bandgap *bgp, int id, if (ret) return ret; + if (!TI_BANDGAP_HAS(bgp, MODE_CONFIG)) { + ret = ti_bandgap_force_single_read(bgp, id); + if (ret) + return ret; + } + spin_lock(&bgp->lock); temp = ti_bandgap_read_temp(bgp, id); spin_unlock(&bgp->lock);