mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
net: dsa: felix: convert TAS link speed based on phylink speed
state->speed holds a value of 10, 100, 1000 or 2500, but
QSYS_TAG_CONFIG_LINK_SPEED expects a value of 0, 1, 2, 3. So convert the
speed to a proper value.
Fixes: de143c0e27
("net: dsa: felix: Configure Time-Aware Scheduler via taprio offload")
Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f68910a805
commit
dba1e4660a
@ -1284,8 +1284,28 @@ void vsc9959_mdio_bus_free(struct ocelot *ocelot)
|
||||
static void vsc9959_sched_speed_set(struct ocelot *ocelot, int port,
|
||||
u32 speed)
|
||||
{
|
||||
u8 tas_speed;
|
||||
|
||||
switch (speed) {
|
||||
case SPEED_10:
|
||||
tas_speed = OCELOT_SPEED_10;
|
||||
break;
|
||||
case SPEED_100:
|
||||
tas_speed = OCELOT_SPEED_100;
|
||||
break;
|
||||
case SPEED_1000:
|
||||
tas_speed = OCELOT_SPEED_1000;
|
||||
break;
|
||||
case SPEED_2500:
|
||||
tas_speed = OCELOT_SPEED_2500;
|
||||
break;
|
||||
default:
|
||||
tas_speed = OCELOT_SPEED_1000;
|
||||
break;
|
||||
}
|
||||
|
||||
ocelot_rmw_rix(ocelot,
|
||||
QSYS_TAG_CONFIG_LINK_SPEED(speed),
|
||||
QSYS_TAG_CONFIG_LINK_SPEED(tas_speed),
|
||||
QSYS_TAG_CONFIG_LINK_SPEED_M,
|
||||
QSYS_TAG_CONFIG, port);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user