u8 events[8];
 
                memset(events, 0, sizeof(events));
-               events[0] = 0x0f;
 
                if (hdev->le_features[0] & HCI_LE_ENCRYPTION)
                        events[0] |= 0x10;      /* LE Long Term Key Request */
                                                 * Report
                                                 */
 
+               /* If the controller supports the LE Set Scan Enable command,
+                * enable the corresponding advertising report event.
+                */
+               if (hdev->commands[26] & 0x08)
+                       events[0] |= 0x02;      /* LE Advertising Report */
+
+               /* If the controller supports the LE Create Connection
+                * command, enable the corresponding event.
+                */
+               if (hdev->commands[26] & 0x10)
+                       events[0] |= 0x01;      /* LE Connection Complete */
+
+               /* If the controller supports the LE Connection Update
+                * command, enable the corresponding event.
+                */
+               if (hdev->commands[27] & 0x04)
+                       events[0] |= 0x04;      /* LE Connection Update
+                                                * Complete
+                                                */
+
+               /* If the controller supports the LE Read Remote Used Features
+                * command, enable the corresponding event.
+                */
+               if (hdev->commands[27] & 0x20)
+                       events[0] |= 0x08;      /* LE Read Remote Used
+                                                * Features Complete
+                                                */
+
                /* If the controller supports the LE Read Local P-256
                 * Public Key command, enable the corresponding event.
                 */