net: ethernet: ti: cpsw_ale: Add cpsw_ale_restore() helper
This can be used by device driver to restore ALE context. The data produced by cpsw_ale_dump() can be passed to cpsw_ale_restore(). This is required as on certain platforms the ALE context is lost on low power suspend/resume. Signed-off-by: Roger Quadros <rogerq@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
fd23df72f2
Коммит
eadb434374
|
@ -1452,6 +1452,16 @@ void cpsw_ale_dump(struct cpsw_ale *ale, u32 *data)
|
|||
}
|
||||
}
|
||||
|
||||
void cpsw_ale_restore(struct cpsw_ale *ale, u32 *data)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ale->params.ale_entries; i++) {
|
||||
cpsw_ale_write(ale, i, data);
|
||||
data += ALE_ENTRY_WORDS;
|
||||
}
|
||||
}
|
||||
|
||||
u32 cpsw_ale_get_num_entries(struct cpsw_ale *ale)
|
||||
{
|
||||
return ale ? ale->params.ale_entries : 0;
|
||||
|
|
|
@ -127,6 +127,7 @@ int cpsw_ale_control_get(struct cpsw_ale *ale, int port, int control);
|
|||
int cpsw_ale_control_set(struct cpsw_ale *ale, int port,
|
||||
int control, int value);
|
||||
void cpsw_ale_dump(struct cpsw_ale *ale, u32 *data);
|
||||
void cpsw_ale_restore(struct cpsw_ale *ale, u32 *data);
|
||||
u32 cpsw_ale_get_num_entries(struct cpsw_ale *ale);
|
||||
|
||||
static inline int cpsw_ale_get_vlan_p0_untag(struct cpsw_ale *ale, u16 vid)
|
||||
|
|
Загрузка…
Ссылка в новой задаче