Commit 8b3b1c0d authored by Dan Williams's avatar Dan Williams

tools/testing/cxl: Make mock CEDT parsing more robust

Accept any cxl_test topology device as the first argument in
cxl_chbs_context.

This is in preparation for reworking the detection of the component
registers across VH and RCH topologies. Move
mock_acpi_table_parse_cedt() beneath the definition of is_mock_port()
and use is_mock_port() instead of the explicit mock cxl_acpi device
check.
Acked-by: default avatarAlison Schofield <alison.schofield@intel.com>
Reviewed-by: default avatarRobert Richter <rrichter@amd.com>
Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/166993043433.1882361.17651413716599606118.stgit@dwillia2-xfh.jf.intel.comReviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 4029c32f
...@@ -70,6 +70,10 @@ static int cxl_acpi_cfmws_verify(struct device *dev, ...@@ -70,6 +70,10 @@ static int cxl_acpi_cfmws_verify(struct device *dev,
return 0; return 0;
} }
/*
* Note, @dev must be the first member, see 'struct cxl_chbs_context'
* and mock_acpi_table_parse_cedt()
*/
struct cxl_cfmws_context { struct cxl_cfmws_context {
struct device *dev; struct device *dev;
struct cxl_port *root_port; struct cxl_port *root_port;
......
...@@ -320,10 +320,12 @@ static int populate_cedt(void) ...@@ -320,10 +320,12 @@ static int populate_cedt(void)
return 0; return 0;
} }
static bool is_mock_port(struct device *dev);
/* /*
* WARNING, this hack assumes the format of 'struct * WARNING, this hack assumes the format of 'struct cxl_cfmws_context'
* cxl_cfmws_context' and 'struct cxl_chbs_context' share the property that * and 'struct cxl_chbs_context' share the property that the first
* the first struct member is the device being probed by the cxl_acpi * struct member is a cxl_test device being probed by the cxl_acpi
* driver. * driver.
*/ */
struct cxl_cedt_context { struct cxl_cedt_context {
...@@ -340,7 +342,7 @@ static int mock_acpi_table_parse_cedt(enum acpi_cedt_type id, ...@@ -340,7 +342,7 @@ static int mock_acpi_table_parse_cedt(enum acpi_cedt_type id,
unsigned long end; unsigned long end;
int i; int i;
if (dev != &cxl_acpi->dev) if (!is_mock_port(dev) && !is_mock_dev(dev))
return acpi_table_parse_cedt(id, handler_arg, arg); return acpi_table_parse_cedt(id, handler_arg, arg);
if (id == ACPI_CEDT_TYPE_CHBS) if (id == ACPI_CEDT_TYPE_CHBS)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment