commit | cb79540950ec0dec7866c8030deb6986ce90e087 | [log] [tgz] |
---|---|---|
author | Jocelyn Dang <jocelyndang@google.com> | Wed Jul 08 20:41:55 2020 +0000 |
committer | CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> | Wed Jul 08 20:41:55 2020 +0000 |
tree | e4a6767f170482a53546f7a8a151f97c65f415a6 | |
parent | 5157dc31791af55ef01f284e2b21a89a6aef45ac [diff] |
[i2c-hid] Migrate to new DdkInit/DdkUnbind hooks. The DdkInit() hook is run after automatically after DdkAdd() is called. By moving the post-add initialization logic into this hook, we can guarantee the device will be invisible and not able to be unbound until InitTxn.Reply() is called. If InitTxn.Reply() is called with a bad status, the device manager will begin unbinding the device. When removing a device, we call DdkAsyncRemove() (rather than DdkRemoveDeprecated), which will begin unbinding the device. --------------- DDK lifecycle: --------------- 1) DdkAdd() 2) DdkInit() 3) InitTxn.Reply() // Device becomes visible 4) DdkUnbind() // started by InitTxn.Reply(!ZX_OK) / DdkAsyncRemove 5) UnbindTxn.Reply() 6) DdkRelease() TEST= fx test i2c-hid-test BUG=37831 BUG=43261 Change-Id: If8028536483599da18b21cdd4c46ba7b6d4e1073 Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/397715 Reviewed-by: David Gilhooley <dgilhooley@google.com> Testability-Review: David Gilhooley <dgilhooley@google.com> Commit-Queue: Jocelyn Dang <jocelyndang@google.com>
Pink + Purple == Fuchsia (a new operating system)
Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.
Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.
See Getting Started.
See fuchsia.dev.