Ville Syrjälä
c10496c8d2
drm: Fix some coding style issues
...
Put an empty line between the variable declarations and the code, and
use tabs for alignment.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180305144919.2881-3-ville.syrjala@linux.intel.com
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-12 22:25:44 +02:00
Christoph Fritz
4451c287eb
drm/panel: Add support for AUO G104SN02 V2 panel
...
This patch adds support for AUO G104SN02 V2 800x600 10.4" panel to DRM
simple panel driver.
Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com >
Signed-off-by: Stefan Riedmueller <s.riedmueller@phytec.de >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1513430016.1930.4.camel@googlemail.com
2018-03-12 10:08:16 +01:00
Wei Yongjun
7ff9288c55
drm/panel: ili9322: Make local symbols static
...
Fixes the following sparse warnings:
drivers/gpu/drm/panel/panel-ilitek-ili9322.c:182:12: warning:
symbol 'ili9322_inputs' was not declared. Should it be static?
drivers/gpu/drm/panel/panel-ilitek-ili9322.c:343:28: warning:
symbol 'ili9322_regmap_config' was not declared. Should it be static?
Also change ili9322_inputs to 'const char * const' to avoid
chackpatch warning.
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1514948938-19996-1-git-send-email-weiyongjun1@huawei.com
2018-03-12 10:06:19 +01:00
jan.tuerk@emtrion.com
8bf7cca9d3
dt-bindings: Add vendor prefix for emtrion GmbH
...
emtrion is a system integrator and manufacturer of embedded systems.
Website: https://www.emtrion.de
Signed-off-by: Jan Tuerk <jan.tuerk@emtrion.com >
Reviewed-by: Andreas Färber <afaerber@suse.de >
Acked-by: Rob Herring <robh@kernel.org >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171123125600.41562-3-jan.tuerk@emtrion.com
2018-03-12 10:06:00 +01:00
Philippe CORNU
2dab3bf851
drm/panel: otm8009a: Adopt SPDX identifiers
...
Add SPDX identifiers to OriseTech OTM8009a panel driver.
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180119110516.4916-1-philippe.cornu@st.com
2018-03-12 09:54:25 +01:00
Baruch Siach
6abd061df9
drm/panel: lvds: Fix driver description heading
...
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Baruch Siach <baruch@tkos.co.il >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/f80a5dd350b057d925d36f5857b5724c88da50df.1516636902.git.baruch@tkos.co.il
2018-03-12 09:53:18 +01:00
Jagan Teki
8cfe83419c
drm/panel: simple: Add support for KEO TX31D200VM0BAA
...
This adds support for the Kaohsiung Opto-Electronics.,
TX31D200VM0BAA 12.3" HSXGA LVDS panel, which can be
supported by the simple panel driver.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1517766571-409-5-git-send-email-jagan@amarulasolutions.com
2018-03-12 09:48:46 +01:00
Philippe CORNU
ded8d7fe8d
drm/panel: otm8009a: Add support for the optional power-supply
...
Add support for the optional power-supply.
Note: A "dummy regulator" is returned by devm_regulator_get()
if the optional regulator is not present in the device tree,
simplifying the source code when enabling/disabling the regulator.
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Reviewed-by: Yannick Fertré <yannick.fertre@st.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180205094532.23547-3-philippe.cornu@st.com
2018-03-12 09:46:35 +01:00
Philippe CORNU
683ad26121
dt-bindings/display/panel: otm8009a: Add optional power-supply property
...
Some boards use a dedicated voltage regulator for this panel.
Add & document this related optional power-supply property.
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Reviewed-by: Yannick Fertré <yannick.fertre@st.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180205094532.23547-2-philippe.cornu@st.com
2018-03-12 09:45:49 +01:00
Sean Paul
9f7bae2db1
drm/panel: simple: Use display_timing for lq123p1jx31
...
Convert the sharp lq123p1jx31 from using a fixed mode to specifying a
display timing with min/typ/max values. This allows us to capture the
timings set forth in the datasheet as well as the additional values that
we've cleared with the display vendor to avoid interference with the
digitizer on the Samsung Chromebook Plus (kevin).
A follow-on patch will specify the override mode for kevin devices.
Changes in v2:
- None
Changes in v3:
- None
Cc: Doug Anderson <dianders@chromium.org >
Cc: Eric Anholt <eric@anholt.net >
Cc: Heiko Stuebner <heiko@sntech.de >
Cc: Jeffy Chen <jeffy.chen@rock-chips.com >
Cc: Rob Herring <robh+dt@kernel.org >
Cc: Stéphane Marchesin <marcheu@chromium.org >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: devicetree@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-rockchip@lists.infradead.org
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Tested-by: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180208174855.55620-6-seanpaul@chromium.org
2018-03-12 09:33:53 +01:00
Sean Paul
98ccf40022
dt-bindings: Add headings to simple-panel bindings
...
In preparation for a new subnode section in a follow-on patch, add
explicit headings to the existings sections for simple-panel.
Changes in v2:
- Added
Changes in v3:
- None
Cc: Doug Anderson <dianders@chromium.org >
Cc: Eric Anholt <eric@anholt.net >
Cc: Heiko Stuebner <heiko@sntech.de >
Cc: Jeffy Chen <jeffy.chen@rock-chips.com >
Cc: Rob Herring <robh+dt@kernel.org >
Cc: Stéphane Marchesin <marcheu@chromium.org >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: devicetree@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-rockchip@lists.infradead.org
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180208174855.55620-3-seanpaul@chromium.org
2018-03-12 09:33:33 +01:00
Sean Paul
5100964d66
dt-bindings: Clarify timing subnode use as panel-timing
...
Add a note in the documentation explaining when it's appropriate to use
the display-timings subnode on its own, as well as the preferred name to
use (panel-timing).
Changes in v3:
- Added
Cc: Doug Anderson <dianders@chromium.org >
Cc: Eric Anholt <eric@anholt.net >
Cc: Heiko Stuebner <heiko@sntech.de >
Cc: Jeffy Chen <jeffy.chen@rock-chips.com >
Cc: Rob Herring <robh+dt@kernel.org >
Cc: Stéphane Marchesin <marcheu@chromium.org >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: devicetree@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-rockchip@lists.infradead.org
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Reviewed-by: Rob Herring <robh@kernel.org >
Acked-by: Thierry Reding <treding@nvidia.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180208174855.55620-2-seanpaul@chromium.org
2018-03-12 09:33:16 +01:00
Philippe CORNU
2b7ed18bed
drm/panel: Add support for Raydium RM68200 panel driver
...
This patch adds Raydium Semiconductor Corporation RM68200 5.5" 720x1280
TFT LCD panel driver (MIPI-DSI video mode).
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302153222.4377-3-philippe.cornu@st.com
2018-03-12 09:27:57 +01:00
Philippe CORNU
c6a8245e01
dt-bindings: display: panel: Add support for Raydium RM68200 DSI panel
...
The Raydium Semiconductor Corporation RM68200 is a 5.5" 720x1280
TFT LCD panel connected using a MIPI-DSI video interface.
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302153222.4377-2-philippe.cornu@st.com
2018-03-12 08:44:31 +01:00
Eric Anholt
5651e5e094
drm/panel: simple: Fix the bus format for the Ontat panel
...
This fixes bad color output. When I was first testing the device I
had the DPI hardware set to 666 mode, but apparently in the refactor
to use the bus_format information from the panel driver, I failed to
actually update the panel.
Signed-off-by: Eric Anholt <eric@anholt.net >
Fixes: e8b6f561b2 ("drm/panel: simple: Add the 7" DPI panel from Adafruit")
Cc: Thierry Reding <thierry.reding@gmail.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180309233332.1769-1-eric@anholt.net
2018-03-12 08:23:01 +01:00
Stefan Schake
1d49f2e546
drm/vc4: Enable background color fill when necessary
...
Using the hint from the plane state, we turn on the background color
to avoid display corruption from planes blending with the background.
Changes from v1:
- Use needs_bg_fill from plane state
Signed-off-by: Stefan Schake <stschake@gmail.com >
Signed-off-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Eric Anholt <eric@anholt.net >
Link: https://patchwork.freedesktop.org/patch/msgid/1520556817-97297-5-git-send-email-stschake@gmail.com
2018-03-09 11:25:11 -08:00
Stefan Schake
823646983b
drm/vc4: Move plane state to header
...
We need to reference it from the CRTC to make a decision for enabling
background color fill.
Signed-off-by: Stefan Schake <stschake@gmail.com >
Signed-off-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Eric Anholt <eric@anholt.net >
Link: https://patchwork.freedesktop.org/patch/msgid/1520556817-97297-4-git-send-email-stschake@gmail.com
2018-03-09 11:25:06 -08:00
Stefan Schake
3d67b68a6a
drm/vc4: Check if plane requires background fill
...
Considering a single plane only, we have to enable background color
when the plane has an alpha format and could be blending from the
background or when it doesn't cover the entire screen.
Changes from v1:
- Drop unrelated change
- Move needs_bg_fill to plane state
Signed-off-by: Stefan Schake <stschake@gmail.com >
Signed-off-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Eric Anholt <eric@anholt.net >
Link: https://patchwork.freedesktop.org/patch/msgid/1520556817-97297-3-git-send-email-stschake@gmail.com
2018-03-09 11:25:02 -08:00
Stefan Schake
05202c241f
drm/vc4: Set premultiplied for alpha formats
...
Alpha formats in DRM are assumed to be premultiplied, so we should be
setting the PREMULT bit in the plane configuration for HVS.
Changes from v1:
- Use correct has_alpha
Signed-off-by: Stefan Schake <stschake@gmail.com >
Signed-off-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Eric Anholt <eric@anholt.net >
Link: https://patchwork.freedesktop.org/patch/msgid/1520556817-97297-2-git-send-email-stschake@gmail.com
2018-03-09 11:24:53 -08:00
Sean Paul
60beeccc72
drm/rockchip: Don't use atomic constructs for psr
...
Instead of using timer and spinlocks, use delayed_work and
mutexes for rockchip psr. This allows us to make blocking
calls when enabling/disabling psr (which is sort of important
given we're talking over dpcd to the display).
Cc: Caesar Wang <wxt@rock-chips.com >
Cc: 征增 王 <wzz@rock-chips.com >
Cc: Stéphane Marchesin <marcheu@chromium.org >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Signed-off-by: Thierry Escande <thierry.escande@collabora.com >
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20180305222324.5872-3-enric.balletbo@collabora.com
2018-03-08 23:28:53 +01:00
zain wang
7f3c191b17
drm/rockchip: analogix_dp: set psr activate/deactivate when enable/disable bridge
...
There's a race between when bridge_disable and when vop_crtc_disable
are called. If the flush timer triggers a new psr work between these,
we will operate eDP without power shutdowned by bridge_disable. In this
case, moving activate/deactivate to enable/disable bridge to avoid it.
Cc: Stéphane Marchesin <marcheu@chromium.org >
Signed-off-by: zain wang <wzz@rock-chips.com >
Signed-off-by: Caesar Wang <wxt@rock-chips.com >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Signed-off-by: Thierry Escande <thierry.escande@collabora.com >
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20180305222324.5872-2-enric.balletbo@collabora.com
2018-03-08 23:07:01 +01:00
Jeffy Chen
8ba905f1ae
drm/rockchip: dw_hdmi: Move HDMI vpll clock enable to bind()
...
The HDMI vpll clock should be enabled when bind() is called. So move the
clk_prepare_enable of that clock to bind() function and add the missing
clk_disable_unprepare() required in error handling path and unbind().
Fixes: 12b9f204e8 ("drm: bridge/dw_hdmi: add rockchip rk3288 support")
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com >
Signed-off-by: Thierry Escande <thierry.escande@collabora.com >
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302175757.28192-5-enric.balletbo@collabora.com
2018-03-08 17:32:53 +01:00
Jeffy Chen
028a9e5c06
drm/rockchip: inno_hdmi: reorder clk_disable_unprepare call in unbind
...
In bind the clk_prepare_enable of the HDMI pclk is called before adding the
i2c_adapter. So it should be the other way around in unbind, first remove
the i2c_adapter and then call the clk_disable_unprepare.
Fixes: 412d4ae6b7 ("drm/rockchip: hdmi: add Innosilicon HDMI support")
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com >
Signed-off-by: Thierry Escande <thierry.escande@collabora.com >
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302175757.28192-4-enric.balletbo@collabora.com
2018-03-08 17:32:52 +01:00
Jeffy Chen
61b5ff96d2
drm/rockchip: inno_hdmi: Fix error handling path.
...
Add missing error handling in bind().
Fixes: 412d4ae6b7 ("drm/rockchip: hdmi: add Innosilicon HDMI support")
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com >
Signed-off-by: Thierry Escande <thierry.escande@collabora.com >
[moved clk_disable_unprepare reordering in unbind to separate patch]
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302175757.28192-3-enric.balletbo@collabora.com
2018-03-08 17:32:52 +01:00
Jeffy Chen
e45df26438
drm/rockchip: dw-mipi-dsi: Fix connector and encoder cleanup.
...
In bind()'s error handling path call destroy functions instead of
cleanup functions for encoder and connector and reorder to match how is
called in bind().
In unbind() call the connector and encoder destroy functions.
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com >
Signed-off-by: Thierry Escande <thierry.escande@collabora.com >
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com >
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302175757.28192-2-enric.balletbo@collabora.com
2018-03-08 17:32:52 +01:00
Ville Syrjälä
9aecbc45a3
drm/nouveau: Replace the iturbt_709 prop with the standard COLOR_ENCODING prop
...
Replace the ad-hoc iturbt_709 property with the new standard
COLOR_ENCODING property. Compiles, but not tested.
v2: Fix typos (Ilia)
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: nouveau@lists.freedesktop.org
Cc: Ben Skeggs <bskeggs@redhat.com >
Cc: Ilia Mirkin <imirkin@alum.mit.edu >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180220134816.15229-1-ville.syrjala@linux.intel.com
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Acked-by: Ben Skeggs <bskeggs@redhat.com > #irc
2018-03-08 18:25:04 +02:00
Linus Walleij
df99dd9202
drm/pl111: Use max memory bandwidth for resolution
...
We were previously selecting 1024x768 and 32BPP as the default
set-up for the PL111 consumers.
This does not work on elder systems: the device tree bindings
support a property "max-memory-bandwidth" in bytes/second that
states that if you exceed this the memory bus will saturate.
The result is flickering and unstable images.
Parse the "max-memory-bandwidth" and respect it when
intializing the driver. On the RealView PB11MP, Versatile and
Integrator/CP we get a nice console as default with this code.
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180307215819.15814-1-linus.walleij@linaro.org
2018-03-07 23:14:24 +01:00
Linus Walleij
2e7a66a8b5
drm/bridge: sii902x: Retry status read after DDI I2C
...
The following happens when connection a DVI output driven
from the SiI9022 using a DVI-to-VGA adapter plug:
i2c i2c-0: sendbytes: NAK bailout.
i2c i2c-0: sendbytes: NAK bailout.
Then no picture. Apparently the I2C engine inside the SiI9022
is not smart enough to try to fall back to DDC I2C. Or the
vendor have not integrated the electronics properly. I don't
know which one it is.
After this, the I2C bus seems stalled and the first attempt to
read the status register fails, and the code returns with
negative return value, and the display fails to initialized.
Instead, retry status readout five times and continue even
if this fails.
Tested on the ARM Versatile Express with a DVI-to-VGA
connector, it now gives picture.
Introduce a helper struct device *dev variable to make
the code more readable.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Liviu Dudau <Liviu.Dudau@arm.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180305101702.13441-1-linus.walleij@linaro.org
2018-03-07 22:48:19 +01:00
Linus Walleij
20a0dfeead
drm/pl111: Handle the RealView variant separately
...
We want to cut down the default bpp to 16 on the RealView so
we can have a 1024x768 framebuffer console by default. The
memory bandwidth limitations makes this not work with the
PL111 default of 32bpp.
This builds on top of the earlier patches making the
framebuffer default bpp a per-variant variable.
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302090948.6399-4-linus.walleij@linaro.org
2018-03-07 22:48:08 +01:00
Linus Walleij
9f8d4fe94e
drm/pl111: Make the default BPP a per-variant variable
...
The PL110, Integrator and Versatile boards strongly prefer to
use 16 BPP even if other modes are supported, both to keep down
memory consumption and also to easier find a good match to
supported resolutions with consideration taken to the memory
bandwidth of the platforms.
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302090948.6399-2-linus.walleij@linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180307084316.23623-1-linus.walleij@linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20180307084316.23623-1-linus.walleij@linaro.org
2018-03-07 22:46:46 +01:00
Linus Walleij
afe09e43b4
drm: simple_kms_helper: Fix .mode_valid() documentation
...
This fixes up the .mode_valid() vtable entry documentation
by copyediting the documentation from the .mode_valid()
documentation in the drm_modeset_helper_vtables.h file.
Fixes: 40275dc4ed ("drm: simple_kms_helper: Add mode_valid() callback support")
Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180227101109.6088-1-linus.walleij@linaro.org
2018-03-07 22:38:59 +01:00
Linus Walleij
bbce9ad9c2
bridge: Elaborate a bit on dumb VGA bridges in Kconfig
...
It's better if we explain a bit that this pertains to
non-programmable VGA DAC bridges.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302091426.8463-1-linus.walleij@linaro.org
2018-03-07 22:38:50 +01:00
Shirish S
55de292384
drm/atomic: Add new reverse iterator over all plane state (V2)
...
Add reverse iterator for_each_oldnew_plane_in_state_reverse to
compliment the for_each_oldnew_plane_in_state way or reading plane
states.
The plane states are required to be read in reverse order for
amd drivers, cause the z order convention followed in linux is
opposite to how the planes are supposed to be presented to DC
engine, which is in common to both windows and linux.
V2: fix compile time errors due to -Werror flag.
Signed-off-by: Shirish S <shirish.s@amd.com >
Signed-off-by: Pratik Vishwakarma <Pratik.Vishwakarma@amd.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Harry Wentland <harry.wentland@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1520392203-6885-1-git-send-email-shirish.s@amd.com
2018-03-07 15:34:59 -05:00
Ville Syrjälä
100bc0d996
drm: Reject bad property flag combinations
...
Pimp drm_property_type_valid() to check for more fails with the
property flags. Also make the check before adding the property,
and bail out if things look bad.
Since we're now chekcing for more than the type let's also
change the function name to drm_property_flags_valid().
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180306164849.2862-6-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-07 18:28:34 +02:00
Ville Syrjälä
51abc97658
drm: Make property flags u32
...
The property flags are part of the uabi and we have 32 bits for them.
Pass them around as u32 internally as well, instead of a signed int.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180306164849.2862-5-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-07 18:25:43 +02:00
Ville Syrjälä
147ccf931e
drm/uapi: Deprecate DRM_MODE_PROP_PENDING
...
DRM_MODE_PROP_PENDING is not used anywhere (except printed out
by libdrm proptest/modetest).
This seems to be yet another thing blindly copied from xrandr.
Quoting from the protocol spec:
"If 'pending' is TRUE, changes made to property values with
RRChangeOutputProperty will be saved in the pending property value
and be automatically copied to the current value on the next
RRSetCrtcConfig request involving the named output. If 'pending' is
FALSE, changes are copied immediately."
So it was some kind of early idea for atomic property updates.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180306164849.2862-4-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-07 18:22:05 +02:00
Ville Syrjälä
8c6c2fe2f1
drm: WARN when trying to add enum value > 63 to a bitmask property
...
Enum values >63 with a bitmask property is a programmer error. WARN
when someone is attempting this.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180306164849.2862-3-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-07 18:21:10 +02:00
Ville Syrjälä
1371f2604d
drm: WARN when trying add enum values to non-enum/bitmask properties
...
Trying to add enum values to non-enum/bitmask properties is a
programmer mistake. WARN to make sure the developers notice
their mistake.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180306164849.2862-2-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-07 18:20:53 +02:00
Ville Syrjälä
6f881d04f3
drm: Reject replacing property enum values
...
If the property already has the enum value WARN and bail.
Replacing enum values doesn't make sense to me.
Throw out the pointless list_empty() while at it.
Cc: Daniel Vetter <daniel@ffwll.ch >
Suggested-by: Daniel Vetter <daniel@ffwll.ch >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180306164849.2862-1-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-07 18:19:37 +02:00
Marek Szyprowski
2e9b3e74b4
drm/bridge: analogix_dp: Don't create useless connectors
...
If there is another bridge after analogix_dp, then the connector object
should not be created. This fixes following timeouts on Exynos5420-based
Chromebook2 Peach-PIT board during boot:
exynos-dp 145b0000.dp-controller: AUX CH cmd reply timeout!
exynos-dp 145b0000.dp-controller: AUX CH enable timeout!
exynos-dp 145b0000.dp-controller: AUX CH enable timeout!
exynos-dp 145b0000.dp-controller: AUX CH enable timeout!
exynos-dp 145b0000.dp-controller: AUX CH enable timeout!
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com >
Tested-by: Heiko Stuebner <heiko@sntech.de >
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180305085741.18896-4-m.szyprowski@samsung.com
2018-03-07 16:18:00 +01:00
Marek Szyprowski
f25c835815
drm/bridge: analogix_dp: Postpone enabling runtime power management
...
Enabling runtime power management early in analogix_dp_bind() causes following
kernel NULL pointer dereference:
Unable to handle kernel NULL pointer dereference at virtual address 000007d8
pgd = 28ffa2e4
[000007d8] *pgd=00000000
Internal error: Oops: 5 [#1 ] PREEMPT SMP ARM
Modules linked in:
CPU: 6 PID: 69 Comm: kworker/6:1 Not tainted 4.16.0-rc1-00062-ge25751974ba8 #3622
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
Workqueue: events deferred_probe_work_func
PC is at analogix_dp_resume+0x8/0xc0
LR is at pm_generic_runtime_resume+0x2c/0x38
pc : [<c0531b98>] lr : [<c0543fec>] psr: a0000113
sp : ee13fbd8 ip : 0000001a fp : 00000001
r10: ee0eb080 r9 : c0552bd8 r8 : c0fb1d98
r7 : eebb1010 r6 : eeae9808 r5 : 00000000 r4 : d4850415
r3 : ee0ed010 r2 : b2d05e00 r1 : 00000000 r0 : 00000000
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
Control: 10c5387d Table: 2000406a DAC: 00000051
Process kworker/6:1 (pid: 69, stack limit = 0x913205b4)
Stack: (0xee13fbd8 to 0xee140000)
...
[<c0531b98>] (analogix_dp_resume) from [<c0543fec>] (pm_generic_runtime_resume+0x2c/0x38)
[<c0543fec>] (pm_generic_runtime_resume) from [<c054ffb4>] (__genpd_runtime_resume+0x2c/0x8c)
[<c054ffb4>] (__genpd_runtime_resume) from [<c0552d24>] (genpd_runtime_resume+0x14c/0x258)
[<c0552d24>] (genpd_runtime_resume) from [<c0547798>] (__rpm_callback+0x134/0x214)
[<c0547798>] (__rpm_callback) from [<c0547898>] (rpm_callback+0x20/0x80)
[<c0547898>] (rpm_callback) from [<c0546ff4>] (rpm_resume+0x3a0/0x734)
[<c0546ff4>] (rpm_resume) from [<c05475ec>] (__pm_runtime_resume+0x64/0x9c)
[<c05475ec>] (__pm_runtime_resume) from [<c053b95c>] (__device_attach+0x8c/0x134)
[<c053b95c>] (__device_attach) from [<c053ad08>] (bus_probe_device+0x88/0x90)
[<c053ad08>] (bus_probe_device) from [<c05390d0>] (device_add+0x3a8/0x580)
[<c05390d0>] (device_add) from [<c06764c4>] (i2c_register_adapter+0xd4/0x3ec)
[<c06764c4>] (i2c_register_adapter) from [<c05321c8>] (analogix_dp_bind+0x2a0/0x410)
[<c05321c8>] (analogix_dp_bind) from [<c0528e90>] (exynos_dp_bind+0x9c/0x12c)
[<c0528e90>] (exynos_dp_bind) from [<c0535bc4>] (component_bind_all+0xfc/0x258)
[<c0535bc4>] (component_bind_all) from [<c0522ee8>] (exynos_drm_bind+0x15c/0x28c)
[<c0522ee8>] (exynos_drm_bind) from [<c0536378>] (try_to_bring_up_master+0x1b8/0x29c)
[<c0536378>] (try_to_bring_up_master) from [<c05364fc>] (component_add+0xa0/0x170)
[<c05364fc>] (component_add) from [<c0528fe4>] (exynos_dp_probe+0x64/0xb8)
[<c0528fe4>] (exynos_dp_probe) from [<c053debc>] (platform_drv_probe+0x50/0xb0)
[<c053debc>] (platform_drv_probe) from [<c053bd18>] (driver_probe_device+0x2b8/0x4a0)
[<c053bd18>] (driver_probe_device) from [<c0539e4c>] (bus_for_each_drv+0x44/0x8c)
[<c0539e4c>] (bus_for_each_drv) from [<c053b970>] (__device_attach+0xa0/0x134)
[<c053b970>] (__device_attach) from [<c053ad08>] (bus_probe_device+0x88/0x90)
[<c053ad08>] (bus_probe_device) from [<c053b258>] (deferred_probe_work_func+0x3c/0x168)
[<c053b258>] (deferred_probe_work_func) from [<c014352c>] (process_one_work+0x1d0/0x7bc)
[<c014352c>] (process_one_work) from [<c0143b84>] (worker_thread+0x34/0x4dc)
[<c0143b84>] (worker_thread) from [<c014a30c>] (kthread+0x128/0x164)
[<c014a30c>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x20)
Exception stack(0xee13ffb0 to 0xee13fff8)
ffa0: 00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
Code: e2800e37 eafee601 e92d4070 e1a05000 (e59067d8)
---[ end trace bf6046013df7cab2 ]---
This oops happens, because analogix_dp_bind() calls drm_dp_aux_register()
which registers i2c adapter. I2C core tries to runtime get i2c host
device during registration. This ends in analogix_dp_resume(), but dp
context is NULL there. dp context is set in exynos_dp_bind() after
executing analogix_dp_bind(). Fix this issue by postponing enabling runtime
power management after drm_dp_aux_register().
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com >
Tested-by: Heiko Stuebner <heiko@sntech.de >
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180305085741.18896-3-m.szyprowski@samsung.com
2018-03-07 16:17:58 +01:00
zain wang
ea2a14da0f
drm/bridge: analogix_dp: Don't power bridge in analogix_dp_bind
...
The bridge does not need to be powered in analogix_dp_bind(), so
remove the calls to pm_runtime_get()/phy_power_on()/analogix_dp_init_dp()
as well as their power-off counterparts.
Cc: Stéphane Marchesin <marcheu@chromium.org >
Signed-off-by: zain wang <wzz@rock-chips.com >
Signed-off-by: Caesar Wang <wxt@rock-chips.com >
[the patch originally just removed the power_on portion, seanpaul removed
the power off code as well as improved the commit message]
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Signed-off-by: Thierry Escande <thierry.escande@collabora.com >
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com >
Tested-by: Heiko Stuebner <heiko@sntech.de >
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180305085741.18896-2-m.szyprowski@samsung.com
2018-03-07 16:17:56 +01:00
Christian König
186ca446ae
drm/prime: make the pages array optional for drm_prime_sg_to_page_addr_arrays
...
Most of the time we only need the dma addresses.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Roger He <Hongbo.He@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180227115000.4105-2-christian.koenig@amd.com
Link: https://patchwork.freedesktop.org/patch/msgid/20180227115000.4105-3-christian.koenig@amd.com
Link: https://patchwork.freedesktop.org/patch/msgid/20180227115000.4105-4-christian.koenig@amd.com
Link: https://patchwork.freedesktop.org/patch/msgid/20180227115000.4105-5-christian.koenig@amd.com
Link: https://patchwork.freedesktop.org/patch/msgid/BN6PR12MB18262C0DE9B5F07B9A42EAE7F2C60@BN6PR12MB1826.namprd12.prod.outlook.com
2018-03-06 12:24:52 -05:00
Christian König
681066ec1d
drm/prime: fix potential race in drm_gem_map_detach
...
Unpin the GEM object only after freeing the sg table.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Acked-by: Roger He <Hongbo.He@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180227115000.4105-1-christian.koenig@amd.com
2018-03-06 12:22:42 -05:00
Ville Syrjälä
5ebbb5b4d4
drm: Check property/enum name length
...
Reject requests to add properties/enums with an overly long name.
Previously we would have just silently truncated the string and exposed
it userspace.
v2: drm_property_create() returns a pointer
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302140300.31110-1-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-06 18:03:02 +02:00
Ville Syrjälä
8e5e83ad82
drm: Don't create properties without names
...
Creating a property that doesn't have a name makes no sense to me. Don't
allow it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180302132544.12491-1-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-03-06 18:01:59 +02:00
Neil Armstrong
9c305eb442
drm: bridge: dw-hdmi: Fix overflow workaround for Amlogic Meson GX SoCs
...
The Amlogic Meson GX SoCs, embedded the v2.01a controller, has been also
identified needing this workaround.
This patch adds the corresponding version to enable a single iteration for
this specific version.
Fixes: be41fc55f1 ("drm: bridge: dw-hdmi: Handle overflow workaround based on device version")
Acked-by: Archit Taneja <architt@codeaurora.org >
[narmstrong: s/identifies/identified and rebased against Jernej's change]
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1519386277-25902-1-git-send-email-narmstrong@baylibre.com
2018-03-06 11:52:15 +01:00
Baruch Siach
2efa83920c
drm: of: simplify component probe code
...
Use positive logic for better readability. This also eliminates one
of_node_put() call, making the code shorter.
Signed-off-by: Baruch Siach <baruch@tkos.co.il >
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de >
Tested-by: Philipp Zabel <p.zabel@pengutronix.de >
Signed-off-by: Archit Taneja <archit@cradlewise.com >
Link: https://patchwork.freedesktop.org/patch/msgid/61c56895d44117d80e7d82f04e729e29c60fadbd.1519327370.git.baruch@tkos.co.il
2018-03-06 14:05:00 +05:30
Joe Moriarty
3bd07ccd27
drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem
...
The Parfait (version 2.1.0) static code analysis tool found the
following NULL pointer dereference problem.
- drivers/gpu/drm/drm_drv.c
Any calls to drm_minor_get_slot() could result in the return of a NULL
pointer when an invalid DRM device type is encountered. The
return of NULL was removed with BUG() from drm_minor_get_slot().
Signed-off-by: Joe Moriarty <joe.moriarty@oracle.com >
Reviewed-by: Steven Sistare <steven.sistare@oracle.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180220191157.100960-3-joe.moriarty@oracle.com
2018-03-06 08:14:16 +01:00
Joe Moriarty
4ffb8deeed
drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem
...
The Parfait (version 2.1.0) static code analysis tool found the
following NULL pointer derefernce problem.
- drivers/gpu/drm/drm_vblank.c
Null pointer checks were added to return values from calls to
drm_crtc_from_index(). There is a possibility, however minute, that
crtc->index may not be found when trying to find the struct crtc
from it's assigned index given in drm_crtc_init_with_planes().
3 return checks for NULL where added with a call to
WARN_ON(!crtc).
Signed-off-by: Joe Moriarty <joe.moriarty@oracle.com >
Reviewed-by: Steven Sistare <steven.sistare@oracle.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180220191157.100960-2-joe.moriarty@oracle.com
2018-03-06 08:14:16 +01:00