u16 rx_octets, u16 rx_time);
int hci_le_set_data_length(struct hci_conn *conn, u16 tx_octets, u16 tx_time);
int hci_conn_streaming_mode(struct hci_conn *conn, bool streaming_mode);
+void mgmt_rpa_updated_evt(struct hci_dev *hdev, bdaddr_t *rpa);
#endif
u8 hci_le_conn_update(struct hci_conn *conn, u16 min, u16 max, u16 latency,
__le16 max_rx_time;
} __packed;
+#define MGMT_EV_RPA_CHANGED (TIZEN_EV_BASE + 0x0e)
+struct mgmt_ev_rpa_changed {
+ bdaddr_t bdaddr;
+} __packed;
+
#endif /* CONFIG_TIZEN_WIP */
to = msecs_to_jiffies(hdev->rpa_timeout * 1000);
queue_delayed_work(hdev->workqueue, &hdev->rpa_expired, to);
+#ifdef CONFIG_TIZEN_WIP
+ mgmt_rpa_updated_evt(hdev, &hdev->rpa);
+#endif
+
return 0;
}
return err;
}
+void mgmt_rpa_updated_evt(struct hci_dev *hdev, bdaddr_t *rpa)
+{
+ struct mgmt_ev_rpa_changed mgmt_ev;
+
+ BT_DBG("RPA updated");
+
+ bacpy(&mgmt_ev.bdaddr, rpa);
+
+ mgmt_event(MGMT_EV_RPA_CHANGED, hdev, &mgmt_ev,
+ sizeof(struct mgmt_ev_rpa_changed), NULL);
+}
+
static int set_irk(struct sock *sk, struct hci_dev *hdev, void *cp_data,
u16 len)
{