Commit 8623dea2 authored by Diogo Ivo's avatar Diogo Ivo Committed by Paolo Abeni

net: ti: icssg-prueth: Add SR1.0-specific description bits

Add a field to distinguish between SR1.0 and SR2.0 in the driver
as well as the necessary structures to program SR1.0.

Based on the work of Roger Quadros in TI's 5.10 SDK [1].

[1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/?h=ti-linux-5.10.yCo-developed-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarDiogo Ivo <diogo.ivo@siemens.com>
Reviewed-by: default avatarRoger Quadros <rogerq@kernel.org>
Reviewed-by: default avatarMD Danish Anwar <danishanwar@ti.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 6d6a5751
...@@ -129,6 +129,7 @@ struct prueth_rx_chn { ...@@ -129,6 +129,7 @@ struct prueth_rx_chn {
/* data for each emac port */ /* data for each emac port */
struct prueth_emac { struct prueth_emac {
bool is_sr1;
bool fw_running; bool fw_running;
struct prueth *prueth; struct prueth *prueth;
struct net_device *ndev; struct net_device *ndev;
...@@ -157,6 +158,10 @@ struct prueth_emac { ...@@ -157,6 +158,10 @@ struct prueth_emac {
int rx_flow_id_base; int rx_flow_id_base;
int tx_ch_num; int tx_ch_num;
/* SR1.0 Management channel */
struct prueth_rx_chn rx_mgm_chn;
int rx_mgm_flow_id_base;
spinlock_t lock; /* serialize access */ spinlock_t lock; /* serialize access */
/* TX HW Timestamping */ /* TX HW Timestamping */
...@@ -167,7 +172,7 @@ struct prueth_emac { ...@@ -167,7 +172,7 @@ struct prueth_emac {
u8 cmd_seq; u8 cmd_seq;
/* shutdown related */ /* shutdown related */
u32 cmd_data[4]; __le32 cmd_data[4];
struct completion cmd_complete; struct completion cmd_complete;
/* Mutex to serialize access to firmware command interface */ /* Mutex to serialize access to firmware command interface */
struct mutex cmd_lock; struct mutex cmd_lock;
...@@ -251,6 +256,13 @@ struct emac_tx_ts_response { ...@@ -251,6 +256,13 @@ struct emac_tx_ts_response {
u32 hi_ts; u32 hi_ts;
}; };
struct emac_tx_ts_response_sr1 {
__le32 lo_ts;
__le32 hi_ts;
__le32 reserved;
__le32 cookie;
};
/* get PRUSS SLICE number from prueth_emac */ /* get PRUSS SLICE number from prueth_emac */
static inline int prueth_emac_slice(struct prueth_emac *emac) static inline int prueth_emac_slice(struct prueth_emac *emac)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment