__u8    rx_phys;
 } __packed;
 
+#define HCI_LE_SET_PHY_1M              0x01
+#define HCI_LE_SET_PHY_2M              0x02
+#define HCI_LE_SET_PHY_CODED           0x04
+
 #define HCI_OP_LE_SET_EXT_SCAN_PARAMS   0x2041
 struct hci_cp_le_set_ext_scan_params {
        __u8    own_addr_type;
 
        unsigned long   sco_last_tx;
        unsigned long   le_last_tx;
 
+       __u8            le_tx_def_phys;
+       __u8            le_rx_def_phys;
+
        struct workqueue_struct *workqueue;
        struct workqueue_struct *req_workqueue;
 
 
        if (hdev->commands[35] & 0x20) {
                struct hci_cp_le_set_default_phy cp;
 
-               /* No transmitter PHY or receiver PHY preferences */
-               cp.all_phys = 0x03;
-               cp.tx_phys = 0;
-               cp.rx_phys = 0;
+               cp.all_phys = 0x00;
+               cp.tx_phys = hdev->le_tx_def_phys;
+               cp.rx_phys = hdev->le_rx_def_phys;
 
                hci_req_add(req, HCI_OP_LE_SET_DEFAULT_PHY, sizeof(cp), &cp);
        }
        hdev->le_max_tx_time = 0x0148;
        hdev->le_max_rx_len = 0x001b;
        hdev->le_max_rx_time = 0x0148;
+       hdev->le_tx_def_phys = HCI_LE_SET_PHY_1M;
+       hdev->le_rx_def_phys = HCI_LE_SET_PHY_1M;
 
        hdev->rpa_timeout = HCI_DEFAULT_RPA_TIMEOUT;
        hdev->discov_interleaved_timeout = DISCOV_INTERLEAVED_TIMEOUT;