[Freedreno] [PATCH v2 00/28] drm/bridge: Consolidate initialization

Mihail Atanassov Mihail.Atanassov at arm.com
Mon Dec 9 11:08:35 UTC 2019


On Monday, 9 December 2019 10:39:07 GMT Neil Armstrong wrote:
> Hi Mihail,

Hi Neil,

> 
> On 04/12/2019 12:48, Mihail Atanassov wrote:
> > Hi all,
> > 
> > I've dropped the fun parts of this series since they need more work, but
> > figured drm_bridge_init() as a concept is still valuable on its own (and
> > I think I'll need it to roll out device links for registered bridges),
> > so here goes.
> > 
> > v2:
> >  - expanded commit messages and added some extra bridge-related
> >    documentation (Daniel)
> >  - dropped v1 patches 29 and 30: 29 needs more work, and 30 depends on
> >    it
> >  - added all remaining drm_bridge implementers, found by searching for
> >    drm_bridge_funcs which is mandatory for any bridge; new uses in
> >    patches 3, 27, and 28 (Sam)
> >  - due to the above, I've decided to squash all analogix changes into
> >    one patch
> > 
> > ---
> > v1 [https://patchwork.freedesktop.org/series/70039/] cover text below:
> > 
> > This series adds device links support to drm_bridge. The motivation
> > behind it is that a drm_bridge in a module could get removed under the
> > feet of the bridge user without warning, so we need a way to remove and
> > reprobe the client as needed to avoid peering into the void.
> > 
> > 1: Add a drm_bridge_init() function which wraps all initialisation of
> > the structure prior to calling drm_bridge_add().
> > 
> > 2-26,28: Apply the drm_bridge_init() refactor to every bridge that uses
> > drm_bridge_add().
> > 
> > 27: Minor cleanup in rcar-du.
> > 
> > 29: Add of_drm_find_bridge_devlink() which functions the same as
> > of_drm_find_bridge() plus adds a device device link from the owning
> > drm_device to the bridge device.
> > 
> > 30: As a motivating example, convert komeda to exclusively use
> > drm_bridge for its pipe outputs; this isn't a regression in usability
> > any more since device links bring the same automatic remove/reprobe
> > feature as components.
> > 
> > Mihail Atanassov (28):
> >   drm: Introduce drm_bridge_init()
> >   drm/bridge: adv7511: Use drm_bridge_init()
> >   drm/bridge/analogix: Use drm_bridge_init()
> >   drm/bridge: cdns: Use drm_bridge_init()
> >   drm/bridge: dumb-vga-dac: Use drm_bridge_init()
> >   drm/bridge: lvds-encoder: Use drm_bridge_init()
> >   drm/bridge: megachips-stdpxxxx-ge-b850v3-fw: Use drm_bridge_init()
> >   drm/bridge: nxp-ptn3460: Use drm_bridge_init()
> >   drm/bridge: panel: Use drm_bridge_init()
> >   drm/bridge: ps8622: Use drm_bridge_init()
> >   drm/bridge: sii902x: Use drm_bridge_init()
> >   gpu: drm: bridge: sii9234: Use drm_bridge_init()
> >   drm/bridge: sil_sii8620: Use drm_bridge_init()
> >   drm/bridge: dw-hdmi: Use drm_bridge_init()
> >   drm/bridge/synopsys: dsi: Use drm_bridge_init()
> >   drm/bridge: tc358764: Use drm_bridge_init()
> >   drm/bridge: tc358767: Use drm_bridge_init()
> >   drm/bridge: thc63: Use drm_bridge_init()
> >   drm/bridge: ti-sn65dsi86: Use drm_bridge_init()
> >   drm/bridge: ti-tfp410: Use drm_bridge_init()
> >   drm/exynos: mic: Use drm_bridge_init()
> >   drm/i2c: tda998x: Use drm_bridge_init()
> >   drm/mcde: dsi: Use drm_bridge_init()
> >   drm/mediatek: hdmi: Use drm_bridge_init()
> >   drm: rcar-du: lvds: Use drm_bridge_init()
> >   drm: rcar-du: lvds: Don't set drm_bridge private pointer
> >   drm/sti: Use drm_bridge_init()
> >   drm/msm: Use drm_bridge_init()
> > 
> >  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c  |  5 ++-
> >  .../drm/bridge/analogix/analogix-anx6345.c    |  5 ++-
> >  .../drm/bridge/analogix/analogix-anx78xx.c    |  8 ++---
> >  .../drm/bridge/analogix/analogix_dp_core.c    |  5 ++-
> >  drivers/gpu/drm/bridge/cdns-dsi.c             |  4 +--
> >  drivers/gpu/drm/bridge/dumb-vga-dac.c         |  6 ++--
> >  drivers/gpu/drm/bridge/lvds-encoder.c         |  7 ++--
> >  .../bridge/megachips-stdpxxxx-ge-b850v3-fw.c  |  4 +--
> >  drivers/gpu/drm/bridge/nxp-ptn3460.c          |  4 +--
> >  drivers/gpu/drm/bridge/panel.c                |  7 ++--
> >  drivers/gpu/drm/bridge/parade-ps8622.c        |  3 +-
> >  drivers/gpu/drm/bridge/sii902x.c              |  5 ++-
> >  drivers/gpu/drm/bridge/sii9234.c              |  3 +-
> >  drivers/gpu/drm/bridge/sil-sii8620.c          |  3 +-
> >  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c     |  7 ++--
> >  drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c |  7 ++--
> >  drivers/gpu/drm/bridge/tc358764.c             |  4 +--
> >  drivers/gpu/drm/bridge/tc358767.c             |  3 +-
> >  drivers/gpu/drm/bridge/thc63lvd1024.c         |  7 ++--
> >  drivers/gpu/drm/bridge/ti-sn65dsi86.c         |  5 ++-
> >  drivers/gpu/drm/bridge/ti-tfp410.c            |  5 ++-
> >  drivers/gpu/drm/drm_bridge.c                  | 34 ++++++++++++++++++-
> >  drivers/gpu/drm/exynos/exynos_drm_mic.c       |  8 +----
> >  drivers/gpu/drm/i2c/tda998x_drv.c             |  6 +---
> >  drivers/gpu/drm/mcde/mcde_dsi.c               |  3 +-
> >  drivers/gpu/drm/mediatek/mtk_hdmi.c           |  4 +--
> >  drivers/gpu/drm/msm/dsi/dsi_manager.c         |  4 +--
> >  drivers/gpu/drm/msm/edp/edp_bridge.c          |  3 +-
> >  drivers/gpu/drm/msm/hdmi/hdmi_bridge.c        |  4 +--
> >  drivers/gpu/drm/rcar-du/rcar_lvds.c           |  5 ++-
> >  drivers/gpu/drm/sti/sti_dvo.c                 |  4 +--
> >  drivers/gpu/drm/sti/sti_hda.c                 |  3 +-
> >  drivers/gpu/drm/sti/sti_hdmi.c                |  3 +-
> >  include/drm/drm_bridge.h                      | 15 +++++++-
> >  34 files changed, 100 insertions(+), 103 deletions(-)
> > 
> 
> Can you check it doesn't collides with Boris 1-7 of "drm: Add support for bus-format negotiation" patches he just pushed on drm-misc-next ?

Thanks for the heads-up. There's no technical conflict but the build fails.
I'll fix it for v3 after I get the de-midlayering of drm_bridge done
(see https://patchwork.freedesktop.org/patch/343643/?series=70432&rev=1 for
context) and the s/bridge->dev/bridge->drm/ patch merged
(https://patchwork.freedesktop.org/patch/343824/).

> 
> Neil
> 

-- 
Mihail





More information about the Freedreno mailing list