Linus Walleij
6470b7ddec
drm/pl111: Handle the Versatile RGB/BGR565 mode
...
The ARM Versatile series can do RGB/BGR565 with an external
"PLD" (Programmable Logical Device). However the CLCD does not
have control bits for this, so it needs to be set into the
ordinary 16BPP mode, then the RGB/BGR565 handling of the pixel
data is handled by configuring the PLD through the external
register.
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180206093540.8147-2-linus.walleij@linaro.org
2018-02-07 09:08:34 +01:00
Linus Walleij
3d95f76a11
drm/pl111: Properly detect the ARM PL110 variants
...
With a bit of refactoring we can contain the variant data for
the strange PL110 versions that is feature-incomplete PL110 for
the ARM Integrator/CP and somewhere inbetween PL110 and PL111
for the ARM Versatile AB and Versatile PB.
We also accomodate for the custom duct-taped RGB565/BGR565 support
in the Versatile variant.
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180206093540.8147-1-linus.walleij@linaro.org
2018-02-07 09:08:23 +01:00
Linus Walleij
f40f5b87d9
drm/panel: Add support for ARM Versatile panels
...
The ARM reference designs "Versatile AB" and "Versatile PB"
contain panel connectors with autodetection of the connected
panel type. This adds a small driver utilizing the MFD syscon
look-up to read the autodetection register and set up the
corresponding panel appropriately.
In the source file there is a bit of elaboration of the
panel types and interfaces on these boards.
This was tested with the PL111 DRM driver on the ARM Versatile
AB with the IB2 daughterboard.
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180205192013.5349-2-linus.walleij@linaro.org
2018-02-07 09:06:59 +01:00
Linus Walleij
98ae3b26e4
drm/panel: Device tree bindings for ARM Versatile panels
...
This adds a pretty simple set of device tree bindings for
ARM Versatile panels appearing as child nodes of a system
controller.
Cc: devicetree@vger.kernel.org
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180205192013.5349-1-linus.walleij@linaro.org
2018-02-07 09:06:48 +01:00
Linus Walleij
312924d3bc
drm/bridge: Rename argument from crtc to bridge
...
Why is the argument to ->mode_valid() called "crtc"?
I guess a copy/paste error. Fix it.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180129095531.4557-1-linus.walleij@linaro.org
2018-02-07 09:06:37 +01:00
Maarten Lankhorst
4beb3b40ae
drm/crc: Add support for polling on the data fd.
...
This will make it possible for userspace to know whether reading
will block, without blocking on the fd. This makes it possible to
drain all queued CRC's in blocking mode, without having to reopen
the fd.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180202142743.68527-1-maarten.lankhorst@linux.intel.com
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
[mlankhorst: Use POLLIN|POLLRDNORM, based on Ville's suggestion]
2018-02-05 13:22:44 +01:00
Ville Syrjälä
bc4fde30e5
drm/sun4i: Use drm_mode_get_hv_timing() to populate plane clip rectangle
...
Use drm_mode_get_hv_timing() to fill out the plane clip rectangle.
Note that this replaces crtc_state->adjusted_mode usage with
crtc_state->mode. The latter is the correct choice since that's the
mode the user provided and it matches the plane crtc coordinates
the user also provided.
Once everyone agrees on this we can move the clip handling into
drm_atomic_helper_check_plane_state().
Cc: Maxime Ripard <maxime.ripard@free-electrons.com >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180123170857.13818-2-ville.syrjala@linux.intel.com
Reviewed-by: Maxime Ripard <maxime.ripard@free-electrons.com > #irc
2018-02-02 16:52:24 +02:00
Ville Syrjälä
b46a24bcc2
drm/rcar-du: Use drm_mode_get_hv_timing() to populate plane clip rectangle
...
Use drm_mode_get_hv_timing() to fill out the plane clip rectangle.
No functional changes as the code already uses crtc_state->mode
to populate the clip, which is also what drm_mode_get_hv_timing()
uses.
Once everyone agrees on this we can move the clip handling into
drm_atomic_helper_check_plane_state().
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180123170857.13818-1-ville.syrjala@linux.intel.com
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
2018-02-02 16:50:28 +02:00
Daniel Vetter
ff62981136
MAINTAINERS: Maarten for drm-misc co-maintainer
...
I'm stepping down, also handing all the drm-misc stuff to the new
team. Plan is that Sean handles 4.17, and Maarten then has fun with
4.18 as his first release.
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: David Airlie <airlied@linux.ie >
Cc: Gustavo Padovan <gustavo@padovan.org >
Cc: Sean Paul <seanpaul@chromium.org >
Acked-by: Sean Paul <seanpaul@chromium.org >
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Acked-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180131102156.25634-1-daniel.vetter@ffwll.ch
2018-02-01 16:44:22 -05:00
Tomeu Vizoso
424c3f05e1
drm/virtio: Don't return invalid caps on timeout
...
If the wait timeouts, the caps are probably invalid and we shouldn't be
passing them to userspace.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Link: http://patchwork.freedesktop.org/patch/msgid/20171127142126.25765-1-tomeu.vizoso@collabora.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
2018-02-01 17:45:41 +01:00
Gustavo A. R. Silva
c2925bde82
drm/edid: use true and false for boolean values
...
Assign true or false to boolean variables instead of an integer value.
This issue was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180130100528.GA7154@training
2018-01-30 18:05:25 +01:00
Dan Carpenter
9eb8d7a93c
drm/mgag200: fix a test in mga_vga_mode_valid()
...
The parentheses are in the wrong place here so we pass the bits per
pixel as zero.
Fixes: abbee62387 ("drm/mgag200: Added resolution and bandwidth limits for various G200e products.")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180125142655.GA23885@mwanda
2018-01-30 18:05:25 +01:00
Daniel Vetter
b46310eecd
drm/arcpgu: remove drm_encoder_slave
...
drm_encoder_slave is the old way to write bridge drivers, for i2c
bridges only. It's deprecated, and definitely should not be used in
new drivers. This has absolutely nothing to do with the new bridge
driver infrastructure implemented by drm_bridge.
What's even strange is that arcpgu doesn't even use any of this, it
really only wants a plain normal drm_encoder. Nuke all the surplus
real estate.
v2: Actually git add after compile testing ...
v3: Clarify commit message and stop including drm_encoder_slave.h.
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Cc: Alexey Brodkin <abrodkin@synopsys.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180117141755.16933-1-daniel.vetter@ffwll.ch
2018-01-30 18:05:25 +01:00
Shawn Guo
e56a0fbd52
dma-buf/sw_sync: fix document of sw_sync_create_fence_data
...
The structure should really be sw_sync_create_fence_data rather than
sw_sync_ioctl_create_fence which is the function name.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/1515988079-8677-1-git-send-email-shawn.guo@linaro.org
2018-01-30 18:05:25 +01:00
Maarten Lankhorst
fa5aaeecf5
drm/atomic: Remove WARN_ON for invalid plane configuration.
...
Userspace can set a FB_ID on a plane without setting CRTC_ID, which
will fail with -EINVAL, but the kernel shouldn't warn about that.
Same for !FB_ID and CRTC_ID being set.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180130102704.28016-1-maarten.lankhorst@linux.intel.com
Reviewed-by: Harry Wentland <harry.wentland@amd.com >
2018-01-30 16:42:21 +01:00
Philippe Cornu
1a1c130cca
drm/bridge/synopsys: dsi: Fix dsi_host_transfer() return value
...
The dw_mipi_dsi_host_transfer() must return the number of
bytes transmitted/received on success instead of 0.
Note: As the read feature is not implemented, only the
transmitted number of bytes is returned for the moment.
Reviewed-by: Brian Norris <briannorris@chromium.org >
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Archit Taneja <architt@codeaurora.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180125103800.1999-3-philippe.cornu@st.com
2018-01-30 16:19:17 +05:30
Philippe Cornu
4cda6e8e1e
drm/bridge/synopsys: dsi: Add a warning msg on dsi read requests
...
The dcs/generic dsi read feature is not yet implemented so it
is important to warn the host_transfer() caller in case of
read operation requests.
Reviewed-by: Brian Norris <briannorris@chromium.org >
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Archit Taneja <architt@codeaurora.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180125103800.1999-2-philippe.cornu@st.com
2018-01-30 16:19:17 +05:30
Philippe Cornu
21f815bf77
drm/stm: drv: Improve data transfers
...
To optimize data transfers, align pitch on 128 bytes & height
on 4 bytes. This optimization is not applicable on hw without MMU.
Signed-off-by: Yannick Fertre <yannick.fertre@st.com >
Signed-off-by: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180130104200.21602-1-philippe.cornu@st.com
2018-01-30 11:45:15 +01:00
Philippe CORNU
023f348901
drm/stm: dsi: Add 1.31 version support
...
Add support for the stm dsi phy/wrapper version 1.31.
Only lane capabilities need to be modified.
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180122164628.24728-1-philippe.cornu@st.com
2018-01-30 11:45:01 +01:00
Philippe CORNU
f35b55565a
dt-bindings: display: stm32: correct clock-names in dsi panel example
...
In the dsi panel example, clock names in the "clock-names"
field have been swapped:
* "pclk" (peripheral clock) is <&rcc 1 CLK_F469_DSI> on stm32f4
* "ref" (dsi phy pll ref clock) is <&clk_hse> on stm32f4
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180122153547.23470-1-philippe.cornu@st.com
2018-01-30 11:45:01 +01:00
Leo (Sunpeng) Li
1c6ceeee6e
drm/atomic: Fix memleak on ERESTARTSYS during non-blocking commits
...
During a non-blocking commit, it is possible to return before the
commit_tail work is queued (-ERESTARTSYS, for example).
Since a reference on the crtc commit object is obtained for the pending
vblank event when preparing the commit, the above situation will leave
us with an extra reference.
Therefore, if the commit_tail worker has not consumed the event at the
end of a commit, release it's reference.
Changes since v1:
- Also check for state->event->base.completion being set, to
handle the case where stall_checks() fails in setup_crtc_commit().
Changes since v2:
- Add a flag to drm_crtc_commit, to prevent dereferencing a freed event.
i915 may unreference the state in a worker.
Fixes: 24835e442f ("drm: reference count event->completion")
Cc: <stable@vger.kernel.org > # v4.11+
Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com >
Acked-by: Harry Wentland <harry.wentland@amd.com > #v1
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180117115108.29608-1-maarten.lankhorst@linux.intel.com
Reviewed-by: Sean Paul <seanpaul@chromium.org >
2018-01-30 11:27:26 +01:00
Ville Syrjälä
e995ca0b81
drm/i915: Provide a device level .mode_valid() hook
...
We never support certain mode flags etc. Reject those early on in the
mode_config.mode_valid() hook. That allows us to remove some duplicated
checks from the connector .mode_valid() hooks, and it guarantees that
we never see those flags even from user mode as the
mode_config.mode_valid() hooks gets executed for those as well.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171114183258.16976-11-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-01-29 21:55:07 +02:00
Ville Syrjälä
75a655e0a2
drm/modes: Provide global mode_valid hook
...
Allow drivers to provide a device wide .mode_valid() hook in addition to
the already existing crtc/encoder/bridge/connector hooks. This can be
used to validate device/driver wide constraings without having to add
those to the other hooks. And since we call this hook also for user
modes later on in the modeset we don't have to worry about anything the
hook has already rejected.
I also have some further ideas for this hook. Eg. we could replace the
drm_mode_set_crtcinfo(HALVE_V) call in drm_mode_convert_umode()/etc.
with a driver specific variant via this hook. At least on i915 we would
like to pass CRTC_STEREO_DOUBLE to that function instead, and then
we could safely use the crtc_ timings in all our .mode_valid() hooks,
which would allow us to reuse those hooks for validating the
adjusted_mode during a modeset.
v2: Fix the language fails in the kernel docs (Daniel)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171114183258.16976-10-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2018-01-29 21:51:51 +02:00
Ville Syrjälä
b7245cc536
drm/uapi: Deprecate nonsense kms mode types
...
BUILTIN, CRTC_C, CLOCK_C, and DEFULT mode types are unused. Let's
refuse to generate them or accept them from userspace either. A
cursory check didn't reveal any userspace code that would depend
on these.
v2: Recommend DRIVER instead of BUILTIN (ajax)
Cc: Jose Abreu <Jose.Abreu@synopsys.com >
Cc: Adam Jackson <ajax@redhat.com >
Cc: Keith Packard <keithp@keithp.com >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115154504.14338-1-ville.syrjala@linux.intel.com
Reviewed-by: Jose Abreu <joabreu@synopsys.com >
2018-01-29 21:45:29 +02:00
Ville Syrjälä
538af6cbdf
drm/modes: Kill DRM_MODE_TYPE_CLOCK_CRTC_C define
...
No idea what the DRM_MODE_TYPE_CLOCK_CRTC_C define is supposed to
achieve. Totally unused so kill if off.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171114183258.16976-8-ville.syrjala@linux.intel.com
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2018-01-29 21:38:50 +02:00