Merge "Send DeviceResetCmd after task handle is dropped." into main am: 161a39c309 am: 39b06f389e am: 28fbbeafd0

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2883606

Change-Id: Ic721558f0f326828cae75a7c0d4da917f12a6fb8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Bob Wang
2023-12-20 03:18:03 +00:00
committed by Automerger Merge Worker

View File

@@ -61,6 +61,20 @@ impl State {
callbacks.as_binder().unlink_to_death(death_recipient)?;
token.cancel();
handle.await.unwrap();
let packet: UciControlPacket = DeviceResetCmdBuilder {
reset_config: ResetConfig::UwbsReset,
}
.build()
.into();
// DeviceResetCmd need to be send to reset the device to stop all running
// activities on UWBS.
let packet_vec: Vec<UciControlPacketHal> = packet.into();
for hal_packet in packet_vec.into_iter() {
serial
.write(&hal_packet.to_vec())
.map(|written| written as i32)
.map_err(|_| binder::StatusCode::UNKNOWN_ERROR)?;
}
consume_device_reset_rsp_and_ntf(
&mut serial
.try_clone()
@@ -238,21 +252,7 @@ impl IUwbChipAsyncServer for UwbChip {
let mut state = self.state.lock().await;
if let State::Opened { ref mut serial, .. } = *state {
let packet: UciControlPacket = DeviceResetCmdBuilder {
reset_config: ResetConfig::UwbsReset,
}
.build()
.into();
// DeviceResetCmd need to be send to reset the device to stop all running
// activities on UWBS.
let packet_vec: Vec<UciControlPacketHal> = packet.into();
for hal_packet in packet_vec.into_iter() {
serial
.write(&hal_packet.to_vec())
.map(|written| written as i32)
.map_err(|_| binder::StatusCode::UNKNOWN_ERROR)?;
}
if let State::Opened { .. } = *state {
state.close().await
} else {
Err(binder::ExceptionCode::ILLEGAL_STATE.into())