Skip to content

ARM64: Make it work in 4.10 + Add HDMI Audio and VCHIQ support #1791

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

Merged
merged 5 commits into from
Jan 13, 2017

Conversation

Electron752
Copy link
Contributor

@Electron752 Electron752 commented Jan 13, 2017

This change makes arm64 work again in 4.10. Here is a summary of the changes.

  1. The change to fix overlays and bcmrpi3_defconfig has been cherry-picked from 4.9.
  2. A non-portable cast in vc04_services has been fixed.
  3. SND_BCM2835 has been fixed for ARM64 now that VCHIQ works.
  4. HDMI Audio and VCHIQ are now enabled in bcmrpi3_defconfig

I tested the audio by playing some FLAC audio files and a DVD rip from VLC on debian sid with the xfce4 desktop. I enabled audio and VC4 video with the following config.txt parameters:

dtparam=audio=on
dtoverlay=vc4-kms-v3d

Ideally I would be great if this could somehow be back-ported to 4.9 since that's probably going to be the long term support release. That would require back-porting the upstream 4.10 of vchiq to 4.9 through.

* Invoke the dtc compiler with the same options used in arm mode.
* ARM64 now uses the bcm2835 platform just like ARM32.
* ARM64: Update bcmrpi3_defconfig

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
The function vchiq_copy_from_user contains a non-portable
cast to uint32_t.  Convert this to a cast to unsigned long
which is portable.

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
In the messages sent to VCHIQ, SND_BCM2835 passes a callback
and a context into two 32 bit pointers.  Since this
message is interpreted by the firmware, it can't be easily
changed.  Luckily only one of these fields is actual used,
so on ARM64 only use one of the fields to store the upper
half of the 64 bit callback pointer.

The Kconfig is also changed to allow ARM audio to work for ARM64
as well.

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
Signed-off-by: Michael Zoran <mzoran@crowfest.net>
Signed-off-by: Michael Zoran <mzoran@crowfest.net>
@popcornmix
Copy link
Collaborator

I'm okay with this. Any objections @pelwell ?

@pelwell
Copy link
Contributor

pelwell commented Jan 13, 2017

No objections.

@popcornmix popcornmix merged commit 0363252 into raspberrypi:rpi-4.10.y Jan 13, 2017
@Electron752 Electron752 deleted the rpi-4.10.y+rpi364 branch January 13, 2017 23:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants