aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@csr.com>2008-09-17 11:34:39 -0400
committerDavid Vrabel <dv02@dv02pc01.europe.root.pri>2008-09-17 11:54:34 -0400
commitb63795fa3a41151040b86119750a7df508d40cda (patch)
tree1d69c7400230e835a77c3b84e38ee3a600ef4ace
parentb5784f10d559b3c7b25874b21702ad0907b6fcb7 (diff)
uwb: dont tranmit identification IEs
The current identification IE doesn't include any useful information (the vendor ID is from the EUI-48) and it causes problems with certain hardware/firmware so don't transmit one. Signed-off-by: David Vrabel <david.vrabel@csr.com>
-rw-r--r--drivers/uwb/ie.c29
-rw-r--r--drivers/uwb/lc-rc.c6
-rw-r--r--drivers/uwb/uwb-internal.h1
3 files changed, 0 insertions, 36 deletions
diff --git a/drivers/uwb/ie.c b/drivers/uwb/ie.c
index d54fe09a986d..cf6f3d152b9d 100644
--- a/drivers/uwb/ie.c
+++ b/drivers/uwb/ie.c
@@ -539,32 +539,3 @@ int uwb_rc_ie_rm(struct uwb_rc *uwb_rc, enum uwb_ie element_id)
539 return result; 539 return result;
540} 540}
541EXPORT_SYMBOL_GPL(uwb_rc_ie_rm); 541EXPORT_SYMBOL_GPL(uwb_rc_ie_rm);
542
543
544/**
545 * Create and set new Identification IE
546 *
547 * Currently only sets the Vendor ID. The Vendor ID is set from the OUI,
548 * which is obtained from the first three bytes from the MAC address.
549 */
550int uwb_rc_set_identification_ie(struct uwb_rc *uwb_rc)
551{
552 struct {
553 struct uwb_identification_ie id_ie;
554 struct uwb_dev_info dev_info;
555 struct uwb_vendor_id vendor_id;
556 } ie_data;
557
558 ie_data.id_ie.hdr.element_id = UWB_IDENTIFICATION_IE;
559 ie_data.id_ie.hdr.length = sizeof(struct uwb_dev_info) +
560 sizeof(struct uwb_vendor_id);
561
562 ie_data.dev_info.type = UWB_DEV_INFO_VENDOR_ID;
563 ie_data.dev_info.length = sizeof(struct uwb_vendor_id);
564
565 ie_data.vendor_id.data[0] = uwb_rc->uwb_dev.mac_addr.data[0];
566 ie_data.vendor_id.data[1] = uwb_rc->uwb_dev.mac_addr.data[1];
567 ie_data.vendor_id.data[2] = uwb_rc->uwb_dev.mac_addr.data[2];
568
569 return uwb_rc_ie_add(uwb_rc, &ie_data.id_ie.hdr, sizeof(ie_data));
570}
diff --git a/drivers/uwb/lc-rc.c b/drivers/uwb/lc-rc.c
index a21c96bff236..ee5772f00d42 100644
--- a/drivers/uwb/lc-rc.c
+++ b/drivers/uwb/lc-rc.c
@@ -211,12 +211,6 @@ static int uwb_rc_setup(struct uwb_rc *rc)
211 dev_err(dev, "cannot setup IE subsystem: %d\n", result); 211 dev_err(dev, "cannot setup IE subsystem: %d\n", result);
212 goto error_ie_setup; 212 goto error_ie_setup;
213 } 213 }
214 result = uwb_rc_set_identification_ie(rc);
215 if (result < 0) {
216 dev_err(dev, "cannot set Identification IE: %d\n",
217 result);
218 goto error_set_id_ie;
219 }
220 result = uwb_rsv_setup(rc); 214 result = uwb_rsv_setup(rc);
221 if (result < 0) { 215 if (result < 0) {
222 dev_err(dev, "cannot setup reservation subsystem: %d\n", result); 216 dev_err(dev, "cannot setup reservation subsystem: %d\n", result);
diff --git a/drivers/uwb/uwb-internal.h b/drivers/uwb/uwb-internal.h
index 4f525a889852..2ad307d12961 100644
--- a/drivers/uwb/uwb-internal.h
+++ b/drivers/uwb/uwb-internal.h
@@ -74,7 +74,6 @@ extern void uwb_rc_ie_release(struct uwb_rc *);
74extern int uwb_rc_ie_add(struct uwb_rc *, 74extern int uwb_rc_ie_add(struct uwb_rc *,
75 const struct uwb_ie_hdr *, size_t); 75 const struct uwb_ie_hdr *, size_t);
76extern int uwb_rc_ie_rm(struct uwb_rc *, enum uwb_ie); 76extern int uwb_rc_ie_rm(struct uwb_rc *, enum uwb_ie);
77extern int uwb_rc_set_identification_ie(struct uwb_rc *);
78 77
79extern const char *uwb_rc_strerror(unsigned code); 78extern const char *uwb_rc_strerror(unsigned code);
80 79