mlxsw_hwmon 79 drivers/net/ethernet/mellanox/mlxsw/core.c struct mlxsw_hwmon *hwmon; mlxsw_hwmon 394 drivers/net/ethernet/mellanox/mlxsw/core.h struct mlxsw_hwmon; mlxsw_hwmon 400 drivers/net/ethernet/mellanox/mlxsw/core.h struct mlxsw_hwmon **p_hwmon); mlxsw_hwmon 401 drivers/net/ethernet/mellanox/mlxsw/core.h void mlxsw_hwmon_fini(struct mlxsw_hwmon *mlxsw_hwmon); mlxsw_hwmon 407 drivers/net/ethernet/mellanox/mlxsw/core.h struct mlxsw_hwmon **p_hwmon) mlxsw_hwmon 412 drivers/net/ethernet/mellanox/mlxsw/core.h static inline void mlxsw_hwmon_fini(struct mlxsw_hwmon *mlxsw_hwmon) mlxsw_hwmon 21 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *hwmon; mlxsw_hwmon 53 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 59 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->module_sensor_count); mlxsw_hwmon 61 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mtmp), mtmp_pl); mlxsw_hwmon 63 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to query temp sensor\n"); mlxsw_hwmon 76 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 82 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->module_sensor_count); mlxsw_hwmon 84 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mtmp), mtmp_pl); mlxsw_hwmon 86 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to query temp sensor\n"); mlxsw_hwmon 99 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 112 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->module_sensor_count); mlxsw_hwmon 114 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_write(mlxsw_hwmon->core, MLXSW_REG(mtmp), mtmp_pl); mlxsw_hwmon 116 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to reset temp sensor history\n"); mlxsw_hwmon 128 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 133 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mfsm), mfsm_pl); mlxsw_hwmon 135 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to query fan\n"); mlxsw_hwmon 147 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 152 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(fore), fore_pl); mlxsw_hwmon 154 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to query fan\n"); mlxsw_hwmon 168 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 173 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mfsc), mfsc_pl); mlxsw_hwmon 175 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to query PWM\n"); mlxsw_hwmon 188 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 200 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_write(mlxsw_hwmon->core, MLXSW_REG(mfsc), mfsc_pl); mlxsw_hwmon 202 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to write PWM\n"); mlxsw_hwmon 214 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 220 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c module = mlwsw_hwmon_attr->type_index - mlxsw_hwmon->sensor_count; mlxsw_hwmon 223 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mtmp), mtmp_pl); mlxsw_hwmon 237 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 243 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c module = mlwsw_hwmon_attr->type_index - mlxsw_hwmon->sensor_count; mlxsw_hwmon 246 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mtbr), mtbr_pl); mlxsw_hwmon 279 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 284 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c module = mlwsw_hwmon_attr->type_index - mlxsw_hwmon->sensor_count; mlxsw_hwmon 285 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_env_module_temp_thresholds_get(mlxsw_hwmon->core, module, mlxsw_hwmon 302 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 307 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c module = mlwsw_hwmon_attr->type_index - mlxsw_hwmon->sensor_count; mlxsw_hwmon 308 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_env_module_temp_thresholds_get(mlxsw_hwmon->core, module, mlxsw_hwmon 337 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon; mlxsw_hwmon 339 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->module_sensor_count + 1; mlxsw_hwmon 359 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c static void mlxsw_hwmon_attr_add(struct mlxsw_hwmon *mlxsw_hwmon, mlxsw_hwmon 365 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c attr_index = mlxsw_hwmon->attrs_count; mlxsw_hwmon 366 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr = &mlxsw_hwmon->hwmon_attrs[attr_index]; mlxsw_hwmon 452 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr->hwmon = mlxsw_hwmon; mlxsw_hwmon 456 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->attrs[attr_index] = &mlxsw_hwmon_attr->dev_attr.attr; mlxsw_hwmon 457 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->attrs_count++; mlxsw_hwmon 460 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c static int mlxsw_hwmon_temp_init(struct mlxsw_hwmon *mlxsw_hwmon) mlxsw_hwmon 467 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mtcap), mtcap_pl); mlxsw_hwmon 469 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to get number of temp sensors\n"); mlxsw_hwmon 472 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->sensor_count = mlxsw_reg_mtcap_sensor_count_get(mtcap_pl); mlxsw_hwmon 473 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c for (i = 0; i < mlxsw_hwmon->sensor_count; i++) { mlxsw_hwmon 475 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_write(mlxsw_hwmon->core, mlxsw_hwmon 478 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to setup temp sensor number %d\n", mlxsw_hwmon 482 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 484 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 486 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 492 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c static int mlxsw_hwmon_fans_init(struct mlxsw_hwmon *mlxsw_hwmon) mlxsw_hwmon 502 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mfcr), mfcr_pl); mlxsw_hwmon 504 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to get to probe PWMs and Tachometers\n"); mlxsw_hwmon 511 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 514 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 522 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 529 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c static int mlxsw_hwmon_module_init(struct mlxsw_hwmon *mlxsw_hwmon) mlxsw_hwmon 531 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c unsigned int module_count = mlxsw_core_max_ports(mlxsw_hwmon->core); mlxsw_hwmon 537 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c if (!mlxsw_core_res_query_enabled(mlxsw_hwmon->core)) mlxsw_hwmon 545 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c index = mlxsw_hwmon->sensor_count; mlxsw_hwmon 548 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(pmlp), mlxsw_hwmon 551 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to read module index %d\n", mlxsw_hwmon 558 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 561 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 564 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 567 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 570 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 575 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->module_sensor_count = index; mlxsw_hwmon 580 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c static int mlxsw_hwmon_gearbox_init(struct mlxsw_hwmon *mlxsw_hwmon) mlxsw_hwmon 589 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_query(mlxsw_hwmon->core, MLXSW_REG(mgpir), mgpir_pl); mlxsw_hwmon 597 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c index = mlxsw_hwmon->module_sensor_count; mlxsw_hwmon 598 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c max_index = mlxsw_hwmon->module_sensor_count + gbox_num; mlxsw_hwmon 600 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c sensor_index = index % mlxsw_hwmon->module_sensor_count + mlxsw_hwmon 603 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_reg_write(mlxsw_hwmon->core, mlxsw_hwmon 606 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c dev_err(mlxsw_hwmon->bus_info->dev, "Failed to setup temp sensor number %d\n", mlxsw_hwmon 610 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, MLXSW_HWMON_ATTR_TYPE_TEMP, mlxsw_hwmon 612 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 615 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 618 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon_attr_add(mlxsw_hwmon, mlxsw_hwmon 629 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon **p_hwmon) mlxsw_hwmon 631 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c struct mlxsw_hwmon *mlxsw_hwmon; mlxsw_hwmon 635 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon = kzalloc(sizeof(*mlxsw_hwmon), GFP_KERNEL); mlxsw_hwmon 636 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c if (!mlxsw_hwmon) mlxsw_hwmon 638 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->core = mlxsw_core; mlxsw_hwmon 639 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->bus_info = mlxsw_bus_info; mlxsw_hwmon 641 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_hwmon_temp_init(mlxsw_hwmon); mlxsw_hwmon 645 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_hwmon_fans_init(mlxsw_hwmon); mlxsw_hwmon 649 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_hwmon_module_init(mlxsw_hwmon); mlxsw_hwmon 653 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c err = mlxsw_hwmon_gearbox_init(mlxsw_hwmon); mlxsw_hwmon 657 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->groups[0] = &mlxsw_hwmon->group; mlxsw_hwmon 658 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->group.attrs = mlxsw_hwmon->attrs; mlxsw_hwmon 661 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c "mlxsw", mlxsw_hwmon, mlxsw_hwmon 662 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->groups); mlxsw_hwmon 668 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c mlxsw_hwmon->hwmon_dev = hwmon_dev; mlxsw_hwmon 669 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c *p_hwmon = mlxsw_hwmon; mlxsw_hwmon 677 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c kfree(mlxsw_hwmon); mlxsw_hwmon 681 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c void mlxsw_hwmon_fini(struct mlxsw_hwmon *mlxsw_hwmon) mlxsw_hwmon 683 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c hwmon_device_unregister(mlxsw_hwmon->hwmon_dev); mlxsw_hwmon 684 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c kfree(mlxsw_hwmon);