Skip to content
Snippets Groups Projects
  1. Nov 12, 2021
  2. Oct 15, 2021
  3. Jul 28, 2021
  4. May 07, 2021
  5. Apr 20, 2021
  6. Jan 05, 2021
  7. Nov 12, 2020
  8. Jul 10, 2020
    • Liu Ying's avatar
      drm/bridge: dw-hdmi: Always add the bridge in the global bridge list · 0bf4f5b5
      Liu Ying authored
      
      It doesn't hurt to add the bridge in the global bridge list also for
      platform specific dw-hdmi drivers which are based on the component
      framework.  This can be achieved by moving the drm_bridge_add() function
      call from dw_hdmi_probe() to __dw_hdmi_probe().  A counterpart movement
      for drm_bridge_remove() is also needed then.  Moreover, since drm_bridge_add()
      initializes &bridge->hpd_mutex, this may help those platform specific
      dw-hdmi drivers(based on the component framework) avoid accessing the
      uninitialized mutex in drm_bridge_hpd_notify() which is called in
      dw_hdmi_irq().  Putting drm_bridge_add() in __dw_hdmi_probe() just before
      it returns successfully should bring no logic change for platforms based
      on the DRM bridge API, which is a good choice from safety point of view.
      Also, __dw_hdmi_probe() is renamed to dw_hdmi_probe() since dw_hdmi_probe()
      does nothing else but calling __dw_hdmi_probe().  Similar renaming applies
      to the __dw_hdmi_remove()/dw_hdmi_remove() pair.
      
      Fixes: ec971aaa ("drm: bridge: dw-hdmi: Make connector creation optional")
      Cc: Andrzej Hajda <a.hajda@samsung.com>
      Cc: Neil Armstrong <narmstrong@baylibre.com>
      Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
      Cc: Jonas Karlman <jonas@kwiboo.se>
      Cc: Jernej Skrabec <jernej.skrabec@siol.net>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Boris Brezillon <boris.brezillon@collabora.com>
      Cc: Jerome Brunet <jbrunet@baylibre.com>
      Cc: Cheng-Yi Chiang <cychiang@chromium.org>
      Cc: Dariusz Marcinkiewicz <darekm@google.com>
      Cc: Archit Taneja <architt@codeaurora.org>
      Cc: Jose Abreu <joabreu@synopsys.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: dri-devel@lists.freedesktop.org
      Cc: NXP Linux Team <linux-imx@nxp.com>
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/1594260156-8316-2-git-send-email-victor.liu@nxp.com
      0bf4f5b5
    • Liu Ying's avatar
      drm/bridge: dw-hdmi: Don't cleanup i2c adapter and ddc ptr in __dw_hdmi_probe() bailout path · 2ae53e79
      Liu Ying authored
      
      It's unnecessary to cleanup the i2c adapter and the ddc pointer in
      the bailout path of  __dw_hdmi_probe(), since the adapter is not
      added and the ddc pointer is not set.
      
      Fixes: a23d6265 ("drm: bridge: dw-hdmi: Extract PHY interrupt setup to a function")
      Cc: Andrzej Hajda <a.hajda@samsung.com>
      Cc: Neil Armstrong <narmstrong@baylibre.com>
      Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
      Cc: Jonas Karlman <jonas@kwiboo.se>
      Cc: Jernej Skrabec <jernej.skrabec@siol.net>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Boris Brezillon <boris.brezillon@collabora.com>
      Cc: Jerome Brunet <jbrunet@baylibre.com>
      Cc: Cheng-Yi Chiang <cychiang@chromium.org>
      Cc: Dariusz Marcinkiewicz <darekm@google.com>
      Cc: Archit Taneja <architt@codeaurora.org>
      Cc: Jose Abreu <joabreu@synopsys.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: NXP Linux Team <linux-imx@nxp.com>
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/1594260156-8316-1-git-send-email-victor.liu@nxp.com
      2ae53e79
  9. Jun 23, 2020
  10. Mar 24, 2020
  11. Mar 10, 2020
  12. Mar 05, 2020
  13. Feb 26, 2020
    • Laurent Pinchart's avatar
      drm/bridge: Extend bridge API to disable connector creation · a25b988f
      Laurent Pinchart authored
      
      Most bridge drivers create a DRM connector to model the connector at the
      output of the bridge. This model is historical and has worked pretty
      well so far, but causes several issues:
      
      - It prevents supporting more complex display pipelines where DRM
      connector operations are split over multiple components. For instance a
      pipeline with a bridge connected to the DDC signals to read EDID data,
      and another one connected to the HPD signal to detect connection and
      disconnection, will not be possible to support through this model.
      
      - It requires every bridge driver to implement similar connector
      handling code, resulting in code duplication.
      
      - It assumes that a bridge will either be wired to a connector or to
      another bridge, but doesn't support bridges that can be used in both
      positions very well (although there is some ad-hoc support for this in
      the analogix_dp bridge driver).
      
      In order to solve these issues, ownership of the connector should be
      moved to the display controller driver (where it can be implemented
      using helpers provided by the core).
      
      Extend the bridge API to allow disabling connector creation in bridge
      drivers as a first step towards the new model. The new flags argument to
      the bridge .attach() operation allows instructing the bridge driver to
      skip creating a connector. Unconditionally set the new flags argument to
      0 for now to keep the existing behaviour, and modify all existing bridge
      drivers to return an error when connector creation is not requested as
      they don't support this feature yet.
      
      The change is based on the following semantic patch, with manual review
      and edits.
      
      @ rule1 @
      identifier funcs;
      identifier fn;
      @@
       struct drm_bridge_funcs funcs = {
       	...,
       	.attach = fn
       };
      
      @ depends on rule1 @
      identifier rule1.fn;
      identifier bridge;
      statement S, S1;
      @@
       int fn(
       	struct drm_bridge *bridge
      +	, enum drm_bridge_attach_flags flags
       )
       {
       	... when != S
      +	if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) {
      +		DRM_ERROR("Fix bridge driver to make connector optional!");
      +		return -EINVAL;
      +	}
      +
       	S1
       	...
       }
      
      @ depends on rule1 @
      identifier rule1.fn;
      identifier bridge, flags;
      expression E1, E2, E3;
      @@
       int fn(
       	struct drm_bridge *bridge,
       	enum drm_bridge_attach_flags flags
       ) {
       <...
       drm_bridge_attach(E1, E2, E3
      +	, flags
       )
       ...>
       }
      
      @@
      expression E1, E2, E3;
      @@
       drm_bridge_attach(E1, E2, E3
      +	, 0
       )
      
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Tested-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200226112514.12455-10-laurent.pinchart@ideasonboard.com
      a25b988f
  14. Oct 29, 2019
  15. Oct 15, 2019
  16. Oct 10, 2019
  17. Oct 07, 2019
  18. Sep 13, 2019
  19. Aug 28, 2019
  20. Aug 20, 2019
Loading