[PATCH v2] Partially revert "video: fbdev: amba-clcd: Retire elder CLCD driver"

Peter Collingbourne pcc at google.com
Tue Sep 29 17:16:21 EDT 2020


On Tue, Sep 29, 2020 at 1:33 PM Linus Walleij <linus.walleij at linaro.org> wrote:
>
> On Tue, Sep 29, 2020 at 9:53 PM Peter Collingbourne <pcc at google.com> wrote:
>
> > The fbdev driver is used by Android's FVP configuration. Using the
> > DRM driver together with DRM's fbdev emulation results in a failure
> > to boot Android. The root cause is that Android's generic fbdev
> > userspace driver relies on the ability to set the pixel format via
> > FBIOPUT_VSCREENINFO, which is not supported by fbdev emulation.
> >
> > There have been other less critical behavioral differences identified
> > between the fbdev driver and the DRM driver with fbdev emulation. The
> > DRM driver exposes different values for the panel's width, height and
> > refresh rate, and the DRM driver fails a FBIOPUT_VSCREENINFO syscall
> > with yres_virtual greater than the maximum supported value instead
> > of letting the syscall succeed and setting yres_virtual based on yres.
>
> Is there a way to reproduce this? A simple binary image where
> we can start Android on FVP and just replace the kernel image
> would be great. That way we can look at the incompatibilities
> in the FBDEV emulation and try to fix them.
>
> Is it working with a stock kernel or do you need any out-of-tree
> Android patches to run this?
>
> Can you also share the kernel config used for this build so it is
> easy to rebuild a similar kernel?

There are instructions here for how to build Android targeting FVP:
https://cs.android.com/android/platform/superproject/+/master:device/generic/goldfish/fvpbase/README.md

It also includes instructions for building the kernel (which is the
Android common kernel so it does have some patches on top, but it does
closely track mainline) so you should be able to make your changes on
top of the common kernel, rebuild and test them that way.

Because of how Android boot images work I don't think it would be easy
to provide binaries where you can replace the kernel image. Let me
know if you have any trouble following the instructions.

The configuration is basically a combination of these two configs:
https://android.googlesource.com/kernel/common/+/refs/heads/android-mainline/arch/arm64/configs/gki_defconfig
https://android-review.googlesource.com/c/kernel/common/+/1145352/11/fvp.fragment

Those configs enable the fbdev driver. You can apply the patch I
posted earlier to fvp.fragment to switch to the DRM driver.

Peter



More information about the linux-arm-kernel mailing list