mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 07:04:10 +08:00
cxl: update names for interleave ways conversion macros
Change names for interleave ways macros to clearly indicate which variable is encoded and which is the actual ways value. ways == interleave ways eiw == encoded interleave ways Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Dave Jiang <dave.jiang@intel.com> Link: https://lore.kernel.org/r/167027516228.3124679.11265039496968588580.stgit@djiang5-desk3.ch.intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
83351ddb78
commit
c99b2e8cf7
@ -34,7 +34,7 @@ static int cxl_xor_calc_n(u64 hpa, struct cxl_cxims_data *cximsd, int iw,
|
|||||||
}
|
}
|
||||||
/* IW: 3,6,12 add a modulo calculation to 'n' */
|
/* IW: 3,6,12 add a modulo calculation to 'n' */
|
||||||
if (!is_power_of_2(iw)) {
|
if (!is_power_of_2(iw)) {
|
||||||
if (ways_to_cxl(iw, &eiw))
|
if (ways_to_eiw(iw, &eiw))
|
||||||
return -1;
|
return -1;
|
||||||
hpa &= GENMASK_ULL(51, eiw + ig);
|
hpa &= GENMASK_ULL(51, eiw + ig);
|
||||||
n |= do_div(hpa, 3) << i;
|
n |= do_div(hpa, 3) << i;
|
||||||
@ -161,7 +161,7 @@ static int cxl_acpi_cfmws_verify(struct device *dev,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = cxl_to_ways(cfmws->interleave_ways, &ways);
|
rc = eiw_to_ways(cfmws->interleave_ways, &ways);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
dev_err(dev, "CFMWS Interleave Ways (%d) invalid\n",
|
dev_err(dev, "CFMWS Interleave Ways (%d) invalid\n",
|
||||||
cfmws->interleave_ways);
|
cfmws->interleave_ways);
|
||||||
@ -221,7 +221,7 @@ static int cxl_parse_cfmws(union acpi_subtable_headers *header, void *arg,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = cxl_to_ways(cfmws->interleave_ways, &ways);
|
rc = eiw_to_ways(cfmws->interleave_ways, &ways);
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
rc = eig_to_granularity(cfmws->granularity, &ig);
|
rc = eig_to_granularity(cfmws->granularity, &ig);
|
||||||
|
@ -494,7 +494,7 @@ static void cxld_set_interleave(struct cxl_decoder *cxld, u32 *ctrl)
|
|||||||
* Input validation ensures these warns never fire, but otherwise
|
* Input validation ensures these warns never fire, but otherwise
|
||||||
* suppress unititalized variable usage warnings.
|
* suppress unititalized variable usage warnings.
|
||||||
*/
|
*/
|
||||||
if (WARN_ONCE(ways_to_cxl(cxld->interleave_ways, &eiw),
|
if (WARN_ONCE(ways_to_eiw(cxld->interleave_ways, &eiw),
|
||||||
"invalid interleave_ways: %d\n", cxld->interleave_ways))
|
"invalid interleave_ways: %d\n", cxld->interleave_ways))
|
||||||
return;
|
return;
|
||||||
if (WARN_ONCE(granularity_to_eig(cxld->interleave_granularity, &eig),
|
if (WARN_ONCE(granularity_to_eig(cxld->interleave_granularity, &eig),
|
||||||
@ -741,8 +741,8 @@ static int init_hdm_decoder(struct cxl_port *port, struct cxl_decoder *cxld,
|
|||||||
}
|
}
|
||||||
cxld->target_type = CXL_DECODER_EXPANDER;
|
cxld->target_type = CXL_DECODER_EXPANDER;
|
||||||
}
|
}
|
||||||
rc = cxl_to_ways(FIELD_GET(CXL_HDM_DECODER0_CTRL_IW_MASK, ctrl),
|
rc = eiw_to_ways(FIELD_GET(CXL_HDM_DECODER0_CTRL_IW_MASK, ctrl),
|
||||||
&cxld->interleave_ways);
|
&cxld->interleave_ways);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
dev_warn(&port->dev,
|
dev_warn(&port->dev,
|
||||||
"decoder%d.%d: Invalid interleave ways (ctrl: %#x)\n",
|
"decoder%d.%d: Invalid interleave ways (ctrl: %#x)\n",
|
||||||
|
@ -324,7 +324,7 @@ static ssize_t interleave_ways_store(struct device *dev,
|
|||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
rc = ways_to_cxl(val, &iw);
|
rc = ways_to_eiw(val, &iw);
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
@ -1036,7 +1036,7 @@ static int cxl_port_setup_targets(struct cxl_port *port,
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ways_to_cxl(parent_iw, &peiw);
|
rc = ways_to_eiw(parent_iw, &peiw);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
dev_dbg(&cxlr->dev, "%s:%s: invalid parent interleave: %d\n",
|
dev_dbg(&cxlr->dev, "%s:%s: invalid parent interleave: %d\n",
|
||||||
dev_name(parent_port->uport),
|
dev_name(parent_port->uport),
|
||||||
@ -1045,7 +1045,7 @@ static int cxl_port_setup_targets(struct cxl_port *port,
|
|||||||
}
|
}
|
||||||
|
|
||||||
iw = cxl_rr->nr_targets;
|
iw = cxl_rr->nr_targets;
|
||||||
rc = ways_to_cxl(iw, &eiw);
|
rc = ways_to_eiw(iw, &eiw);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
dev_dbg(&cxlr->dev, "%s:%s: invalid port interleave: %d\n",
|
dev_dbg(&cxlr->dev, "%s:%s: invalid port interleave: %d\n",
|
||||||
dev_name(port->uport), dev_name(&port->dev), iw);
|
dev_name(port->uport), dev_name(&port->dev), iw);
|
||||||
|
@ -83,14 +83,14 @@ static inline int eig_to_granularity(u16 eig, unsigned int *granularity)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Encode defined in CXL ECN "3, 6, 12 and 16-way memory Interleaving" */
|
/* Encode defined in CXL ECN "3, 6, 12 and 16-way memory Interleaving" */
|
||||||
static inline int cxl_to_ways(u8 eniw, unsigned int *val)
|
static inline int eiw_to_ways(u8 eiw, unsigned int *ways)
|
||||||
{
|
{
|
||||||
switch (eniw) {
|
switch (eiw) {
|
||||||
case 0 ... 4:
|
case 0 ... 4:
|
||||||
*val = 1 << eniw;
|
*ways = 1 << eiw;
|
||||||
break;
|
break;
|
||||||
case 8 ... 10:
|
case 8 ... 10:
|
||||||
*val = 3 << (eniw - 8);
|
*ways = 3 << (eiw - 8);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -108,12 +108,12 @@ static inline int granularity_to_eig(int granularity, u16 *eig)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int ways_to_cxl(unsigned int ways, u8 *iw)
|
static inline int ways_to_eiw(unsigned int ways, u8 *eiw)
|
||||||
{
|
{
|
||||||
if (ways > 16)
|
if (ways > 16)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (is_power_of_2(ways)) {
|
if (is_power_of_2(ways)) {
|
||||||
*iw = ilog2(ways);
|
*eiw = ilog2(ways);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (ways % 3)
|
if (ways % 3)
|
||||||
@ -121,7 +121,7 @@ static inline int ways_to_cxl(unsigned int ways, u8 *iw)
|
|||||||
ways /= 3;
|
ways /= 3;
|
||||||
if (!is_power_of_2(ways))
|
if (!is_power_of_2(ways))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
*iw = ilog2(ways) + 8;
|
*eiw = ilog2(ways) + 8;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user