@@ -116,6 +116,7 @@ struct cxl_mockmem_data {
116
116
int master_limit ;
117
117
struct mock_event_store mes ;
118
118
u8 event_buf [SZ_4K ];
119
+ u64 timestamp ;
119
120
};
120
121
121
122
static struct mock_event_log * event_find_log (struct device * dev , int log_type )
@@ -379,6 +380,22 @@ struct cxl_event_mem_module mem_module = {
379
380
}
380
381
};
381
382
383
+ static int mock_set_timestamp (struct cxl_dev_state * cxlds ,
384
+ struct cxl_mbox_cmd * cmd )
385
+ {
386
+ struct cxl_mockmem_data * mdata = dev_get_drvdata (cxlds -> dev );
387
+ struct cxl_mbox_set_timestamp_in * ts = cmd -> payload_in ;
388
+
389
+ if (cmd -> size_in != sizeof (* ts ))
390
+ return - EINVAL ;
391
+
392
+ if (cmd -> size_out != 0 )
393
+ return - EINVAL ;
394
+
395
+ mdata -> timestamp = le64_to_cpu (ts -> timestamp );
396
+ return 0 ;
397
+ }
398
+
382
399
static void cxl_mock_add_event_logs (struct mock_event_store * mes )
383
400
{
384
401
put_unaligned_le16 (CXL_GMER_VALID_CHANNEL | CXL_GMER_VALID_RANK ,
@@ -1103,6 +1120,9 @@ static int cxl_mock_mbox_send(struct cxl_dev_state *cxlds, struct cxl_mbox_cmd *
1103
1120
int rc = - EIO ;
1104
1121
1105
1122
switch (cmd -> opcode ) {
1123
+ case CXL_MBOX_OP_SET_TIMESTAMP :
1124
+ rc = mock_set_timestamp (cxlds , cmd );
1125
+ break ;
1106
1126
case CXL_MBOX_OP_GET_SUPPORTED_LOGS :
1107
1127
rc = mock_gsl (cmd );
1108
1128
break ;
@@ -1232,6 +1252,10 @@ static int cxl_mock_mem_probe(struct platform_device *pdev)
1232
1252
if (rc )
1233
1253
return rc ;
1234
1254
1255
+ rc = cxl_set_timestamp (cxlds );
1256
+ if (rc )
1257
+ return rc ;
1258
+
1235
1259
rc = cxl_dev_state_identify (cxlds );
1236
1260
if (rc )
1237
1261
return rc ;
0 commit comments