diff options
| author | Shiju Jose <shiju.jose@huawei.com> | 2025-02-12 17:36:39 +0300 |
|---|---|---|
| committer | Borislav Petkov (AMD) <bp@alien8.de> | 2025-02-25 17:33:27 +0300 |
| commit | db99ea5f2c0361c8fc2878792e97c7b67c811bd0 (patch) | |
| tree | 2596704155ce407c6aa019be83d9c74304978f50 /include/linux | |
| parent | 0ad2507d5d93f39619fc42372c347d6006b64319 (diff) | |
| download | linux-db99ea5f2c0361c8fc2878792e97c7b67c811bd0.tar.xz | |
EDAC: Add support for EDAC device features control
Add generic EDAC device feature controls supporting the registration of RAS
features available in the system. The driver exposes control attributes for
these features to userspace in
/sys/bus/edac/devices/<dev-name>/<ras-feature>
[ bp: Touch-up documentation, simplify, make edac_dev_type static,
fixup edac_dev_register() retvals. ]
Co-developed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Fan Ni <fan.ni@samsung.com>
Tested-by: Daniel Ferguson <danielf@os.amperecomputing.com>
Tested-by: Fan Ni <fan.ni@samsung.com>
Link: https://lore.kernel.org/r/20250212143654.1893-2-shiju.jose@huawei.com
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/edac.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/linux/edac.h b/include/linux/edac.h index b4ee8961e623..8c4b6ca2a994 100644 --- a/include/linux/edac.h +++ b/include/linux/edac.h @@ -661,4 +661,30 @@ static inline struct dimm_info *edac_get_dimm(struct mem_ctl_info *mci, return mci->dimms[index]; } + +/* RAS feature type */ +enum edac_dev_feat { + RAS_FEAT_MAX +}; + +/* EDAC device feature information structure */ +struct edac_dev_data { + u8 instance; + void *private; +}; + +struct edac_dev_feat_ctx { + struct device dev; + void *private; +}; + +struct edac_dev_feature { + enum edac_dev_feat ft_type; + u8 instance; + void *ctx; +}; + +int edac_dev_register(struct device *parent, char *dev_name, + void *parent_pvt_data, int num_features, + const struct edac_dev_feature *ras_features); #endif /* _LINUX_EDAC_H_ */ |
