mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 23:58:05 +00:00
cxl/hdm: Initialize decoder type for memory expander devices
Unless and until accelerator (type-2) drivers start registering for CXL.mem mapping services from the CXL subsystem core, initialize idle HDM decoders to the "expander" type. I.e. the only CXL devices using the CXL core presently are those implementing the CXL 2.0 Type-3 memory expander device class code that the cxl_pci driver claims. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Link: https://lore.kernel.org/r/20220624041950.559155-6-dan.j.williams@intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
ee80001083
commit
9e9e44017d
1 changed files with 11 additions and 5 deletions
|
@ -186,6 +186,17 @@ static int init_hdm_decoder(struct cxl_port *port, struct cxl_decoder *cxld,
|
|||
cxld->flags |= CXL_DECODER_F_ENABLE;
|
||||
if (ctrl & CXL_HDM_DECODER0_CTRL_LOCK)
|
||||
cxld->flags |= CXL_DECODER_F_LOCK;
|
||||
if (FIELD_GET(CXL_HDM_DECODER0_CTRL_TYPE, ctrl))
|
||||
cxld->target_type = CXL_DECODER_EXPANDER;
|
||||
else
|
||||
cxld->target_type = CXL_DECODER_ACCELERATOR;
|
||||
} else {
|
||||
/* unless / until type-2 drivers arrive, assume type-3 */
|
||||
if (FIELD_GET(CXL_HDM_DECODER0_CTRL_TYPE, ctrl) == 0) {
|
||||
ctrl |= CXL_HDM_DECODER0_CTRL_TYPE;
|
||||
writel(ctrl, hdm + CXL_HDM_DECODER0_CTRL_OFFSET(which));
|
||||
}
|
||||
cxld->target_type = CXL_DECODER_EXPANDER;
|
||||
}
|
||||
rc = cxl_to_ways(FIELD_GET(CXL_HDM_DECODER0_CTRL_IW_MASK, ctrl),
|
||||
&cxld->interleave_ways);
|
||||
|
@ -200,11 +211,6 @@ static int init_hdm_decoder(struct cxl_port *port, struct cxl_decoder *cxld,
|
|||
if (rc)
|
||||
return rc;
|
||||
|
||||
if (FIELD_GET(CXL_HDM_DECODER0_CTRL_TYPE, ctrl))
|
||||
cxld->target_type = CXL_DECODER_EXPANDER;
|
||||
else
|
||||
cxld->target_type = CXL_DECODER_ACCELERATOR;
|
||||
|
||||
if (is_endpoint_decoder(&cxld->dev))
|
||||
return 0;
|
||||
|
||||
|
|
Loading…
Reference in a new issue