[PATCH linux dev-4.10] Revert "drivers/hwmon/occ: Add temperature fault attribute and VRM temp alarm"

Joel Stanley joel at jms.id.au
Wed Oct 4 15:38:23 AEDT 2017


On Wed, Oct 4, 2017 at 4:44 AM, Eddie James <eajames at linux.vnet.ibm.com> wrote:
> From: "Edward A. James" <eajames at us.ibm.com>
>
> This reverts commit e55423ee10a5057338d24383c00e813436a126ea.
>
> Apologies for pushing this up so early... Userspace applications aren't
> ready for this change. The hwmon polling application cannot accept EGAIN
> yet, and we can't be returning apparent errors if the sensor is
> temporarily unavailable.

Can you go into some more detail here please.

It looks like these changes are within the hwmon ABI, so userspace
that supports hwmon devices shouldn't break.

Cheers,

Joel

>
> Signed-off-by: Eddie James <eajames at us.ibm.com>
> ---
>  drivers/hwmon/occ/common.c | 38 +++-----------------------------------
>  1 file changed, 3 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/hwmon/occ/common.c b/drivers/hwmon/occ/common.c
> index 8ffb556..34002fb 100644
> --- a/drivers/hwmon/occ/common.c
> +++ b/drivers/hwmon/occ/common.c
> @@ -19,10 +19,6 @@
>  #define OCC_EXT_STAT_MEM_THROTTLE      0x20
>  #define OCC_EXT_STAT_QUICK_DROP                0x10
>
> -#define OCC_TEMP_SENSOR_FAULT          0xFF
> -
> -#define OCC_FRU_TYPE_VRM               3
> -
>  atomic_t occ_num_occs = ATOMIC_INIT(0);
>
>  struct temp_sensor_1 {
> @@ -381,23 +377,11 @@ static ssize_t occ_show_temp_2(struct device *dev,
>                 val = get_unaligned_be32(&temp->sensor_id);
>                 break;
>         case 1:
> -               val = temp->value;
> -               if (val == OCC_TEMP_SENSOR_FAULT)
> -                       return -EREMOTEIO;
> -
> -               if (temp->fru_type != OCC_FRU_TYPE_VRM) {
> -                       if (val == 0)
> -                               return -EAGAIN;
> -
> -                       val *= 1000;
> -               }
> +               val = temp->value * 1000;
>                 break;
>         case 2:
>                 val = temp->fru_type;
>                 break;
> -       case 3:
> -               val = temp->value == OCC_TEMP_SENSOR_FAULT;
> -               break;
>         }
>
>         return snprintf(buf, PAGE_SIZE - 1, "%u\n", val);
> @@ -796,7 +780,6 @@ static ssize_t occ_show_extended(struct device *dev,
>  int occ_setup_sensor_attrs(struct occ *occ)
>  {
>         unsigned int i, s;
> -       struct temp_sensor_2 *temp;
>         struct device *dev = occ->bus_dev;
>         struct occ_sensors *sensors = &occ->sensors;
>         struct occ_attribute *attr;
> @@ -816,7 +799,7 @@ int occ_setup_sensor_attrs(struct occ *occ)
>                 occ->num_attrs += (sensors->temp.num_sensors * 2);
>                 break;
>         case 2:
> -               occ->num_attrs += (sensors->temp.num_sensors * 4);
> +               occ->num_attrs += (sensors->temp.num_sensors * 3);
>                 show_temp = occ_show_temp_2;
>                 break;
>         default:
> @@ -888,22 +871,13 @@ int occ_setup_sensor_attrs(struct occ *occ)
>
>         for (i = 0; i < sensors->temp.num_sensors; ++i) {
>                 s = i + 1;
> -               temp = ((struct temp_sensor_2 *)sensors->temp.data) + i;
>
>                 snprintf(attr->name, sizeof(attr->name), "temp%d_label", s);
>                 attr->sensor = OCC_INIT_ATTR(attr->name, 0444, show_temp, NULL,
>                                              0, i);
>                 attr++;
>
> -               if (sensors->temp.version > 1 &&
> -                   temp->fru_type == OCC_FRU_TYPE_VRM) {
> -                       snprintf(attr->name, sizeof(attr->name), "temp%d_alarm",
> -                                s);
> -               } else {
> -                       snprintf(attr->name, sizeof(attr->name), "temp%d_input",
> -                                s);
> -               }
> -
> +               snprintf(attr->name, sizeof(attr->name), "temp%d_input", s);
>                 attr->sensor = OCC_INIT_ATTR(attr->name, 0444, show_temp, NULL,
>                                              1, i);
>                 attr++;
> @@ -914,12 +888,6 @@ int occ_setup_sensor_attrs(struct occ *occ)
>                         attr->sensor = OCC_INIT_ATTR(attr->name, 0444,
>                                                      show_temp, NULL, 2, i);
>                         attr++;
> -
> -                       snprintf(attr->name, sizeof(attr->name), "temp%d_fault",
> -                                s);
> -                       attr->sensor = OCC_INIT_ATTR(attr->name, 0444,
> -                                                    show_temp, NULL, 3, i);
> -                       attr++;
>                 }
>         }
>
> --
> 1.8.3.1
>


More information about the openbmc mailing list