]>
Commit | Line | Data |
---|---|---|
c5995bd2 SP |
1 | /* |
2 | * Ultra Wide Band | |
3 | * IE Received notification handling. | |
4 | * | |
5 | * Copyright (C) 2008 Cambridge Silicon Radio Ltd. | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or | |
8 | * modify it under the terms of the GNU General Public License version | |
9 | * 2 as published by the Free Software Foundation. | |
10 | * | |
11 | * This program is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
18 | */ | |
19 | ||
20 | #include <linux/errno.h> | |
21 | #include <linux/module.h> | |
22 | #include <linux/device.h> | |
23 | #include <linux/bitmap.h> | |
24 | #include "uwb-internal.h" | |
25 | ||
26 | /* | |
27 | * Process an incoming IE Received notification. | |
28 | */ | |
29 | int uwbd_evt_handle_rc_ie_rcv(struct uwb_event *evt) | |
30 | { | |
31 | int result = -EINVAL; | |
32 | struct device *dev = &evt->rc->uwb_dev.dev; | |
33 | struct uwb_rc_evt_ie_rcv *iercv; | |
c5995bd2 SP |
34 | |
35 | /* Is there enough data to decode it? */ | |
36 | if (evt->notif.size < sizeof(*iercv)) { | |
37 | dev_err(dev, "IE Received notification: Not enough data to " | |
38 | "decode (%zu vs %zu bytes needed)\n", | |
39 | evt->notif.size, sizeof(*iercv)); | |
40 | goto error; | |
41 | } | |
42 | iercv = container_of(evt->notif.rceb, struct uwb_rc_evt_ie_rcv, rceb); | |
c5995bd2 SP |
43 | |
44 | dev_dbg(dev, "IE received, element ID=%d\n", iercv->IEData[0]); | |
45 | ||
46 | if (iercv->IEData[0] == UWB_RELINQUISH_REQUEST_IE) { | |
47 | dev_warn(dev, "unhandled Relinquish Request IE\n"); | |
48 | } | |
49 | ||
50 | return 0; | |
51 | error: | |
52 | return result; | |
53 | } |