[PATCH 2/2] RFC: drm/pl111: Support using the VGA bridge as fallback
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Sep 4 02:51:20 PDT 2017
Hello,
On Monday, 4 September 2017 10:43:55 EEST Daniel Vetter wrote:
> On Fri, Sep 01, 2017 at 11:46:29AM +0200, Linus Walleij wrote:
> > If we cannot find a panel, assume that the output from the
> > PL111 is connected directly to a "dumb" VGA connector,
> > so look up the connector from that bridge.
> >
> > Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> > ---
> > This is how the new API is used in the PL111.
> > ---
> >
> > drivers/gpu/drm/pl111/Kconfig | 1 +
> > drivers/gpu/drm/pl111/pl111_drv.c | 3 +++
> > 2 files changed, 4 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/pl111/Kconfig b/drivers/gpu/drm/pl111/Kconfig
> > index e5e2abd66491..82cb3e60ddc8 100644
> > --- a/drivers/gpu/drm/pl111/Kconfig
> > +++ b/drivers/gpu/drm/pl111/Kconfig
> > @@ -8,6 +8,7 @@ config DRM_PL111
> >
> > select DRM_GEM_CMA_HELPER
> > select DRM_BRIDGE
> > select DRM_PANEL_BRIDGE
> >
> > + select DRM_DUMB_VGA_DAC
> >
> > select VT_HW_CONSOLE_BINDING if FRAMEBUFFER_CONSOLE
> > help
> >
> > Choose this option for DRM support for the PL111 CLCD controller.
> >
> > diff --git a/drivers/gpu/drm/pl111/pl111_drv.c
> > b/drivers/gpu/drm/pl111/pl111_drv.c index f5bc6f160e60..6db423bbd84e
> > 100644
> > --- a/drivers/gpu/drm/pl111/pl111_drv.c
> > +++ b/drivers/gpu/drm/pl111/pl111_drv.c
> > @@ -67,6 +67,7 @@
> >
> > #include <drm/drm_of.h>
> > #include <drm/drm_bridge.h>
> > #include <drm/drm_panel.h>
> >
> > +#include <drm/dumb_vga_dac.h>
> >
> > #include "pl111_drm.h"
> > #include "pl111_versatile.h"
> >
> > @@ -128,6 +129,8 @@ static int pl111_modeset_init(struct drm_device *dev)
> >
> > if (panel) {
> >
> > priv->panel = panel;
> > priv->connector = panel->connector;
> >
> > + } else {
> > + priv->connector = drm_dumb_vga_get_connector(bridge);
>
> Why do you need to set this? The only code I could find tries to set
> polarity values from bus_flags, and for VGA I'd assume you want to instead
> key this off the mode?
>
> Wrt the more general problem: They way we solve this in the i915 atomic
> framework is that the various ->fixup calls fill out relevant fields in
> the drm_crtc_state. I guess we could add an ->atomic_check to bridges, add
> a bus_flags to drm_crtc_state (or maybe just let everyone patch up
> adjusted_mode->flags) instead?
Furthermore, if we needed to have access to the connector in the display
controller driver, this would call for creating the connector there, not in
the bridge driver. I've advocated this for a long time, and still haven't
given up all hopes of fixing it.
> > }
> > priv->bridge = bridge;
--
Regards,
Laurent Pinchart
More information about the linux-arm-kernel
mailing list