[PATCH 1/2 v4] drm/pl111: Support the Versatile Express
Robin Murphy
robin.murphy at arm.com
Fri Apr 27 15:02:53 UTC 2018
On 26/04/18 08:52, Linus Walleij wrote:
> On Mon, Apr 23, 2018 at 2:04 PM, Robin Murphy <robin.murphy at arm.com> wrote:
>
>> I've given this a go on the nearest VExpress (with CA15_A7 tile) and sadly
>> it doesn't quite work for me :( With the HDLCD driver configure out, the
>> PL111 driver seems to repeatedly defer somewhere past
>> pl111_versatile_init():
>>
>> root at jet-set-radio:~# dmesg | grep -i lcd
>> [ 2.739358] drm-clcd-pl111 1c1f0000.clcd: sysreg has not yet probed
>> [ 3.406534] drm-clcd-pl111 1c1f0000.clcd: initializing Versatile Express
>> PL111
>> [ 3.428218] drm-clcd-pl111 1c1f0000.clcd: DVI muxed to motherboard CLCD
>> [ 3.898768] drm-clcd-pl111 1c1f0000.clcd: initializing Versatile Express
>> PL111
>> [ 3.920441] drm-clcd-pl111 1c1f0000.clcd: DVI muxed to motherboard CLCD
>> [ 10.896158] drm-clcd-pl111 1c1f0000.clcd: initializing Versatile Express
>> PL111
>> [ 10.917839] drm-clcd-pl111 1c1f0000.clcd: DVI muxed to motherboard CLCD
>> [ 18.513233] drm-clcd-pl111 1c1f0000.clcd: initializing Versatile Express
>> PL111
>> [ 18.535007] drm-clcd-pl111 1c1f0000.clcd: DVI muxed to motherboard CLCD
>> root at jet-set-radio:~# ls /sys/bus/amba/drivers/drm-clcd-pl111/
>> bind uevent unbind
>>
>>
>> There's no obvious indication of what's missing, but it does still manage to
>> do enough to make the external display come on (still showing the
>> motherboard PoST screen). By comparison, the old fbdev driver probes OK and
>> thinks it's set up a 640x480 console but doesn't actually turn the monitor
>> on (and HDLCD doesn't probe at all due to vexpress-v2p-ca15_a7.dts lacking
>> any graph endpoint).
>>
>> Config attached, just in case I'm missing something trivially dumb.
>
> Hm you definately need CONFIG_CMA and CONFIG_DMA_CMA so
> the driver actually uses the special memory.
Argh, missing CMA was exactly the kind of idiocy I predicted...
> I have all these:
>
> config-drm: config-base
> $(CURDIR)/scripts/config --file $(config_file) \
> --disable FB_ARMCLCD \
> --enable CMA \
> --enable CMA_DEBUG \
> --enable CMA_DEBUGFS \
> --enable DMA_CMA \
> --enable DRM \
> --enable DRM_PL111 \
> --enable FRAMEBUFFER_CONSOLE \
> --enable DRM_PANEL \
> --enable DRM_PANEL_SIMPLE \
> --enable DRM_BRIDGE \
> --enable DRM_PANEL_BRIDGE \
> --enable DRM_SII902X \
> --enable LOGO
>
> Please try with the stuff above, when I switch the mainline platforms
> I plan to update the defconfigs with all the above.
...however even ensuring all of the above options I still see the same
behaviour, i.e. the driver fails to bind with no visible reason why.
I dug a little bit and it seems pl111_modeset_init() is deferring
because it can't find endpoint 0. And given that that's apparently
pointing at some non-existent panel rather than the DVI encoder as I
would (naively) expect, I can at least form a self-consistent
explanation and give up on the grounds that I'm probably missing some
important DT changes.
Robin.
More information about the dri-devel
mailing list