mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-21 14:11:20 +00:00
caif-hsi: robust frame aggregation for HSI
Implement aggregation algorithm, combining more data into a single HSI transfer. 4 different traffic categories are supported: 1. TC_PRIO_CONTROL .. TC_PRIO_MAX (CTL) 2. TC_PRIO_INTERACTIVE (VO) 3. TC_PRIO_INTERACTIVE_BULK (VI) 4. TC_PRIO_BESTEFFORT, TC_PRIO_BULK, TC_PRIO_FILLER (BEBK) Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
447648128e
commit
ece367d53a
2 changed files with 205 additions and 57 deletions
|
@ -123,12 +123,21 @@ struct cfhsi_rx_state {
|
|||
bool piggy_desc;
|
||||
};
|
||||
|
||||
/* Priority mapping */
|
||||
enum {
|
||||
CFHSI_PRIO_CTL = 0,
|
||||
CFHSI_PRIO_VI,
|
||||
CFHSI_PRIO_VO,
|
||||
CFHSI_PRIO_BEBK,
|
||||
CFHSI_PRIO_LAST,
|
||||
};
|
||||
|
||||
/* Structure implemented by CAIF HSI drivers. */
|
||||
struct cfhsi {
|
||||
struct caif_dev_common cfdev;
|
||||
struct net_device *ndev;
|
||||
struct platform_device *pdev;
|
||||
struct sk_buff_head qhead;
|
||||
struct sk_buff_head qhead[CFHSI_PRIO_LAST];
|
||||
struct cfhsi_drv drv;
|
||||
struct cfhsi_dev *dev;
|
||||
int tx_state;
|
||||
|
@ -151,8 +160,14 @@ struct cfhsi {
|
|||
wait_queue_head_t wake_up_wait;
|
||||
wait_queue_head_t wake_down_wait;
|
||||
wait_queue_head_t flush_fifo_wait;
|
||||
struct timer_list timer;
|
||||
struct timer_list inactivity_timer;
|
||||
struct timer_list rx_slowpath_timer;
|
||||
|
||||
/* TX aggregation */
|
||||
unsigned long aggregation_timeout;
|
||||
int aggregation_len;
|
||||
struct timer_list aggregation_timer;
|
||||
|
||||
unsigned long bits;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue