diff options
Diffstat (limited to 'drivers/fpga/fpga-region.c')
-rw-r--r-- | drivers/fpga/fpga-region.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/fpga/fpga-region.c b/drivers/fpga/fpga-region.c index 6d214d75c7be..0d65220d5ec5 100644 --- a/drivers/fpga/fpga-region.c +++ b/drivers/fpga/fpga-region.c | |||
@@ -158,6 +158,27 @@ err_put_region: | |||
158 | } | 158 | } |
159 | EXPORT_SYMBOL_GPL(fpga_region_program_fpga); | 159 | EXPORT_SYMBOL_GPL(fpga_region_program_fpga); |
160 | 160 | ||
161 | static ssize_t compat_id_show(struct device *dev, | ||
162 | struct device_attribute *attr, char *buf) | ||
163 | { | ||
164 | struct fpga_region *region = to_fpga_region(dev); | ||
165 | |||
166 | if (!region->compat_id) | ||
167 | return -ENOENT; | ||
168 | |||
169 | return sprintf(buf, "%016llx%016llx\n", | ||
170 | (unsigned long long)region->compat_id->id_h, | ||
171 | (unsigned long long)region->compat_id->id_l); | ||
172 | } | ||
173 | |||
174 | static DEVICE_ATTR_RO(compat_id); | ||
175 | |||
176 | static struct attribute *fpga_region_attrs[] = { | ||
177 | &dev_attr_compat_id.attr, | ||
178 | NULL, | ||
179 | }; | ||
180 | ATTRIBUTE_GROUPS(fpga_region); | ||
181 | |||
161 | /** | 182 | /** |
162 | * fpga_region_create - alloc and init a struct fpga_region | 183 | * fpga_region_create - alloc and init a struct fpga_region |
163 | * @dev: device parent | 184 | * @dev: device parent |
@@ -258,6 +279,7 @@ static int __init fpga_region_init(void) | |||
258 | if (IS_ERR(fpga_region_class)) | 279 | if (IS_ERR(fpga_region_class)) |
259 | return PTR_ERR(fpga_region_class); | 280 | return PTR_ERR(fpga_region_class); |
260 | 281 | ||
282 | fpga_region_class->dev_groups = fpga_region_groups; | ||
261 | fpga_region_class->dev_release = fpga_region_dev_release; | 283 | fpga_region_class->dev_release = fpga_region_dev_release; |
262 | 284 | ||
263 | return 0; | 285 | return 0; |