UUID_INIT(0xfe927475, 0xdd59, 0x4339,
                  0xa5, 0x86, 0x79, 0xba, 0xb1, 0x13, 0xb7, 0x74);
 
-static void cxl_event_trace_record(const struct device *dev,
+static void cxl_event_trace_record(const struct cxl_memdev *cxlmd,
                                   enum cxl_event_log_type type,
                                   struct cxl_event_record_raw *record)
 {
                struct cxl_event_gen_media *rec =
                                (struct cxl_event_gen_media *)record;
 
-               trace_cxl_general_media(dev, type, rec);
+               trace_cxl_general_media(cxlmd, type, rec);
        } else if (uuid_equal(id, &dram_event_uuid)) {
                struct cxl_event_dram *rec = (struct cxl_event_dram *)record;
 
-               trace_cxl_dram(dev, type, rec);
+               trace_cxl_dram(cxlmd, type, rec);
        } else if (uuid_equal(id, &mem_mod_event_uuid)) {
                struct cxl_event_mem_module *rec =
                                (struct cxl_event_mem_module *)record;
 
-               trace_cxl_memory_module(dev, type, rec);
+               trace_cxl_memory_module(cxlmd, type, rec);
        } else {
                /* For unknown record types print just the header */
-               trace_cxl_generic_event(dev, type, record);
+               trace_cxl_generic_event(cxlmd, type, record);
        }
 }
 
                        break;
 
                for (i = 0; i < nr_rec; i++)
-                       cxl_event_trace_record(cxlds->dev, type,
+                       cxl_event_trace_record(cxlds->cxlmd, type,
                                               &payload->records[i]);
 
                if (payload->flags & CXL_GET_EVENT_FLAG_OVERFLOW)
-                       trace_cxl_overflow(cxlds->dev, type, payload);
+                       trace_cxl_overflow(cxlds->cxlmd, type, payload);
 
                rc = cxl_clear_event_record(cxlds, type, payload);
                if (rc) {
 
 )
 
 TRACE_EVENT(cxl_aer_uncorrectable_error,
-       TP_PROTO(const struct device *dev, u32 status, u32 fe, u32 *hl),
-       TP_ARGS(dev, status, fe, hl),
+       TP_PROTO(const struct cxl_memdev *cxlmd, u32 status, u32 fe, u32 *hl),
+       TP_ARGS(cxlmd, status, fe, hl),
        TP_STRUCT__entry(
-               __string(dev_name, dev_name(dev))
+               __string(memdev, dev_name(&cxlmd->dev))
                __field(u32, status)
                __field(u32, first_error)
                __array(u32, header_log, CXL_HEADERLOG_SIZE_U32)
        ),
        TP_fast_assign(
-               __assign_str(dev_name, dev_name(dev));
+               __assign_str(memdev, dev_name(&cxlmd->dev));
                __entry->status = status;
                __entry->first_error = fe;
                /*
                 */
                memcpy(__entry->header_log, hl, CXL_HEADERLOG_SIZE);
        ),
-       TP_printk("%s: status: '%s' first_error: '%s'",
-                 __get_str(dev_name),
+       TP_printk("memdev=%s: status: '%s' first_error: '%s'",
+                 __get_str(memdev),
                  show_uc_errs(__entry->status),
                  show_uc_errs(__entry->first_error)
        )
 )
 
 TRACE_EVENT(cxl_aer_correctable_error,
-       TP_PROTO(const struct device *dev, u32 status),
-       TP_ARGS(dev, status),
+       TP_PROTO(const struct cxl_memdev *cxlmd, u32 status),
+       TP_ARGS(cxlmd, status),
        TP_STRUCT__entry(
-               __string(dev_name, dev_name(dev))
+               __string(memdev, dev_name(&cxlmd->dev))
                __field(u32, status)
        ),
        TP_fast_assign(
-               __assign_str(dev_name, dev_name(dev));
+               __assign_str(memdev, dev_name(&cxlmd->dev));
                __entry->status = status;
        ),
-       TP_printk("%s: status: '%s'",
-                 __get_str(dev_name), show_ce_errs(__entry->status)
+       TP_printk("memdev=%s: status: '%s'",
+                 __get_str(memdev), show_ce_errs(__entry->status)
        )
 );
 
 
 TRACE_EVENT(cxl_overflow,
 
-       TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+       TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
                 struct cxl_get_event_payload *payload),
 
-       TP_ARGS(dev, log, payload),
+       TP_ARGS(cxlmd, log, payload),
 
        TP_STRUCT__entry(
-               __string(dev_name, dev_name(dev))
+               __string(memdev, dev_name(&cxlmd->dev))
                __field(int, log)
                __field(u64, first_ts)
                __field(u64, last_ts)
        ),
 
        TP_fast_assign(
-               __assign_str(dev_name, dev_name(dev));
+               __assign_str(memdev, dev_name(&cxlmd->dev));
                __entry->log = log;
                __entry->count = le16_to_cpu(payload->overflow_err_count);
                __entry->first_ts = le64_to_cpu(payload->first_overflow_timestamp);
                __entry->last_ts = le64_to_cpu(payload->last_overflow_timestamp);
        ),
 
-       TP_printk("%s: log=%s : %u records from %llu to %llu",
-               __get_str(dev_name), cxl_event_log_type_str(__entry->log),
+       TP_printk("memdev=%s: log=%s : %u records from %llu to %llu",
+               __get_str(memdev), cxl_event_log_type_str(__entry->log),
                __entry->count, __entry->first_ts, __entry->last_ts)
 
 );
  * See the generic_event tracepoint as an example.
  */
 #define CXL_EVT_TP_entry                                       \
-       __string(dev_name, dev_name(dev))                       \
+       __string(memdev, dev_name(&cxlmd->dev))                 \
        __field(int, log)                                       \
        __field_struct(uuid_t, hdr_uuid)                        \
        __field(u32, hdr_flags)                                 \
        __field(u8, hdr_length)                                 \
        __field(u8, hdr_maint_op_class)
 
-#define CXL_EVT_TP_fast_assign(dev, l, hdr)                                    \
-       __assign_str(dev_name, dev_name(dev));                                  \
+#define CXL_EVT_TP_fast_assign(cxlmd, l, hdr)                                  \
+       __assign_str(memdev, dev_name(&(cxlmd)->dev));                          \
        __entry->log = (l);                                                     \
        memcpy(&__entry->hdr_uuid, &(hdr).id, sizeof(uuid_t));                  \
        __entry->hdr_length = (hdr).length;                                     \
        __entry->hdr_maint_op_class = (hdr).maint_op_class
 
 #define CXL_EVT_TP_printk(fmt, ...) \
-       TP_printk("%s log=%s : time=%llu uuid=%pUb len=%d flags='%s' "          \
+       TP_printk("memdev=%s log=%s : time=%llu uuid=%pUb len=%d flags='%s' "   \
                "handle=%x related_handle=%x maint_op_class=%u"                 \
                " : " fmt,                                                      \
-               __get_str(dev_name), cxl_event_log_type_str(__entry->log),      \
+               __get_str(memdev), cxl_event_log_type_str(__entry->log),        \
                __entry->hdr_timestamp, &__entry->hdr_uuid, __entry->hdr_length,\
                show_hdr_flags(__entry->hdr_flags), __entry->hdr_handle,        \
                __entry->hdr_related_handle, __entry->hdr_maint_op_class,       \
 
 TRACE_EVENT(cxl_generic_event,
 
-       TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+       TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
                 struct cxl_event_record_raw *rec),
 
-       TP_ARGS(dev, log, rec),
+       TP_ARGS(cxlmd, log, rec),
 
        TP_STRUCT__entry(
                CXL_EVT_TP_entry
        ),
 
        TP_fast_assign(
-               CXL_EVT_TP_fast_assign(dev, log, rec->hdr);
+               CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr);
                memcpy(__entry->data, &rec->data, CXL_EVENT_RECORD_DATA_LENGTH);
        ),
 
 
 TRACE_EVENT(cxl_general_media,
 
-       TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+       TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
                 struct cxl_event_gen_media *rec),
 
-       TP_ARGS(dev, log, rec),
+       TP_ARGS(cxlmd, log, rec),
 
        TP_STRUCT__entry(
                CXL_EVT_TP_entry
        ),
 
        TP_fast_assign(
-               CXL_EVT_TP_fast_assign(dev, log, rec->hdr);
+               CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr);
 
                /* General Media */
                __entry->dpa = le64_to_cpu(rec->phys_addr);
 
 TRACE_EVENT(cxl_dram,
 
-       TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+       TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
                 struct cxl_event_dram *rec),
 
-       TP_ARGS(dev, log, rec),
+       TP_ARGS(cxlmd, log, rec),
 
        TP_STRUCT__entry(
                CXL_EVT_TP_entry
        ),
 
        TP_fast_assign(
-               CXL_EVT_TP_fast_assign(dev, log, rec->hdr);
+               CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr);
 
                /* DRAM */
                __entry->dpa = le64_to_cpu(rec->phys_addr);
 
 TRACE_EVENT(cxl_memory_module,
 
-       TP_PROTO(const struct device *dev, enum cxl_event_log_type log,
+       TP_PROTO(const struct cxl_memdev *cxlmd, enum cxl_event_log_type log,
                 struct cxl_event_mem_module *rec),
 
-       TP_ARGS(dev, log, rec),
+       TP_ARGS(cxlmd, log, rec),
 
        TP_STRUCT__entry(
                CXL_EVT_TP_entry
        ),
 
        TP_fast_assign(
-               CXL_EVT_TP_fast_assign(dev, log, rec->hdr);
+               CXL_EVT_TP_fast_assign(cxlmd, log, rec->hdr);
 
                /* Memory Module Event */
                __entry->event_type = rec->event_type;