cxl/test: Add mock test for set_timestamp
Support the command testing in a unit-test fashion. Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Davidlohr Bueso <dave@stgolabs.net> Link: https://lore.kernel.org/r/20230423221231.6357-1-dave@stgolabs.net Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
bfe58458fd
commit
fd35fdcbf7
|
@ -116,6 +116,7 @@ struct cxl_mockmem_data {
|
||||||
int master_limit;
|
int master_limit;
|
||||||
struct mock_event_store mes;
|
struct mock_event_store mes;
|
||||||
u8 event_buf[SZ_4K];
|
u8 event_buf[SZ_4K];
|
||||||
|
u64 timestamp;
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mock_event_log *event_find_log(struct device *dev, int log_type)
|
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 = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int mock_set_timestamp(struct cxl_dev_state *cxlds,
|
||||||
|
struct cxl_mbox_cmd *cmd)
|
||||||
|
{
|
||||||
|
struct cxl_mockmem_data *mdata = dev_get_drvdata(cxlds->dev);
|
||||||
|
struct cxl_mbox_set_timestamp_in *ts = cmd->payload_in;
|
||||||
|
|
||||||
|
if (cmd->size_in != sizeof(*ts))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (cmd->size_out != 0)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
mdata->timestamp = le64_to_cpu(ts->timestamp);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void cxl_mock_add_event_logs(struct mock_event_store *mes)
|
static void cxl_mock_add_event_logs(struct mock_event_store *mes)
|
||||||
{
|
{
|
||||||
put_unaligned_le16(CXL_GMER_VALID_CHANNEL | CXL_GMER_VALID_RANK,
|
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 *
|
||||||
int rc = -EIO;
|
int rc = -EIO;
|
||||||
|
|
||||||
switch (cmd->opcode) {
|
switch (cmd->opcode) {
|
||||||
|
case CXL_MBOX_OP_SET_TIMESTAMP:
|
||||||
|
rc = mock_set_timestamp(cxlds, cmd);
|
||||||
|
break;
|
||||||
case CXL_MBOX_OP_GET_SUPPORTED_LOGS:
|
case CXL_MBOX_OP_GET_SUPPORTED_LOGS:
|
||||||
rc = mock_gsl(cmd);
|
rc = mock_gsl(cmd);
|
||||||
break;
|
break;
|
||||||
|
@ -1232,6 +1252,10 @@ static int cxl_mock_mem_probe(struct platform_device *pdev)
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
|
rc = cxl_set_timestamp(cxlds);
|
||||||
|
if (rc)
|
||||||
|
return rc;
|
||||||
|
|
||||||
rc = cxl_dev_state_identify(cxlds);
|
rc = cxl_dev_state_identify(cxlds);
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
Loading…
Reference in New Issue