v20.05: make pinephone work
Cherry-pick all pinephone related commits from master to v20.05, to make the pinephone work with the v20.05 branch.
Like !1276 (closed), but with each commit cherry-picked and without the mesa changes (mesa changes should go in a separate MR).
Untested, we should test it before merging.
EDIT: when merging this, let's use mrhlpr to add
(MR 1340) at the end. So the commits have two (MR... ) blocks at the end, this is fine, it indicates that it went through two MRs.
EDIT: also, when merging, add
[ci:skip-build] to avoid another long build. Having it passing once in CI is enough, if only commit messages were changed afterwards.
Fixes #608 (closed)