@@ -315,12 +315,17 @@ devm_cxl_add_passthrough_decoder(struct device *host)
extern struct bus_type cxl_bus_type;
+enum cxl_driver_id {
+ CXL_DEVICE_NVDIMM_BRIDGE,
+ CXL_DEVICE_NVDIMM,
+};
+
struct cxl_driver {
const char *name;
int (*probe)(struct device *dev);
void (*remove)(struct device *dev);
struct device_driver drv;
- int id;
+ enum cxl_driver_id id;
};
static inline struct cxl_driver *to_cxl_drv(struct device_driver *drv)
@@ -333,9 +338,6 @@ int __cxl_driver_register(struct cxl_driver *cxl_drv, struct module *owner,
#define cxl_driver_register(x) __cxl_driver_register(x, THIS_MODULE, KBUILD_MODNAME)
void cxl_driver_unregister(struct cxl_driver *cxl_drv);
-#define CXL_DEVICE_NVDIMM_BRIDGE 1
-#define CXL_DEVICE_NVDIMM 2
-
#define MODULE_ALIAS_CXL(type) MODULE_ALIAS("cxl:t" __stringify(type) "*")
#define CXL_MODALIAS_FMT "cxl:t%d"
CXL drivers can be of only one type. As such, an enum is the most logical way to represent that singleton nature. By converting to an enum, it's easy and obvious how to add new driver types. Signed-off-by: Ben Widawsky <ben.widawsky@intel.com> --- drivers/cxl/cxl.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)