Skip to content

Commit

Permalink
net: dsa: microchip: dcb: rename IPV to IPM
Browse files Browse the repository at this point in the history
IPV is added and used term in 802.1Qci PSFP and merged into 802.1Q (from
802.1Q-2018) for another functions.

Even it does similar operation holding temporal priority value
internally (as it is named), because KSZ datasheet doesn't use the term
of IPV (Internal Priority Value) and avoiding any confusion later when
PSFP is in the Linux world, it is better to rename IPV to IPM (Internal
Priority Mapping).

In addition, LAN937x documentation already use IPV for 802.1Qci PSFP
related functionality.

Suggested-by: Woojung Huh <Woojung.Huh@microchip.com>
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Woojung Huh <woojung.huh@microchip.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20240510053828.2412516-2-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Oleksij Rempel authored and Jakub Kicinski committed May 13, 2024
1 parent 3647980 commit 2ccb1ac
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 51 deletions.
46 changes: 23 additions & 23 deletions drivers/net/dsa/microchip/ksz_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -1227,7 +1227,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 3, /* total port count */
.port_nirqs = 3,
.num_tx_queues = 4,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &ksz9477_dev_ops,
.phylink_mac_ops = &ksz9477_phylink_mac_ops,
Expand Down Expand Up @@ -1257,7 +1257,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.cpu_ports = 0x10, /* can be configured as cpu port */
.port_cnt = 5, /* total cpu and user ports */
.num_tx_queues = 4,
.num_ipvs = 4,
.num_ipms = 4,
.ops = &ksz8_dev_ops,
.phylink_mac_ops = &ksz8_phylink_mac_ops,
.ksz87xx_eee_link_erratum = true,
Expand Down Expand Up @@ -1298,7 +1298,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.cpu_ports = 0x10, /* can be configured as cpu port */
.port_cnt = 5, /* total cpu and user ports */
.num_tx_queues = 4,
.num_ipvs = 4,
.num_ipms = 4,
.ops = &ksz8_dev_ops,
.phylink_mac_ops = &ksz8_phylink_mac_ops,
.ksz87xx_eee_link_erratum = true,
Expand All @@ -1325,7 +1325,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.cpu_ports = 0x10, /* can be configured as cpu port */
.port_cnt = 5, /* total cpu and user ports */
.num_tx_queues = 4,
.num_ipvs = 4,
.num_ipms = 4,
.ops = &ksz8_dev_ops,
.phylink_mac_ops = &ksz8_phylink_mac_ops,
.ksz87xx_eee_link_erratum = true,
Expand All @@ -1352,7 +1352,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.cpu_ports = 0x4, /* can be configured as cpu port */
.port_cnt = 3,
.num_tx_queues = 4,
.num_ipvs = 4,
.num_ipms = 4,
.ops = &ksz8_dev_ops,
.phylink_mac_ops = &ksz8830_phylink_mac_ops,
.mib_names = ksz88xx_mib_names,
Expand All @@ -1378,7 +1378,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 7, /* total physical port count */
.port_nirqs = 4,
.num_tx_queues = 4,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &ksz9477_dev_ops,
.phylink_mac_ops = &ksz9477_phylink_mac_ops,
Expand Down Expand Up @@ -1413,7 +1413,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 6, /* total physical port count */
.port_nirqs = 2,
.num_tx_queues = 4,
.num_ipvs = 8,
.num_ipms = 8,
.ops = &ksz9477_dev_ops,
.phylink_mac_ops = &ksz9477_phylink_mac_ops,
.mib_names = ksz9477_mib_names,
Expand Down Expand Up @@ -1447,7 +1447,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 7, /* total physical port count */
.port_nirqs = 2,
.num_tx_queues = 4,
.num_ipvs = 8,
.num_ipms = 8,
.ops = &ksz9477_dev_ops,
.phylink_mac_ops = &ksz9477_phylink_mac_ops,
.mib_names = ksz9477_mib_names,
Expand Down Expand Up @@ -1479,7 +1479,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 3, /* total port count */
.port_nirqs = 2,
.num_tx_queues = 4,
.num_ipvs = 8,
.num_ipms = 8,
.ops = &ksz9477_dev_ops,
.phylink_mac_ops = &ksz9477_phylink_mac_ops,
.mib_names = ksz9477_mib_names,
Expand Down Expand Up @@ -1507,7 +1507,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 3, /* total port count */
.port_nirqs = 3,
.num_tx_queues = 4,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &ksz9477_dev_ops,
.phylink_mac_ops = &ksz9477_phylink_mac_ops,
Expand Down Expand Up @@ -1536,7 +1536,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 7, /* total port count */
.port_nirqs = 3,
.num_tx_queues = 4,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &ksz9477_dev_ops,
.phylink_mac_ops = &ksz9477_phylink_mac_ops,
Expand Down Expand Up @@ -1570,7 +1570,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 7, /* total physical port count */
.port_nirqs = 3,
.num_tx_queues = 4,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &ksz9477_dev_ops,
.mib_names = ksz9477_mib_names,
Expand Down Expand Up @@ -1602,7 +1602,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 5, /* total physical port count */
.port_nirqs = 6,
.num_tx_queues = 8,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &lan937x_dev_ops,
.phylink_mac_ops = &lan937x_phylink_mac_ops,
Expand Down Expand Up @@ -1630,7 +1630,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 6, /* total physical port count */
.port_nirqs = 6,
.num_tx_queues = 8,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &lan937x_dev_ops,
.phylink_mac_ops = &lan937x_phylink_mac_ops,
Expand Down Expand Up @@ -1658,7 +1658,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 8, /* total physical port count */
.port_nirqs = 6,
.num_tx_queues = 8,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &lan937x_dev_ops,
.phylink_mac_ops = &lan937x_phylink_mac_ops,
Expand Down Expand Up @@ -1690,7 +1690,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 5, /* total physical port count */
.port_nirqs = 6,
.num_tx_queues = 8,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &lan937x_dev_ops,
.phylink_mac_ops = &lan937x_phylink_mac_ops,
Expand Down Expand Up @@ -1722,7 +1722,7 @@ const struct ksz_chip_data ksz_switch_chips[] = {
.port_cnt = 8, /* total physical port count */
.port_nirqs = 6,
.num_tx_queues = 8,
.num_ipvs = 8,
.num_ipms = 8,
.tc_cbs_supported = true,
.ops = &lan937x_dev_ops,
.phylink_mac_ops = &lan937x_phylink_mac_ops,
Expand Down Expand Up @@ -2726,20 +2726,20 @@ static int ksz9477_set_default_prio_queue_mapping(struct ksz_device *dev,
int port)
{
u32 queue_map = 0;
int ipv;
int ipm;

for (ipv = 0; ipv < dev->info->num_ipvs; ipv++) {
for (ipm = 0; ipm < dev->info->num_ipms; ipm++) {
int queue;

/* Traffic Type (TT) is corresponding to the Internal Priority
* Value (IPV) in the switch. Traffic Class (TC) is
* Map (IPM) in the switch. Traffic Class (TC) is
* corresponding to the queue in the switch.
*/
queue = ieee8021q_tt_to_tc(ipv, dev->info->num_tx_queues);
queue = ieee8021q_tt_to_tc(ipm, dev->info->num_tx_queues);
if (queue < 0)
return queue;

queue_map |= queue << (ipv * KSZ9477_PORT_TC_MAP_S);
queue_map |= queue << (ipm * KSZ9477_PORT_TC_MAP_S);
}

return ksz_pwrite32(dev, port, KSZ9477_PORT_MRI_TC_MAP__4, queue_map);
Expand Down Expand Up @@ -3609,7 +3609,7 @@ static int ksz_tc_ets_add(struct ksz_device *dev, int port,
for (tc_prio = 0; tc_prio < ARRAY_SIZE(p->priomap); tc_prio++) {
int queue;

if (tc_prio >= dev->info->num_ipvs)
if (tc_prio >= dev->info->num_ipms)
break;

queue = ksz_ets_band_to_queue(p, p->priomap[tc_prio]);
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/dsa/microchip/ksz_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ struct ksz_chip_data {
int port_cnt;
u8 port_nirqs;
u8 num_tx_queues;
u8 num_ipvs; /* number of Internal Priority Values */
u8 num_ipms; /* number of Internal Priority Maps */
bool tc_cbs_supported;
const struct ksz_dev_ops *ops;
const struct phylink_mac_ops *phylink_mac_ops;
Expand Down
54 changes: 27 additions & 27 deletions drivers/net/dsa/microchip/ksz_dcb.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ static const struct ksz_apptrust_map ksz9477_apptrust_map_to_bit[] = {
};

/* ksz_supported_apptrust[] - Supported apptrust selectors and Priority Order
* of Internal Priority Value (IPV) sources.
* of Internal Priority Map (IPM) sources.
*
* This array defines the apptrust selectors supported by the hardware, where
* the index within the array indicates the priority of the selector - lower
Expand Down Expand Up @@ -246,7 +246,7 @@ int ksz_port_set_default_prio(struct dsa_switch *ds, int port, u8 prio)
int reg, shift, ret;
u8 mask;

if (prio >= dev->info->num_ipvs)
if (prio >= dev->info->num_ipms)
return -EINVAL;

if (ksz_is_ksz88x3(dev)) {
Expand Down Expand Up @@ -282,15 +282,15 @@ int ksz_port_get_dscp_prio(struct dsa_switch *ds, int port, u8 dscp)
ksz_get_dscp_prio_reg(dev, &reg, &per_reg, &mask);

/* If DSCP remapping is disabled, DSCP bits 3-5 are used as Internal
* Priority Value (IPV)
* Priority Map (IPM)
*/
if (!is_ksz8(dev)) {
ret = ksz_read8(dev, KSZ9477_REG_SW_MAC_TOS_CTRL, &data);
if (ret)
return ret;

/* If DSCP remapping is disabled, DSCP bits 3-5 are used as
* Internal Priority Value (IPV)
* Internal Priority Map (IPM)
*/
if (!(data & KSZ9477_SW_TOS_DSCP_REMAP))
return FIELD_GET(KSZ9477_SW_TOS_DSCP_DEFAULT_PRIO_M,
Expand All @@ -310,7 +310,7 @@ int ksz_port_get_dscp_prio(struct dsa_switch *ds, int port, u8 dscp)
return (data >> shift) & mask;
}

static int ksz_set_global_dscp_entry(struct ksz_device *dev, u8 dscp, u8 ipv)
static int ksz_set_global_dscp_entry(struct ksz_device *dev, u8 dscp, u8 ipm)
{
int reg, per_reg, shift;
u8 mask;
Expand All @@ -320,7 +320,7 @@ static int ksz_set_global_dscp_entry(struct ksz_device *dev, u8 dscp, u8 ipv)
shift = (dscp % per_reg) * (8 / per_reg);

return ksz_rmw8(dev, reg + (dscp / per_reg), mask << shift,
ipv << shift);
ipm << shift);
}

/**
Expand Down Expand Up @@ -349,29 +349,29 @@ static int ksz_init_global_dscp_map(struct ksz_device *dev)
}

for (dscp = 0; dscp < DSCP_MAX; dscp++) {
int ipv, tt;
int ipm, tt;

/* Map DSCP to Traffic Type, which is corresponding to the
* Internal Priority Value (IPV) in the switch.
* Internal Priority Map (IPM) in the switch.
*/
if (!is_ksz8(dev)) {
ipv = ietf_dscp_to_ieee8021q_tt(dscp);
ipm = ietf_dscp_to_ieee8021q_tt(dscp);
} else {
/* On KSZ8xxx variants we do not have IPV to queue
/* On KSZ8xxx variants we do not have IPM to queue
* remapping table. We need to convert DSCP to Traffic
* Type and then to queue.
*/
tt = ietf_dscp_to_ieee8021q_tt(dscp);
if (tt < 0)
return tt;

ipv = ieee8021q_tt_to_tc(tt, dev->info->num_tx_queues);
ipm = ieee8021q_tt_to_tc(tt, dev->info->num_tx_queues);
}

if (ipv < 0)
return ipv;
if (ipm < 0)
return ipm;

ret = ksz_set_global_dscp_entry(dev, dscp, ipv);
ret = ksz_set_global_dscp_entry(dev, dscp, ipm);
}

return 0;
Expand All @@ -381,7 +381,7 @@ int ksz_port_add_dscp_prio(struct dsa_switch *ds, int port, u8 dscp, u8 prio)
{
struct ksz_device *dev = ds->priv;

if (prio >= dev->info->num_ipvs)
if (prio >= dev->info->num_ipms)
return -ERANGE;

return ksz_set_global_dscp_entry(dev, dscp, prio);
Expand All @@ -390,21 +390,21 @@ int ksz_port_add_dscp_prio(struct dsa_switch *ds, int port, u8 dscp, u8 prio)
int ksz_port_del_dscp_prio(struct dsa_switch *ds, int port, u8 dscp, u8 prio)
{
struct ksz_device *dev = ds->priv;
int ipv;
int ipm;

if (ksz_port_get_dscp_prio(ds, port, dscp) != prio)
return 0;

if (is_ksz8(dev)) {
ipv = ieee8021q_tt_to_tc(IEEE8021Q_TT_BE,
ipm = ieee8021q_tt_to_tc(IEEE8021Q_TT_BE,
dev->info->num_tx_queues);
if (ipv < 0)
return ipv;
if (ipm < 0)
return ipm;
} else {
ipv = IEEE8021Q_TT_BE;
ipm = IEEE8021Q_TT_BE;
}

return ksz_set_global_dscp_entry(dev, dscp, ipv);
return ksz_set_global_dscp_entry(dev, dscp, ipm);
}

/**
Expand Down Expand Up @@ -741,20 +741,20 @@ int ksz_port_get_apptrust(struct dsa_switch *ds, int port, u8 *sel, int *nsel)
int ksz_dcb_init_port(struct ksz_device *dev, int port)
{
const u8 *sel;
int ret, ipv;
int ret, ipm;
int sel_len;

if (is_ksz8(dev)) {
ipv = ieee8021q_tt_to_tc(IEEE8021Q_TT_BE,
ipm = ieee8021q_tt_to_tc(IEEE8021Q_TT_BE,
dev->info->num_tx_queues);
if (ipv < 0)
return ipv;
if (ipm < 0)
return ipm;
} else {
ipv = IEEE8021Q_TT_BE;
ipm = IEEE8021Q_TT_BE;
}

/* Set the default priority for the port to Best Effort */
ret = ksz_port_set_default_prio(dev->ds, port, ipv);
ret = ksz_port_set_default_prio(dev->ds, port, ipm);
if (ret)
return ret;

Expand Down

0 comments on commit 2ccb1ac

Please sign in to comment.