20 Jul, 2020

2 commits

  • flags is unused since the driver was introduced in commit 45d59d704080
    ("drm: Add new driver for MXSFB controller").

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/20200716174139.16602-1-u.kleine-koenig@pengutronix.de

    Uwe Kleine-König
     
  • In contrast to other display controllers on imx like DCSS and ipuv3
    lcdif/mxsfb does not support detiling e.g. vivante tiled layouts.
    Since mesa might assume otherwise make it explicit that only
    DRM_FORMAT_MOD_LINEAR is supported.

    Signed-off-by: Guido Günther
    Reviewed-by: Lucas Stach
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/26877532e272c12a74c33188e2a72abafc9a2e1c.1584973664.git.agx@sigxcpu.org

    Guido Günther
     

10 Jun, 2020

2 commits

  • DRM_GEM_CMA_DRIVER_OPS sets the functions in struct drm_driver
    to their defaults. No functional changes are made.

    Signed-off-by: Thomas Zimmermann
    Reviewed-by: Emil Velikov
    Link: https://patchwork.freedesktop.org/patch/msgid/20200605073247.4057-29-tzimmermann@suse.de

    Thomas Zimmermann
     
  • Create GEM objects with drm_gem_cma_create_object_default_funcs(), which
    allocates the object and sets CMA's default object functions. Corresponding
    callbacks in struct drm_driver are cleared. No functional changes are made.

    Driver and object-function instances use the same callback functions, with
    the exception of vunmap. The implementation of vunmap is empty and left out
    in CMA's default object functions.

    v3:
    * convert to DRIVER_OPS macro in a separate patch

    Signed-off-by: Thomas Zimmermann
    Reviewed-by: Emil Velikov
    Link: https://patchwork.freedesktop.org/patch/msgid/20200605073247.4057-28-tzimmermann@suse.de

    Thomas Zimmermann
     

10 Dec, 2019

1 commit

  • To facilitate moving connector creation to display drivers,
    decouple the drm_connector from drm_panel.

    This patch adds a connector argument to drm_panel_get_modes().

    All users of drm_panel_get_modes() already had the connector
    available, so updating users was trivial.

    With this patch drm_panel no longer keeps a reference to the drm_connector.

    Signed-off-by: Sam Ravnborg
    Reviewed-by: Laurent Pinchart
    Reviewed-by: Linus Walleij
    Acked-by: Jeffrey Hugo
    Cc: Thierry Reding
    Cc: Laurent Pinchart
    Cc: Sam Ravnborg
    Cc: Andrzej Hajda
    Cc: Neil Armstrong
    Cc: Jonas Karlman
    Cc: Jernej Skrabec
    Cc: Maarten Lankhorst
    Cc: Maxime Ripard
    Cc: David Airlie
    Cc: Daniel Vetter
    Cc: Inki Dae
    Cc: Joonyoung Shim
    Cc: Seung-Woo Kim
    Cc: Kyungmin Park
    Cc: Kukjin Kim
    Cc: Krzysztof Kozlowski
    Cc: Stefan Agner
    Cc: Alison Wang
    Cc: Philipp Zabel
    Cc: Shawn Guo
    Cc: Sascha Hauer
    Cc: Pengutronix Kernel Team
    Cc: Fabio Estevam
    Cc: NXP Linux Team
    Cc: CK Hu
    Cc: Matthias Brugger
    Cc: Marek Vasut
    Cc: Tomi Valkeinen
    Cc: Kieran Bingham
    Cc: Sandy Huang
    Cc: "Heiko Stübner"
    Cc: Benjamin Gaignard
    Cc: Vincent Abriou
    Cc: Chen-Yu Tsai
    Cc: Jonathan Hunter
    Cc: Torsten Duwe
    Cc: Vasily Khoruzhick
    Cc: Icenowy Zheng
    Cc: Sean Paul
    Cc: Linus Walleij
    Cc: Boris Brezillon
    Cc: Hariprasad Kelam
    Cc: Alexios Zavras
    Cc: Brian Masney
    Cc: Rob Clark
    Cc: Thomas Gleixner
    Cc: Allison Randal
    Cc: Shayenne Moura
    Cc: Abhinav Kumar
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-samsung-soc@vger.kernel.org
    Cc: linux-mediatek@lists.infradead.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: linux-rockchip@lists.infradead.org
    Cc: linux-tegra@vger.kernel.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20191207140353.23967-7-sam@ravnborg.org

    Sam Ravnborg
     

15 Oct, 2019

2 commits

  • The bridge might have special requirmentes on the input bus. This
    is e.g. used by the imx-nwl bridge.

    Signed-off-by: Guido Günther
    Reviewed-by: Stefan Agner
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/1567078215-31601-3-git-send-email-robert.chiras@nxp.com

    Guido Günther
     
  • Currently, the MXSFB DRM driver only supports a panel. But, its output
    display signal can also be redirected to another encoder, like a DSI
    controller. In this case, that DSI controller may act like a drm_bridge.
    In order support this use-case too, this patch adds support for drm_bridge
    in mxsfb.

    Signed-off-by: Robert Chiras
    Tested-by: Guido Günther
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/1567078215-31601-2-git-send-email-robert.chiras@nxp.com

    Robert Chiras
     

13 Aug, 2019

1 commit


10 Aug, 2019

1 commit

  • Use the drm_panel_get_modes() function.

    Signed-off-by: Sam Ravnborg
    Cc: Marek Vasut
    Acked-by: Stefan Agner
    Reviewed-by: Emil Velikov
    Cc: Shawn Guo
    Cc: Sascha Hauer
    Cc: Pengutronix Kernel Team
    Cc: Fabio Estevam
    Cc: NXP Linux Team
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20190804201637.1240-8-sam@ravnborg.org

    Sam Ravnborg
     

16 Jul, 2019

1 commit

  • Drop use of the deprecated drmP.h header file.

    While touching the list of include files divided them
    in blocks and sort them within each block.
    Fixed fallout in the relevant files.

    Signed-off-by: Sam Ravnborg
    Acked-by: Stefan Agner
    Acked-by: Emil Velikov
    Cc: Marek Vasut
    Cc: David Airlie
    Cc: Daniel Vetter
    Cc: Shawn Guo
    Cc: Sascha Hauer
    Cc: Pengutronix Kernel Team
    Cc: Fabio Estevam
    Cc: NXP Linux Team
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20190630061922.7254-6-sam@ravnborg.org

    Sam Ravnborg
     

22 Jun, 2019

1 commit

  • They're the default.

    Aside: Would be really nice to switch the others over to
    drm_gem_object_funcs.

    Reviewed-by: Eric Anholt
    Reviewed-by: Emil Velikov
    Acked-by: Stefan Agner
    Signed-off-by: Daniel Vetter
    Cc: Marek Vasut
    Cc: Stefan Agner
    Cc: Shawn Guo
    Cc: Sascha Hauer
    Cc: Pengutronix Kernel Team
    Cc: Fabio Estevam
    Cc: NXP Linux Team
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20190614203615.12639-23-daniel.vetter@ffwll.ch

    Daniel Vetter
     

21 Jun, 2019

1 commit

  • Split out to make the functional changes stick out more.

    All places where DRIVER_PRIME was used have been removed in previous
    patches already.

    v2: amdgpu gained DRIVER_SYNCOBJ_TIMELINE.

    v3: amdgpu lost DRIVER_SYNCOBJ_TIMELINE.

    v4: Don't add a space in i915_drv.c (Sam)

    v5: Add note that previous patches removed all the DRIVER_PRIME users
    already (Emil).

    v6: Fixupe ingenic (new driver) while applying.

    Cc: Sam Ravnborg
    Reviewed-by: Emil Velikov
    Reviewed-by: Eric Anholt
    Signed-off-by: Daniel Vetter
    Cc: amd-gfx@lists.freedesktop.org
    Cc: etnaviv@lists.freedesktop.org
    Cc: freedreno@lists.freedesktop.org
    Cc: intel-gfx@lists.freedesktop.org
    Cc: lima@lists.freedesktop.org
    Cc: linux-amlogic@lists.infradead.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-arm-msm@vger.kernel.org
    Cc: linux-aspeed@lists.ozlabs.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: linux-rockchip@lists.infradead.org
    Cc: linux-samsung-soc@vger.kernel.org
    Cc: linux-stm32@st-md-mailman.stormreply.com
    Cc: linux-tegra@vger.kernel.org
    Cc: nouveau@lists.freedesktop.org
    Cc: NXP Linux Team
    Cc: spice-devel@lists.freedesktop.org
    Cc: virtualization@lists.linux-foundation.org
    Cc: VMware Graphics
    Cc: xen-devel@lists.xenproject.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20190617153924.414-1-daniel.vetter@ffwll.ch

    Daniel Vetter
     

31 May, 2019

1 commit

  • Based on 3 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [kishon] [vijay] [abraham]
    [i] [kishon]@[ti] [com] this program is distributed in the hope that
    it will be useful but without any warranty without even the implied
    warranty of merchantability or fitness for a particular purpose see
    the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [graeme] [gregory]
    [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i]
    [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema]
    [hk] [hemahk]@[ti] [com] this program is distributed in the hope
    that it will be useful but without any warranty without even the
    implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1105 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

21 May, 2019

1 commit


18 Mar, 2019

1 commit

  • The DRM_BUS_FLAG_PIXDATA_(POS|NEG)EDGE and
    DRM_BUS_FLAG_SYNC_(POS|NEG)EDGE flags are deprecated in favour of the
    new DRM_BUS_FLAG_PIXDATA_(DRIVE|SAMPLE)_(POS|NEG)EDGE and
    new DRM_BUS_FLAG_SYNC_(DRIVE|SAMPLE)_(POS|NEG)EDGE flags. Replace them
    through the code.

    This effectively changes the value of the .sampling_edge bridge timings
    field in the dumb-vga-dac driver. This is safe to do as no driver
    consumes these values yet.

    Signed-off-by: Laurent Pinchart
    Acked-by: Linus Walleij
    Reviewed-by: Stefan Agner
    Tested-by: Sebastian Reichel
    Signed-off-by: Tomi Valkeinen

    Laurent Pinchart
     

29 Jan, 2019

1 commit

  • If a non-legacy driver calls these it's valid to assume there is
    interrupt support. The flag is really only needed for legacy drivers,
    which control IRQ enabling/disabling through the DRM_IOCTL_CONTROL
    legacy IOCTL.

    Also remove all the flag usage from non-legacy drivers.

    v2: Review from Emil:
    - improve commit message
    - I forgot hibmc, fix that

    Cc: linux-arm-kernel@lists.infradead.org
    Cc: intel-gfx@lists.freedesktop.org
    Cc: linux-amlogic@lists.infradead.org
    Cc: linux-arm-msm@vger.kernel.org
    Cc: freedreno@lists.freedesktop.org
    Cc: virtualization@lists.linux-foundation.org
    Cc: spice-devel@lists.freedesktop.org
    Cc: amd-gfx@lists.freedesktop.org
    Cc: linux-renesas-soc@vger.kernel.org
    Reviewed-by: Emil Velikov
    Reviewed-by: Sam Ravnborg
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20190129104248.26607-1-daniel.vetter@ffwll.ch

    Daniel Vetter
     

24 Jan, 2019

1 commit

  • Having the probe helper stuff (which pretty much everyone needs) in
    the drm_crtc_helper.h file (which atomic drivers should never need) is
    confusing. Split them out.

    To make sure I actually achieved the goal here I went through all
    drivers. And indeed, all atomic drivers are now free of
    drm_crtc_helper.h includes.

    v2: Make it compile. There was so much compile fail on arm drivers
    that I figured I'll better not include any of the acks on v1.

    v3: Massive rebase because i915 has lost a lot of drmP.h includes, but
    not all: Through drm_crtc_helper.h > drm_modeset_helper.h -> drmP.h
    there was still one, which this patch largely removes. Which means
    rolling out lots more includes all over.

    This will also conflict with ongoing drmP.h cleanup by others I
    expect.

    v3: Rebase on top of atomic bochs.

    v4: Review from Laurent for bridge/rcar/omap/shmob/core bits:
    - (re)move some of the added includes, use the better include files in
    other places (all suggested from Laurent adopted unchanged).
    - sort alphabetically

    v5: Actually try to sort them, and while at it, sort all the ones I
    touch.

    v6: Rebase onto i915 changes.

    v7: Rebase once more.

    Acked-by: Harry Wentland
    Acked-by: Sam Ravnborg
    Cc: Sam Ravnborg
    Cc: Jani Nikula
    Cc: Laurent Pinchart
    Acked-by: Rodrigo Vivi
    Acked-by: Benjamin Gaignard
    Acked-by: Jani Nikula
    Acked-by: Neil Armstrong
    Acked-by: Oleksandr Andrushchenko
    Acked-by: CK Hu
    Acked-by: Alex Deucher
    Acked-by: Sam Ravnborg
    Reviewed-by: Laurent Pinchart
    Acked-by: Liviu Dudau
    Signed-off-by: Daniel Vetter
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: virtualization@lists.linux-foundation.org
    Cc: etnaviv@lists.freedesktop.org
    Cc: linux-samsung-soc@vger.kernel.org
    Cc: intel-gfx@lists.freedesktop.org
    Cc: linux-mediatek@lists.infradead.org
    Cc: linux-amlogic@lists.infradead.org
    Cc: linux-arm-msm@vger.kernel.org
    Cc: freedreno@lists.freedesktop.org
    Cc: nouveau@lists.freedesktop.org
    Cc: spice-devel@lists.freedesktop.org
    Cc: amd-gfx@lists.freedesktop.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: linux-rockchip@lists.infradead.org
    Cc: linux-stm32@st-md-mailman.stormreply.com
    Cc: linux-tegra@vger.kernel.org
    Cc: xen-devel@lists.xen.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20190117210334.13234-1-daniel.vetter@ffwll.ch

    Daniel Vetter
     

14 Jan, 2019

1 commit

  • The CMA helper is already using the drm_fb_helper_generic_probe part of
    the generic fbdev emulation. This patch makes full use of the generic
    fbdev emulation by using its drm_client callbacks. This means that
    drm_mode_config_funcs->output_poll_changed and drm_driver->lastclose are
    now handled by the emulation code. Additionally fbdev unregister happens
    automatically on drm_dev_unregister().

    The drm_fbdev_generic_setup() call is put after drm_dev_register() in the
    driver. This is done to highlight the fact that fbdev emulation is an
    internal client that makes use of the driver, it is not part of the
    driver as such. If fbdev setup fails, an error is printed, but the driver
    succeeds probing.

    Cc: Marek Vasut
    Signed-off-by: Noralf Trønnes
    Acked-by: Sam Ravnborg
    Link: https://patchwork.freedesktop.org/patch/msgid/20181128212713.43500-3-noralf@tronnes.org

    Noralf Trønnes
     

25 Nov, 2018

1 commit

  • This patch unifies the naming of DRM functions for reference counting as
    requested on Documentation/gpu/todo.rst

    Signed-off-by: Fernando Ramos
    Acked-by: Boris Brezillon
    Acked-by: Alexey Brodkin
    Acked-by: Stefan Agner
    Reviewed-by: Linus Walleij
    Signed-off-by: Linus Walleij
    Link: https://patchwork.freedesktop.org/patch/msgid/20181115221634.22715-4-greenfoo@gluegarage.com

    Fernando Ramos
     

27 Sep, 2018

5 commits

  • The lcdif block is only powered on when display is active so plane
    updates when not enabled are not valid. Writing to an unpowered IP block
    is mostly ignored but can trigger bus errors on some chips.

    Prevent this situation by switching to drm_atomic_helper_commit_tail_rpm
    and having the drm core ensure atomic_plane_update is only called while
    the crtc is active. This avoids having to keep track of "enabled" bits
    inside the mxsfb driver.

    This also requires handling the vblank event for disable from
    mxsfb_pipe_disable.

    Signed-off-by: Leonard Crestez
    Suggested-by: Stefan Agner
    Reviewed-by: Stefan Agner
    Reviewed-by: Sean Paul
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/c19c0c00ed42e8e8f7965aa4821ac295abc5cd05.1537191359.git.leonard.crestez@nxp.com

    Leonard Crestez
     
  • Since power to the lcdif block can be lost on suspend implement
    PM_SLEEP_OPS using drm_mode_config_helper_suspend/resume to save/restore
    the current mode.

    Signed-off-by: Leonard Crestez
    Reviewed-by: Stefan Agner
    Reviewed-by: Sean Paul
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/cfa1a4083eefd112362e640deeb2e120584ac3f5.1537191359.git.leonard.crestez@nxp.com

    Leonard Crestez
     
  • Adding lcdif nodes to a power domain currently results in
    black/corrupted screens or hangs because power is not correctly enabled
    when required.

    Ensure power is on when display is active by adding
    pm_runtime_get/put_sync to mxsfb_pipe_enable/disable.

    Signed-off-by: Leonard Crestez
    Reviewed-by: Stefan Agner
    Reviewed-by: Sean Paul
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/ee88148399c63494cda4129b05444b0ac331b7a7.1537191359.git.leonard.crestez@nxp.com

    Leonard Crestez
     
  • LCDIF will repeatedly display data from CUR_BUF and set CUR_BUF to
    NEXT_BUF when done. Since we are only ever writing to NEXT_BUF the
    display will show an initial corrupt frame.

    Fix by writing the FB paddr to both CUR_BUF and NEXT_BUF when
    activating the CRTC.

    Signed-off-by: Leonard Crestez
    Tested-by: Philipp Zabel
    Reviewed-by: Stefan Agner
    Reviewed-by: Sean Paul
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/7cdac9c064cc2b8a3d237934f186da98cefe6cb3.1537191359.git.leonard.crestez@nxp.com

    Leonard Crestez
     
  • The main axi clk is disabled at the end of mxsfb_crtc_mode_set_nofb and
    immediately reenabled in mxsfb_enable_controller.

    Avoid this by moving the handling of axi clk one level up to
    mxsfb_crtc_enable. Do the same for mxsfb_crtc_disable for symmetry.

    This shouldn't have any functional effect.

    Signed-off-by: Leonard Crestez
    Reviewed-by: Stefan Agner
    Reviewed-by: Sean Paul
    Signed-off-by: Stefan Agner
    Link: https://patchwork.freedesktop.org/patch/msgid/985c1f1cad250bd9ca154b3e4b3f913c310eeabd.1537191359.git.leonard.crestez@nxp.com

    Leonard Crestez
     

24 Apr, 2018

1 commit


29 Mar, 2018

1 commit

  • tinydrm enable hook wants to play around with the new fb in
    .atomic_enable(), thus we'll need access to the plane state.

    Performed with coccinelle:
    @r1@
    identifier F =~ ".*enable$";
    identifier P, CS;
    @@
    F(
    struct drm_simple_display_pipe *P
    ,struct drm_crtc_state *CS
    + ,struct drm_plane_state *plane_state
    )
    {
    ...
    }

    @@
    struct drm_simple_display_pipe *P;
    expression E;
    @@
    {
    + struct drm_plane *plane;
    ...
    + plane = &P->plane;
    P->funcs->enable(P
    ,E
    + ,plane->state
    );
    ...
    }

    @@
    identifier P, CS;
    @@
    struct drm_simple_display_pipe_funcs {
    ...
    void (*enable)(struct drm_simple_display_pipe *P
    ,struct drm_crtc_state *CS
    + ,struct drm_plane_state *plane_state
    );
    ...
    };

    v2: Pimp the commit message (David)

    Cc: Marek Vasut
    Cc: Eric Anholt
    Cc: David Lechner
    Cc: "Noralf Trønnes"
    Cc: Linus Walleij
    Signed-off-by: Ville Syrjälä
    Link: https://patchwork.freedesktop.org/patch/msgid/20180322202738.25817-1-ville.syrjala@linux.intel.com
    Reviewed-by: Noralf Trønnes

    Ville Syrjälä
     

23 Feb, 2018

1 commit


01 Oct, 2017

1 commit


17 Aug, 2017

1 commit


08 Aug, 2017

1 commit

  • It's dead code, the core handles all this directly now.

    The only special case is nouveau and tda988x which used one function
    for both legacy modeset code and -nv50 atomic world instead of 2
    vtables. But amounts to exactly the same.

    v2: Rebase over the panel/brideg refactorings in stm/ltdc.

    Signed-off-by: Daniel Vetter
    Cc: Archit Taneja
    Cc: Andrzej Hajda
    Cc: Laurent Pinchart
    Cc: Peter Senna Tschudin
    Cc: Martin Donnelly
    Cc: Martyn Welch
    Cc: Daniel Vetter
    Cc: Jani Nikula
    Cc: Sean Paul
    Cc: David Airlie
    Cc: Inki Dae
    Cc: Joonyoung Shim
    Cc: Seung-Woo Kim
    Cc: Kyungmin Park
    Cc: Kukjin Kim
    Cc: Krzysztof Kozlowski
    Cc: Stefan Agner
    Cc: Alison Wang
    Cc: Russell King
    Cc: Philipp Zabel
    Cc: CK Hu
    Cc: Matthias Brugger
    Cc: Neil Armstrong
    Cc: Carlo Caione
    Cc: Kevin Hilman
    Cc: Marek Vasut
    Cc: Ben Skeggs
    Cc: Tomi Valkeinen
    Cc: Eric Anholt
    Cc: Mark Yao
    Cc: Heiko Stuebner
    Cc: Benjamin Gaignard
    Cc: Vincent Abriou
    Cc: Yannick Fertre
    Cc: Philippe Cornu
    Cc: Maxime Ripard
    Cc: Chen-Yu Tsai
    Cc: Thierry Reding
    Cc: Jonathan Hunter
    Cc: Jyri Sarha
    Cc: Gerd Hoffmann
    Cc: Shawn Guo
    Cc: John Stultz
    Cc: Lars-Peter Clausen
    Cc: Sergei Shtylyov
    Cc: Jeffy Chen
    Cc: Tomeu Vizoso
    Cc: Yakir Yang
    Cc: Marek Szyprowski
    Cc: Jose Abreu
    Cc: Romain Perier
    Cc: Kieran Bingham
    Cc: Xinliang Liu
    Cc: Alexey Brodkin
    Cc: Alex Deucher
    Cc: Rongrong Zou
    Cc: Rob Clark
    Cc: Hai Li
    Cc: "Noralf Trønnes"
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-samsung-soc@vger.kernel.org
    Cc: intel-gfx@lists.freedesktop.org
    Cc: linux-mediatek@lists.infradead.org
    Cc: linux-amlogic@lists.infradead.org
    Cc: nouveau@lists.freedesktop.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: linux-rockchip@lists.infradead.org
    Cc: linux-tegra@vger.kernel.org
    Cc: virtualization@lists.linux-foundation.org
    Cc: zain wang
    Cc: Baoyou Xie
    Cc: Boris Brezillon
    Reviewed-by: Maarten Lankhorst
    Link: https://patchwork.freedesktop.org/patch/msgid/20170725080122.20548-8-daniel.vetter@ffwll.ch
    Acked-by: Neil Armstrong
    Reviewed-by: Neil Armstrong
    Acked-by: Philipp Zabel
    Acked-by: Archit Taneja
    Tested-by: Philippe Cornu (on stm)
    Reviewed-by: Laurent Pinchart
    Acked-by: Shawn Guo
    Acked-by: Shawn Guo
    Acked-by: Noralf Trønnes
    Acked-by: Vincent Abriou

    Daniel Vetter
     

02 Aug, 2017

1 commit

  • This is the plumbing for supporting fb modifiers on planes. Modifiers
    have already been introduced to some extent, but this series will extend
    this to allow querying modifiers per plane. Based on this, the client to
    enable optimal modifications for framebuffers.

    This patch simply allows the DRM drivers to initialize their list of
    supported modifiers upon initializing the plane.

    v2: A minor addition from Daniel

    v3:
    * Updated commit message
    * s/INVALID/DRM_FORMAT_MOD_INVALID (Liviu)
    * Remove some excess newlines (Liviu)
    * Update comment for > 64 modifiers (Liviu)

    v4: Minor comment adjustments (Liviu)

    v5: Some new platforms added due to rebase

    v6: Add some missed plane inits (or maybe they're new - who knows at
    this point) (Daniel)

    Signed-off-by: Ben Widawsky
    Reviewed-by: Daniel Stone (v2)
    Reviewed-by: Liviu Dudau
    Signed-off-by: Daniel Stone

    Ben Widawsky
     

18 Jul, 2017

1 commit

  • CMA helpers are struct_mutex free, and so is the mxsfb itself. And
    that's the only valid reason for using gem_free_object.

    Reviewed-by: Eric Anholt
    Signed-off-by: Daniel Vetter
    Cc: Marek Vasut
    Link: https://patchwork.freedesktop.org/patch/msgid/20170717151045.4188-1-daniel.vetter@ffwll.ch

    Daniel Vetter
     

23 Jun, 2017

1 commit

  • Almost right but still racy, it's called before the interrupts are
    uninstalled. So let's just drop it.

    Cc: Marek Vasut
    Reviewed-by: Marek Vasut
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/20170621082850.13224-7-daniel.vetter@ffwll.ch

    Daniel Vetter
     

16 Jun, 2017

1 commit

  • According to the eLCDIF initialization steps listed in the MX6SX
    Reference Manual the eLCDIF block reset is mandatory.

    Without performing the eLCDIF reset the display shows garbage content
    when the kernel boots.

    In earlier tests this issue has not been observed because the bootloader
    was previously showing a splash screen and the bootloader display driver
    does properly implement the eLCDIF reset.

    Add the eLCDIF reset to the driver, so that it can operate correctly
    independently of the bootloader.

    Tested on a imx6sx-sdb board.

    Cc:
    Signed-off-by: Fabio Estevam
    Reviewed-by: Marek Vasut
    Signed-off-by: Sean Paul
    Link: http://patchwork.freedesktop.org/patch/msgid/1494007301-14535-1-git-send-email-fabio.estevam@nxp.com

    Fabio Estevam
     

07 Apr, 2017

1 commit

  • Similar to the previous commit, convert drivers open coding OF graph
    parsing to use drm_of_find_panel_or_bridge instead.

    This changes some error messages to debug messages (in the graph core).
    Graph connections are often "no connects" depending on the particular
    board, so we want to avoid spurious messages. Plus the kernel is not a
    DT validator.

    Signed-off-by: Rob Herring
    Reviewed-by: Archit Taneja
    Tested-by: Philipp Zabel
    Acked-by: Maxime Ripard
    [seanpaul dropped rockchip changes since they're now obsolete]
    Signed-off-by: Sean Paul

    Rob Herring
     

23 Mar, 2017

1 commit


14 Mar, 2017

1 commit

  • Less code ftw.

    This converts all drivers except the tinydrm helper module. That one
    needs more work, since it gets the THIS_MODULE reference from
    tinydrm.ko instead of the actual driver module like it should.
    Probably needs a similar trick like I used here with generating the
    entire struct with a macro.

    Cc: Noralf Trønnes
    Reviewed-by: Sean Paul
    Reviewed-by: Liviu Dudau
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/20170308141257.12119-24-daniel.vetter@ffwll.ch

    Daniel Vetter
     

10 Mar, 2017

3 commits

  • Currently when the 'power-supply' regulator is passed via device tree
    it does not actually work since drm_panel_prepare()/drm_panel_enable()
    are never called.

    Quoting Thierry Reding: "It should really call drm_panel_prepare() and
    drm_panel_enable() while switching on the display pipeline and
    drm_panel_disable(), followed by drm_panel_unprepare() while switching
    off the display pipeline."

    So do as suggested, so that the 'power-supply' regulator can be functional.

    Reported-by: Breno Lima
    Suggested-by: Thierry Reding
    Signed-off-by: Fabio Estevam
    Tested-by: Marek Vasut
    Signed-off-by: Dave Airlie

    Fabio Estevam
     
  • Currently the framebuffer content is displayed with incorrect offsets
    in both the vertical and horizontal directions.

    The fbdev version of the driver does not show this problem. Breno Lima
    dumped the eLCDIF controller registers on both the drm and fbdev drivers
    and noticed that the VDCTRL3 register is configured incorrectly in the
    drm driver.

    The fbdev driver calculates the vertical and horizontal wait counts
    of the VDCTRL3 register by doing: back porch + sync length.

    Looking at the horizontal and vertical timing diagram from
    include/drm/drm_modes.h this value corresponds to:

    crtc_[hv]total - crtc_[hv]sync_start

    So fix the VDCTRL3 register setting accordingly so that the eLCDIF
    controller can properly show the framebuffer content in the correct
    position.

    Reported-by: Breno Lima
    Signed-off-by: Fabio Estevam
    Tested-by: Breno Lima
    Tested-by: Marek Vasut
    Signed-off-by: Dave Airlie

    Fabio Estevam
     
  • The mxsfb driver will crash if the mxsfb DT node has a subnode,
    but the content of the subnode is not of-graph binding with an
    endpoint linking to panel. The crash was triggered by providing
    old-style panel bindings to the mxsfb driver instead of the new
    of-graph ones.

    The problem happens in mxsfb_create_output(), which is invoked
    from mxsfb_load(). The mxsfb_create_output() iterates over all
    mxsfb DT subnode endpoints and tries to bind a panel on each
    endpoint. If there is any problem binding the panel, that is,
    mxsfb->panel == NULL, this function will return an error code,
    otherwise success 0 is returned.

    If the subnodes do not specify of-graph binding with an endpoint,
    the iteration over endpoints in mxsfb_create_output() will have
    zero cycles and the function will immediatelly return 0, but the
    mxsfb->panel will remain NULL. This is propagated back into the
    mxsfb_load(), which does not detect any problem and expects that
    the mxsfb->panel is valid, thus calls mxsfb_panel_attach(). But
    since mxsfb->panel == NULL, mxsfb_panel_attach() is called with
    first argument NULL and this crashes the kernel.

    This patch fixes the problem by explicitly checking for valid
    mxsfb->panel at the end of the iteration in mxsfb_create_output().

    Signed-off-by: Marek Vasut
    Cc: Daniel Vetter
    Cc: Dave Airlie
    Cc: Stefan Agner
    Cc: Breno Matheus Lima
    Tested-by: Breno Lima
    Signed-off-by: Dave Airlie

    Marek Vasut