mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-19 21:21:09 +00:00
uwb: improved MAS allocator and reservation conflict handling
Greatly enhance the MAS allocator: - Handle row and column reservations. - Permit all the available MAS to be allocated. - Follows the WiMedia rules on MAS selection. Take appropriate action when reservation conflicts are detected. - Correctly identify which reservation wins the conflict. - Protect alien BP reservations. - If an owned reservation loses, resize/move it. - Follow the backoff procedure before requesting additional MAS. When reservations are terminated, move the remaining reservations (if necessary) so they keep following the MAS allocation rules. Signed-off-by: Stefano Panella <stefano.panella@csr.com> Signed-off-by: David Vrabel <david.vrabel@csr.com>
This commit is contained in:
parent
c35fa3ea1a
commit
5b37717a23
12 changed files with 1605 additions and 329 deletions
|
@ -43,7 +43,7 @@ struct uwb_dbg_cmd_rsv_establish {
|
|||
__u8 type;
|
||||
__u16 max_mas;
|
||||
__u16 min_mas;
|
||||
__u8 sparsity;
|
||||
__u8 max_interval;
|
||||
};
|
||||
|
||||
struct uwb_dbg_cmd_rsv_terminate {
|
||||
|
|
|
@ -58,6 +58,11 @@ enum { UWB_NUM_ZONES = 16 };
|
|||
*/
|
||||
#define UWB_MAS_PER_ZONE (UWB_NUM_MAS / UWB_NUM_ZONES)
|
||||
|
||||
/*
|
||||
* Number of MAS required before a row can be considered available.
|
||||
*/
|
||||
#define UWB_USABLE_MAS_PER_ROW (UWB_NUM_ZONES - 1)
|
||||
|
||||
/*
|
||||
* Number of streams per DRP reservation between a pair of devices.
|
||||
*
|
||||
|
@ -93,6 +98,26 @@ enum { UWB_BEACON_SLOT_LENGTH_US = 85 };
|
|||
*/
|
||||
enum { UWB_MAX_LOST_BEACONS = 3 };
|
||||
|
||||
/*
|
||||
* mDRPBackOffWinMin
|
||||
*
|
||||
* The minimum number of superframes to wait before trying to reserve
|
||||
* extra MAS.
|
||||
*
|
||||
* [ECMA-368] section 17.16
|
||||
*/
|
||||
enum { UWB_DRP_BACKOFF_WIN_MIN = 2 };
|
||||
|
||||
/*
|
||||
* mDRPBackOffWinMax
|
||||
*
|
||||
* The maximum number of superframes to wait before trying to reserve
|
||||
* extra MAS.
|
||||
*
|
||||
* [ECMA-368] section 17.16
|
||||
*/
|
||||
enum { UWB_DRP_BACKOFF_WIN_MAX = 16 };
|
||||
|
||||
/*
|
||||
* Length of a superframe in microseconds.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue