|
@@ -299,12 +299,17 @@ static void _rcar_thermal_irq_ctrl(struct rcar_thermal_priv *priv, int enable)
|
|
static void rcar_thermal_work(struct work_struct *work)
|
|
static void rcar_thermal_work(struct work_struct *work)
|
|
{
|
|
{
|
|
struct rcar_thermal_priv *priv;
|
|
struct rcar_thermal_priv *priv;
|
|
|
|
+ unsigned long cctemp, nctemp;
|
|
|
|
|
|
priv = container_of(work, struct rcar_thermal_priv, work.work);
|
|
priv = container_of(work, struct rcar_thermal_priv, work.work);
|
|
|
|
|
|
|
|
+ rcar_thermal_get_temp(priv->zone, &cctemp);
|
|
rcar_thermal_update_temp(priv);
|
|
rcar_thermal_update_temp(priv);
|
|
rcar_thermal_irq_enable(priv);
|
|
rcar_thermal_irq_enable(priv);
|
|
- thermal_zone_device_update(priv->zone);
|
|
|
|
|
|
+
|
|
|
|
+ rcar_thermal_get_temp(priv->zone, &nctemp);
|
|
|
|
+ if (nctemp != cctemp)
|
|
|
|
+ thermal_zone_device_update(priv->zone);
|
|
}
|
|
}
|
|
|
|
|
|
static u32 rcar_thermal_had_changed(struct rcar_thermal_priv *priv, u32 status)
|
|
static u32 rcar_thermal_had_changed(struct rcar_thermal_priv *priv, u32 status)
|