mlxsw: core_thermal: Simplify transceiver module get_temp() callback
The get_temp() callback of a thermal zone associated with a transceiver module no longer needs to read the temperature thresholds of the module. Therefore, simplify the callback by only reading the temperature. Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Vadim Pasternak <vadimp@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c1536d856e
commit
cc19439f70
@ -283,50 +283,22 @@ static int mlxsw_thermal_module_unbind(struct thermal_zone_device *tzdev,
|
||||
return err;
|
||||
}
|
||||
|
||||
static void
|
||||
mlxsw_thermal_module_temp_and_thresholds_get(struct mlxsw_core *core,
|
||||
u8 slot_index, u16 sensor_index,
|
||||
int *p_temp, int *p_crit_temp,
|
||||
int *p_emerg_temp)
|
||||
{
|
||||
char mtmp_pl[MLXSW_REG_MTMP_LEN];
|
||||
int err;
|
||||
|
||||
/* Read module temperature and thresholds. */
|
||||
mlxsw_reg_mtmp_pack(mtmp_pl, slot_index, sensor_index,
|
||||
false, false);
|
||||
err = mlxsw_reg_query(core, MLXSW_REG(mtmp), mtmp_pl);
|
||||
if (err) {
|
||||
/* Set temperature and thresholds to zero to avoid passing
|
||||
* uninitialized data back to the caller.
|
||||
*/
|
||||
*p_temp = 0;
|
||||
*p_crit_temp = 0;
|
||||
*p_emerg_temp = 0;
|
||||
|
||||
return;
|
||||
}
|
||||
mlxsw_reg_mtmp_unpack(mtmp_pl, p_temp, NULL, p_crit_temp, p_emerg_temp,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static int mlxsw_thermal_module_temp_get(struct thermal_zone_device *tzdev,
|
||||
int *p_temp)
|
||||
{
|
||||
struct mlxsw_thermal_module *tz = tzdev->devdata;
|
||||
struct mlxsw_thermal *thermal = tz->parent;
|
||||
int temp, crit_temp, emerg_temp;
|
||||
char mtmp_pl[MLXSW_REG_MTMP_LEN];
|
||||
u16 sensor_index;
|
||||
int err;
|
||||
|
||||
sensor_index = MLXSW_REG_MTMP_MODULE_INDEX_MIN + tz->module;
|
||||
|
||||
/* Read module temperature and thresholds. */
|
||||
mlxsw_thermal_module_temp_and_thresholds_get(thermal->core,
|
||||
tz->slot_index,
|
||||
sensor_index, &temp,
|
||||
&crit_temp, &emerg_temp);
|
||||
*p_temp = temp;
|
||||
|
||||
mlxsw_reg_mtmp_pack(mtmp_pl, tz->slot_index, sensor_index,
|
||||
false, false);
|
||||
err = mlxsw_reg_query(thermal->core, MLXSW_REG(mtmp), mtmp_pl);
|
||||
if (err)
|
||||
return err;
|
||||
mlxsw_reg_mtmp_unpack(mtmp_pl, p_temp, NULL, NULL, NULL, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user