Blame view
drivers/uwb/pal.c
2.27 KB
183b9b592 uwb: add the UWB ... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/* * UWB PAL support. * * Copyright (C) 2008 Cambridge Silicon Radio Ltd. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <linux/kernel.h> |
dcc7461ee wusb: add debug f... |
19 |
#include <linux/debugfs.h> |
183b9b592 uwb: add the UWB ... |
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include <linux/uwb.h> #include "uwb-internal.h" /** * uwb_pal_init - initialize a UWB PAL * @pal: the PAL to initialize */ void uwb_pal_init(struct uwb_pal *pal) { INIT_LIST_HEAD(&pal->node); } EXPORT_SYMBOL_GPL(uwb_pal_init); /** * uwb_pal_register - register a UWB PAL |
183b9b592 uwb: add the UWB ... |
36 37 38 39 |
* @pal: the PAL * * The PAL must be initialized with uwb_pal_init(). */ |
6fae35f9c uwb: add basic ra... |
40 |
int uwb_pal_register(struct uwb_pal *pal) |
183b9b592 uwb: add the UWB ... |
41 |
{ |
6fae35f9c uwb: add basic ra... |
42 |
struct uwb_rc *rc = pal->rc; |
b60066c14 uwb: add symlinks... |
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
int ret; if (pal->device) { ret = sysfs_create_link(&pal->device->kobj, &rc->uwb_dev.dev.kobj, "uwb_rc"); if (ret < 0) return ret; ret = sysfs_create_link(&rc->uwb_dev.dev.kobj, &pal->device->kobj, pal->name); if (ret < 0) { sysfs_remove_link(&pal->device->kobj, "uwb_rc"); return ret; } } |
dcc7461ee wusb: add debug f... |
57 |
pal->debugfs_dir = uwb_dbg_create_pal_dir(pal); |
6fae35f9c uwb: add basic ra... |
58 |
mutex_lock(&rc->uwb_dev.mutex); |
183b9b592 uwb: add the UWB ... |
59 |
list_add(&pal->node, &rc->pals); |
6fae35f9c uwb: add basic ra... |
60 |
mutex_unlock(&rc->uwb_dev.mutex); |
183b9b592 uwb: add the UWB ... |
61 62 63 64 65 66 67 |
return 0; } EXPORT_SYMBOL_GPL(uwb_pal_register); /** * uwb_pal_register - unregister a UWB PAL |
183b9b592 uwb: add the UWB ... |
68 69 |
* @pal: the PAL */ |
6fae35f9c uwb: add basic ra... |
70 |
void uwb_pal_unregister(struct uwb_pal *pal) |
183b9b592 uwb: add the UWB ... |
71 |
{ |
6fae35f9c uwb: add basic ra... |
72 73 74 75 76 |
struct uwb_rc *rc = pal->rc; uwb_radio_stop(pal); mutex_lock(&rc->uwb_dev.mutex); |
183b9b592 uwb: add the UWB ... |
77 |
list_del(&pal->node); |
6fae35f9c uwb: add basic ra... |
78 |
mutex_unlock(&rc->uwb_dev.mutex); |
b60066c14 uwb: add symlinks... |
79 |
|
dcc7461ee wusb: add debug f... |
80 |
debugfs_remove(pal->debugfs_dir); |
b60066c14 uwb: add symlinks... |
81 82 83 84 |
if (pal->device) { sysfs_remove_link(&rc->uwb_dev.dev.kobj, pal->name); sysfs_remove_link(&pal->device->kobj, "uwb_rc"); } |
183b9b592 uwb: add the UWB ... |
85 86 87 88 89 90 91 92 93 |
} EXPORT_SYMBOL_GPL(uwb_pal_unregister); /** * uwb_rc_pal_init - initialize the PAL related parts of a radio controller * @rc: the radio controller */ void uwb_rc_pal_init(struct uwb_rc *rc) { |
183b9b592 uwb: add the UWB ... |
94 95 |
INIT_LIST_HEAD(&rc->pals); } |