Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cbaf4759 authored by Bob Wang's avatar Bob Wang Committed by Automerger Merge Worker
Browse files

Merge "Send DeviceResetCmd after task handle is dropped." into main am:...

Merge "Send DeviceResetCmd after task handle is dropped." into main am: 161a39c3 am: 39b06f38 am: 28fbbeaf

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



Change-Id: Ic721558f0f326828cae75a7c0d4da917f12a6fb8
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents af930955 28fbbeaf
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -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())