WIP: To be upstreamed

This commit includes code not yet upstreamed to mainline.

Change-Id: Ia69790585b4676ffadbe4fb56d5691c448addbb9
28 files changed