I'm trying to compile a Linux device driver (kernel module), however the module was last updated in April 2013 and of course it doesn't compile anymore on a recent (3.13) kernel, here's the error :
als_sys.c:99:2: error: unknown field ‘dev_attrs’ specified in initializer
I've searched already but all that I found were patches, there is no clear "tutorial" about updating an old module, the only thing I understood was that I need to use dev_groups instead, but it doesn't accept the same value as dev_attrs and I don't know how to adapt the existing code for that.
The code (some of it, the entire code can be found here) :
# als_sys.c
static ssize_t
illuminance_show(struct device *dev, struct device_attribute *attr, char *buf)
{
    struct als_device *als = to_als_device(dev);
    int illuminance;
    int result;
    result = als->ops->get_illuminance(als, &illuminance);
    if (result)
        return result;
    if (!illuminance)
        return sprintf(buf, "0\n");
    else if (illuminance == -1)
        return sprintf(buf, "-1\n");
    else if (illuminance < -1)
        return -ERANGE;
    else
        return sprintf(buf, "%d\n", illuminance);
}
# truncated - also "adjustment_show" is similar to this function so
# I didn't copy/paste it to save some space in the question
static struct device_attribute als_attrs[] = { # that's what I need to modify, but
    __ATTR(illuminance, 0444, illuminance_show, NULL), # I have no clue what to
    __ATTR(display_adjustment, 0444, adjustment_show, NULL), # put here instead
    __ATTR_NULL,
};
# truncated
static struct class als_class = {
    .name = "als",
    .dev_release = als_release,
    .dev_attrs = als_attrs, # line 99, that's where it fails
};
EDIT
As mentioned in the answer below, I changed the code like this :
static struct device_attribute als_attrs[] = {
    __ATTR(illuminance, 0444, illuminance_show, NULL),
    __ATTR(display_adjustment, 0444, adjustment_show, NULL),
    __ATTR_NULL,
};
static const struct attribute_group als_attr_group = {
    .attrs = als_attrs,
};
static struct class als_class = {
    .name = "als",
    .dev_release = als_release,
    .dev_groups = als_attr_group, # line 103 - it fails here again
};
But I still get another error :
als_sys.c:103:2: error: initializer element is not constant
I've found this question which is about the same error however its answer is about a single attribute and I don't know how to adapt it for multiple ones.
Thanks for your help and have a nice day.
 
    