• A
    nvme: hwmon: provide temperature min and max values for each sensor · 52deba0f
    Akinobu Mita 提交于
    According to the NVMe specification, the over temperature threshold and
    under temperature threshold features shall be implemented for Composite
    Temperature if a non-zero WCTEMP field value is reported in the Identify
    Controller data structure.  The features are also implemented for all
    implemented temperature sensors (i.e., all Temperature Sensor fields that
    report a non-zero value).
    
    This provides the over temperature threshold and under temperature
    threshold for each sensor as temperature min and max values of hwmon
    sysfs attributes.
    
    The WCTEMP is already provided as a temperature max value for Composite
    Temperature, but this change isn't incompatible.  Because the default
    value of the over temperature threshold for Composite Temperature is
    the WCTEMP.
    
    Now the alarm attribute for Composite Temperature indicates one of the
    temperature is outside of a temperature threshold.  Because there is only
    a single bit in Critical Warning field that indicates a temperature is
    outside of a threshold.
    
    Example output from the "sensors" command:
    
    nvme-pci-0100
    Adapter: PCI adapter
    Composite:    +33.9°C  (low  = -273.1°C, high = +69.8°C)
                           (crit = +79.8°C)
    Sensor 1:     +34.9°C  (low  = -273.1°C, high = +65261.8°C)
    Sensor 2:     +31.9°C  (low  = -273.1°C, high = +65261.8°C)
    Sensor 5:     +47.9°C  (low  = -273.1°C, high = +65261.8°C)
    
    This also adds helper macros for kelvin from/to milli Celsius conversion,
    and replaces the repeated code in hwmon.c.
    
    Cc: Keith Busch <kbusch@kernel.org>
    Cc: Jens Axboe <axboe@fb.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Sagi Grimberg <sagi@grimberg.me>
    Cc: Jean Delvare <jdelvare@suse.com>
    Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
    Tested-by: NGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
    Signed-off-by: NKeith Busch <kbusch@kernel.org>
    52deba0f
hwmon.c 5.8 KB