spi/s3c64xx: Bug fix for SPI with different FIFO level
[linux-2.6.git] / drivers / uwb / lc-rc.c
index f00633d..b4395f4 100644 (file)
@@ -35,6 +35,7 @@
 #include <linux/kdev_t.h>
 #include <linux/etherdevice.h>
 #include <linux/usb.h>
+#include <linux/slab.h>
 
 #include "uwb-internal.h"
 
@@ -167,7 +168,7 @@ int uwb_rc_mac_addr_setup(struct uwb_rc *rc)
        }
 
        if (uwb_mac_addr_unset(&addr) || uwb_mac_addr_bcast(&addr)) {
-               addr.data[0] = 0x02; /* locally adminstered and unicast */
+               addr.data[0] = 0x02; /* locally administered and unicast */
                get_random_bytes(&addr.data[1], sizeof(addr.data)-1);
 
                result = uwb_rc_mac_addr_set(rc, &addr);
@@ -189,9 +190,9 @@ static int uwb_rc_setup(struct uwb_rc *rc)
        int result;
        struct device *dev = &rc->uwb_dev.dev;
 
-       result = uwb_rc_reset(rc);
+       result = uwb_radio_setup(rc);
        if (result < 0) {
-               dev_err(dev, "cannot reset UWB radio: %d\n", result);
+               dev_err(dev, "cannot setup UWB radio: %d\n", result);
                goto error;
        }
        result = uwb_rc_mac_addr_setup(rc);
@@ -288,8 +289,8 @@ error_sys_add:
 error_dev_add:
 error_rc_setup:
        rc->stop(rc);
-       uwbd_stop(rc);
 error_rc_start:
+       uwbd_stop(rc);
        return result;
 }
 EXPORT_SYMBOL_GPL(uwb_rc_add);
@@ -311,12 +312,7 @@ void uwb_rc_rm(struct uwb_rc *rc)
 
        uwb_dbg_del_rc(rc);
        uwb_rsv_remove_all(rc);
-       uwb_rc_ie_rm(rc, UWB_IDENTIFICATION_IE);
-       if (rc->beaconing >= 0)
-               uwb_rc_beacon(rc, -1, 0);
-       if (rc->scan_type != UWB_SCAN_DISABLED)
-               uwb_rc_scan(rc, rc->scanning, UWB_SCAN_DISABLED, 0);
-       uwb_rc_reset(rc);
+       uwb_radio_shutdown(rc);
 
        rc->stop(rc);