mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 05:31:15 +00:00
Merge branch 'dsa-hellcreek-fixes'
Kurt Kanzenbach says: ==================== net: dsa: hellcreek: 802.1Qbv Fixes while using TAPRIO offloading on the Hirschmann hellcreek switch, I've noticed two issues in the current implementation: 1. The gate control list is incorrectly programmed 2. The admin base time is not set properly Fix it. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
a423cbe0f2
1 changed files with 4 additions and 4 deletions
|
@ -1472,9 +1472,6 @@ static void hellcreek_setup_gcl(struct hellcreek *hellcreek, int port,
|
||||||
u16 data;
|
u16 data;
|
||||||
u8 gates;
|
u8 gates;
|
||||||
|
|
||||||
cur++;
|
|
||||||
next++;
|
|
||||||
|
|
||||||
if (i == schedule->num_entries)
|
if (i == schedule->num_entries)
|
||||||
gates = initial->gate_mask ^
|
gates = initial->gate_mask ^
|
||||||
cur->gate_mask;
|
cur->gate_mask;
|
||||||
|
@ -1503,6 +1500,9 @@ static void hellcreek_setup_gcl(struct hellcreek *hellcreek, int port,
|
||||||
(initial->gate_mask <<
|
(initial->gate_mask <<
|
||||||
TR_GCLCMD_INIT_GATE_STATES_SHIFT);
|
TR_GCLCMD_INIT_GATE_STATES_SHIFT);
|
||||||
hellcreek_write(hellcreek, data, TR_GCLCMD);
|
hellcreek_write(hellcreek, data, TR_GCLCMD);
|
||||||
|
|
||||||
|
cur++;
|
||||||
|
next++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1550,7 +1550,7 @@ static bool hellcreek_schedule_startable(struct hellcreek *hellcreek, int port)
|
||||||
/* Calculate difference to admin base time */
|
/* Calculate difference to admin base time */
|
||||||
base_time_ns = ktime_to_ns(hellcreek_port->current_schedule->base_time);
|
base_time_ns = ktime_to_ns(hellcreek_port->current_schedule->base_time);
|
||||||
|
|
||||||
return base_time_ns - current_ns < (s64)8 * NSEC_PER_SEC;
|
return base_time_ns - current_ns < (s64)4 * NSEC_PER_SEC;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hellcreek_start_schedule(struct hellcreek *hellcreek, int port)
|
static void hellcreek_start_schedule(struct hellcreek *hellcreek, int port)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue