aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorStefano Panella <stefano.panella@csr.com>2008-11-04 10:39:08 -0500
committerDavid Vrabel <david.vrabel@csr.com>2008-11-04 10:55:26 -0500
commitfec1a5932f16c0eb1b3f5ca2e18d81d860924088 (patch)
tree48836158dbd458bb462b18f4deffa89e9db80376 /include
parent6d5a681dfb583b2f1eefe7cd5505419ca2d4d6c8 (diff)
uwb: per-radio controller event thread and beacon cache
Use an event thread per-radio controller so processing events from one radio controller doesn't delay another. A radio controller shouldn't have information on devices seen by a different radio controller (they may be on different channels) so make the beacon cache per-radio controller. Signed-off-by: Stefano Panella <stefano.panella@csr.com> Signed-off-by: David Vrabel <david.vrabel@csr.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/uwb.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/uwb.h b/include/linux/uwb.h
index 6d93f54b8879..881f0c5b6d28 100644
--- a/include/linux/uwb.h
+++ b/include/linux/uwb.h
@@ -30,6 +30,7 @@
30#include <linux/device.h> 30#include <linux/device.h>
31#include <linux/mutex.h> 31#include <linux/mutex.h>
32#include <linux/timer.h> 32#include <linux/timer.h>
33#include <linux/wait.h>
33#include <linux/workqueue.h> 34#include <linux/workqueue.h>
34#include <linux/uwb/spec.h> 35#include <linux/uwb/spec.h>
35 36
@@ -86,6 +87,22 @@ struct uwb_notifs_chain {
86 struct mutex mutex; 87 struct mutex mutex;
87}; 88};
88 89
90/* Beacon cache list */
91struct uwb_beca {
92 struct list_head list;
93 size_t entries;
94 struct mutex mutex;
95};
96
97/* Event handling thread. */
98struct uwbd {
99 int pid;
100 struct task_struct *task;
101 wait_queue_head_t wq;
102 struct list_head event_list;
103 spinlock_t event_list_lock;
104};
105
89/** 106/**
90 * struct uwb_mas_bm - a bitmap of all MAS in a superframe 107 * struct uwb_mas_bm - a bitmap of all MAS in a superframe
91 * @bm: a bitmap of length #UWB_NUM_MAS 108 * @bm: a bitmap of length #UWB_NUM_MAS
@@ -342,6 +359,9 @@ struct uwb_rc {
342 enum uwb_scan_type scan_type:3; 359 enum uwb_scan_type scan_type:3;
343 unsigned ready:1; 360 unsigned ready:1;
344 struct uwb_notifs_chain notifs_chain; 361 struct uwb_notifs_chain notifs_chain;
362 struct uwb_beca uwb_beca;
363
364 struct uwbd uwbd;
345 365
346 struct uwb_drp_avail drp_avail; 366 struct uwb_drp_avail drp_avail;
347 struct list_head reservations; 367 struct list_head reservations;