Skip to content

VC4 64-bit (f)kms not working #72

Closed
@Gerharddc

Description

@Gerharddc

I am trying to get the 4.9 downstream kernel to run on VC4 with 64 bit and I am getting very close. I can now compile and run and even the fb console comes up on VC4. My ultimate goal is to use the official DSI display but at the moment I am experiencing the same situation on DSI and HDMI.

I started by porting all the patches related to DSI and when I started getting the issues I just copied the entire VC4 driver from 4.4 directly and changed the few api change related build issues to their 4.9 counterparts in order to get it to build again. This helped a bit (made plain kms work for 32-bit) but did not solve everything.

I want to get Qt5 running with EGLFS on KMS and am currently testing that and the simpler https://github.com/ds-hwang/gbm_es2_demo but they seem to behave the same.

With my 4.9 kernel as it is on https://github.com/Gerharddc/linux/tree/4.9-dsi-yocto I can get everything working on 32 bit with the kms overlay. When I use the fkms overlay though then I get the following errors from the programs after starting them:


using card: '/dev/dri/card0': Success
cannot find suitable CRTC for connector 24
cannot setup device for connector 0:24 (0): Success

No usable crtc/encoder pair for connector "UNKNOWN1"

On Qt this means the first frame is rendered and nothing more whilst on the other program nothing renders and the screen is just black.

The situation for fkms on 64-bit is exactly the same. On 64-bit though plain kms does not want to come up and gives the following errors:

[    2.369569] vc4-drm soc:gpu: failed to bind 3f902000.hdmi (ops vc4_hdmi_ops [vc4]): -517
[    2.369673] vc4-drm soc:gpu: master bind failed: -517
[    2.392265] vc4-drm soc:gpu: failed to bind 3f902000.hdmi (ops vc4_drm_unregister [vc4]): -517
[    2.392363] vc4-drm soc:gpu: master bind failed: -517

I have not yet tested to see if fkms works on 4.4 (32) because I assumed it works. I will be testing it soon though just to make sure.

Assuming fkms works on 4.4, could there be something outside the VC4 codebase (because I basically ported all of it) causing fkms not to work on 4.9? Also, could there be something 64-bit related causing normal kms to fail even though vc4 compiles just fine for the architecture?

I know 64-bit isn't officially supported but if someone can give me a hint of where I should be looking to solve this issue other than the vc4 folder then I can try to figure it out myself. I guess fkms being completely broken on 4.9 is a real issue though?

PS. I am on Mesa 13.01 as on the Yocto master branch.

EDIT:
I don't see any dmesg errors when using fkms.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions