Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BLE - Notify HCI driver of host stack inactivity #10162

Merged
merged 3 commits into from Mar 27, 2019

Conversation

Projects
None yet
6 participants
@pan-
Copy link
Member

commented Mar 19, 2019

Description

This PR adds a new function to the CordioHCIDriver interface: on_host_stack_inactivity. That function is called by the host stack when it becomes inactive. It leave the opportunity to the driver to put the controller to sleep if all the conditions are met. Activity is resumed whenever CordioHCIDriver::write is called.

This PR also fixes the type of the timeout local to cardio::BLE::callDispatcher .

Pull request type

[ ] Fix
[ ] Refactor
[ ] Target update
[x] Functionality change
[ ] Docs update
[ ] Test update
[ ] Breaking change

Reviewers

@paul-szczepanek-arm @ARMmbed/team-cypress

pan- added some commits Mar 19, 2019

BLE - Add CordioHCIDriver::on_host_stack_inactivity
This callback should be called by the host stack when it has no pending activities. It allows a driver to put its controller to sleep.

@ciarmcom ciarmcom requested review from paul-szczepanek-arm and ARMmbed/mbed-os-maintainers Mar 19, 2019

@ciarmcom

This comment has been minimized.

Copy link
Member

commented Mar 19, 2019

@pan-, thank you for your changes.
@paul-szczepanek-arm @ARMmbed/mbed-os-pan @ARMmbed/mbed-os-maintainers please review.

@@ -564,6 +564,9 @@ void BLE::callDispatcher()
timestamp_t nextTimestamp = (timestamp_t) (WsfTimerNextExpiration(&pTimerRunning) * WSF_MS_PER_TICK) * 1000;
if (pTimerRunning) {
nextTimeout.attach_us(timeoutCallback, nextTimestamp);
} else {
critical_section.disable();

This comment has been minimized.

Copy link
@cmonr

cmonr Mar 20, 2019

Contributor

Why was this, or CriticalSectionLock critical_section; needed to begin with?

This comment has been minimized.

Copy link
@pan-

pan- Mar 21, 2019

Author Member

In our case wsfOsReadyToSleep and WsfTimerNextExpiration needs to be called within a critical section.

@cmonr cmonr added needs: CI and removed needs: review labels Mar 26, 2019

@cmonr

cmonr approved these changes Mar 26, 2019

@cmonr

This comment has been minimized.

Copy link
Contributor

commented Mar 26, 2019

CI started

@mbed-ci

This comment has been minimized.

Copy link

commented Mar 26, 2019

Test run: SUCCESS

Summary: 13 of 13 test jobs passed
Build number : 1
Build artifacts

cmonr added a commit to cmonr/mbed-os that referenced this pull request Mar 26, 2019

Merge pull request ARMmbed#10162 from pan-/cordio-driver-notify-inact…
…ivity

BLE - Notify HCI driver of host stack inactivity

@cmonr cmonr merged commit 365cf11 into ARMmbed:master Mar 27, 2019

28 checks passed

continuous-integration/jenkins/pr-head This commit looks good
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
jenkins-ci/build-ARMC5 Success
Details
jenkins-ci/build-ARMC6 Success
Details
jenkins-ci/build-GCC_ARM Success
Details
jenkins-ci/build-IAR8 Success
Details
jenkins-ci/cloud-client-test Success
Details
jenkins-ci/dynamic-memory-usage RTOS ROM(+0 bytes) RAM(+0 bytes)
Details
jenkins-ci/exporter Success
Details
jenkins-ci/greentea-test Success
Details
jenkins-ci/mbed2-build-ARMC5 Success
Details
jenkins-ci/mbed2-build-ARMC6 Success
Details
jenkins-ci/mbed2-build-GCC_ARM Success
Details
jenkins-ci/mbed2-build-IAR8 Success
Details
jenkins-ci/unittests Success
Details
travis-ci/astyle Local astyle testing has passed
Details
travis-ci/docs Local docs testing has passed
Details
travis-ci/doxy-spellcheck Local doxy-spellcheck testing has passed
Details
travis-ci/events Passed, runtime is 10240 cycles (+403 cycles)
Details
travis-ci/gitattributestest Local gitattributestest testing has passed
Details
travis-ci/include_check Local include_check testing has passed
Details
travis-ci/licence_check Local licence_check testing has passed
Details
travis-ci/littlefs Passed, code size is 8408B (+0.00%)
Details
travis-ci/psa-autogen Local psa-autogen testing has passed
Details
travis-ci/tools-py2.7 Local tools-py2.7 testing has passed
Details
travis-ci/tools-py3.5 Local tools-py3.5 testing has passed
Details
travis-ci/tools-py3.6 Local tools-py3.6 testing has passed
Details
travis-ci/tools-py3.7 Local tools-py3.7 testing has passed
Details

@cmonr cmonr removed the ready for merge label Mar 27, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.