net: stmmac: Add support for CBS QDISC
This adds support for CBS reconfiguration using the TC application. A new callback was added to TC ops struct and another one to DMA ops to reconfigure the channel mode. Tested in GMAC5.10. Signed-off-by: Jose Abreu <joabreu@synopsys.com> Cc: David S. Miller <davem@davemloft.net> Cc: Joao Pinto <jpinto@synopsys.com> Cc: Vitor Soares <soares@synopsys.com> Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committad av
David S. Miller

förälder
30408a43a3
incheckning
1f705bc61a
@@ -183,6 +183,7 @@ struct stmmac_dma_ops {
|
||||
void (*set_rx_tail_ptr)(void __iomem *ioaddr, u32 tail_ptr, u32 chan);
|
||||
void (*set_tx_tail_ptr)(void __iomem *ioaddr, u32 tail_ptr, u32 chan);
|
||||
void (*enable_tso)(void __iomem *ioaddr, bool en, u32 chan);
|
||||
void (*qmode)(void __iomem *ioaddr, u32 channel, u8 qmode);
|
||||
};
|
||||
|
||||
#define stmmac_reset(__priv, __args...) \
|
||||
@@ -235,6 +236,8 @@ struct stmmac_dma_ops {
|
||||
stmmac_do_void_callback(__priv, dma, set_tx_tail_ptr, __args)
|
||||
#define stmmac_enable_tso(__priv, __args...) \
|
||||
stmmac_do_void_callback(__priv, dma, enable_tso, __args)
|
||||
#define stmmac_dma_qmode(__priv, __args...) \
|
||||
stmmac_do_void_callback(__priv, dma, qmode, __args)
|
||||
|
||||
struct mac_device_info;
|
||||
struct net_device;
|
||||
@@ -441,17 +444,22 @@ struct stmmac_mode_ops {
|
||||
|
||||
struct stmmac_priv;
|
||||
struct tc_cls_u32_offload;
|
||||
struct tc_cbs_qopt_offload;
|
||||
|
||||
struct stmmac_tc_ops {
|
||||
int (*init)(struct stmmac_priv *priv);
|
||||
int (*setup_cls_u32)(struct stmmac_priv *priv,
|
||||
struct tc_cls_u32_offload *cls);
|
||||
int (*setup_cbs)(struct stmmac_priv *priv,
|
||||
struct tc_cbs_qopt_offload *qopt);
|
||||
};
|
||||
|
||||
#define stmmac_tc_init(__priv, __args...) \
|
||||
stmmac_do_callback(__priv, tc, init, __args)
|
||||
#define stmmac_tc_setup_cls_u32(__priv, __args...) \
|
||||
stmmac_do_callback(__priv, tc, setup_cls_u32, __args)
|
||||
#define stmmac_tc_setup_cbs(__priv, __args...) \
|
||||
stmmac_do_callback(__priv, tc, setup_cbs, __args)
|
||||
|
||||
struct stmmac_regs_off {
|
||||
u32 ptp_off;
|
||||
|
Referens i nytt ärende
Block a user