Thank you for the quick response! On Sat, Sep 22, 2018 at 10:11:26PM -0700, Guenter Roeck wrote: > >+static umode_t ina3221_attr_is_visible(struct kobject *kobj, > >+ struct attribute *attr, int n) > >+{ > >+ const int max_attrs = ARRAY_SIZE(ina3221_attrs) - 1; > >+ const int num_attrs = max_attrs / INA3221_NUM_CHANNELS; > >+ struct device *dev = kobj_to_dev(kobj); > >+ struct ina3221_data *ina = dev_get_drvdata(dev); > >+ enum ina3221_channels channel = n / num_attrs; > > int index = n % num_attrs; > > >+ struct ina3221_input *input = &ina->inputs[channel]; > >+ int i; > >+ > >+ /* Hide if channel input source is disconnected */ > >+ if (input->disconnected) > >+ return 0; > >+ > >+ /* Hide label node if label is not provided */ > > if (index == 1 && !input->label) > return 0; > > and drop i, ina3221_label_attrs[], and the loop below. Will do that in v5. Thanks Nicolin