#define MGMT_SETTING_LE                        0x00000200
 #define MGMT_SETTING_ADVERTISING       0x00000400
 #define MGMT_SETTING_SECURE_CONN       0x00000800
+#define MGMT_SETTING_DEBUG_KEYS                0x00001000
 
 #define MGMT_OP_READ_INFO              0x0004
 #define MGMT_READ_INFO_SIZE            0
 
 
        settings |= MGMT_SETTING_POWERED;
        settings |= MGMT_SETTING_PAIRABLE;
+       settings |= MGMT_SETTING_DEBUG_KEYS;
 
        if (lmp_bredr_capable(hdev)) {
                settings |= MGMT_SETTING_CONNECTABLE;
        if (test_bit(HCI_SC_ENABLED, &hdev->dev_flags))
                settings |= MGMT_SETTING_SECURE_CONN;
 
+       if (test_bit(HCI_DEBUG_KEYS, &hdev->dev_flags))
+               settings |= MGMT_SETTING_DEBUG_KEYS;
+
        return settings;
 }
 
 {
        struct mgmt_cp_load_link_keys *cp = data;
        u16 key_count, expected_len;
+       bool changed;
        int i;
 
        BT_DBG("request for %s", hdev->name);
        hci_link_keys_clear(hdev);
 
        if (cp->debug_keys)
-               set_bit(HCI_DEBUG_KEYS, &hdev->dev_flags);
+               changed = !test_and_set_bit(HCI_DEBUG_KEYS, &hdev->dev_flags);
        else
-               clear_bit(HCI_DEBUG_KEYS, &hdev->dev_flags);
+               changed = test_and_clear_bit(HCI_DEBUG_KEYS, &hdev->dev_flags);
+
+       if (changed)
+               new_settings(hdev, NULL);
 
        for (i = 0; i < key_count; i++) {
                struct mgmt_link_key_info *key = &cp->keys[i];