Uma Shankar
abeae421b0
Revert "drm/i915/bxt: Disable device ready before shutdown command"
...
This reverts commit bbdf0b2ff3
("drm/i915/bxt: Disable device ready
before shutdown command").
Disable device ready before shutdown command was added previously to
avoid a split screen issue seen on dual link DSI panels. As of now, dual
link is not supported and will need some rework in the upstream
code. For single link DSI panels, the change is not required. This will
cause failure in sending SHUTDOWN packet during disable. Hence reverting
the change. Will handle the change as part of dual link enabling in
upstream.
Fixes: bbdf0b2ff3
("drm/i915/bxt: Disable device ready before shutdown command")
Cc: <stable@vger.kernel.org > # v4.12+
Signed-off-by: Uma Shankar <uma.shankar@intel.com >
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1504604671-17237-1-git-send-email-vidya.srinivas@intel.com
(cherry picked from commit 33c8d8870c
)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2017-09-18 15:22:29 -07:00
Jim Bride
dc911f5bd8
drm/i915/edp: Allow alternate fixed mode for eDP if available.
...
Some fixed resolution panels actually support more than one mode,
with the only thing different being the refresh rate. Having this
alternate mode available to us is desirable, because it allows us to
test PSR on panels whose setup time at the preferred mode is too long.
With this patch we allow the use of the alternate mode if it's
available and it was specifically requested.
v2 and v3: Rebase
v4: * Fix up some leaky mode stuff (Chris)
* Rebase
v5: * Fix a NULL pointer derefrence (David Weinehall)
v6: * Whitespace / spelling / checkpatch clean-up; no functional
change. (David)
* Rebase
Cc: David Weinehall <david.weinehall@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com >
Cc: Jani Nikula <jani.nikula@intel.com >
Cc: Chris Wilson <chris@chris-wilson.co.uk >
Reviewed-by: David Weinehall <david.weinehall@linux.intel.com >
Signed-off-by: Jim Bride <jim.bride@linux.intel.com >
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1502308133-26892-1-git-send-email-jim.bride@linux.intel.com
2017-08-15 16:43:33 -07:00
Daniel Vetter
7d902c05b4
drm: Nuke drm_atomic_helper_connector_dpms
...
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 <daniel.vetter@intel.com >
Cc: Archit Taneja <architt@codeaurora.org >
Cc: Andrzej Hajda <a.hajda@samsung.com >
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com >
Cc: Peter Senna Tschudin <peter.senna@collabora.com >
Cc: Martin Donnelly <martin.donnelly@ge.com >
Cc: Martyn Welch <martyn.welch@collabora.co.uk >
Cc: Daniel Vetter <daniel.vetter@intel.com >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Sean Paul <seanpaul@chromium.org >
Cc: David Airlie <airlied@linux.ie >
Cc: Inki Dae <inki.dae@samsung.com >
Cc: Joonyoung Shim <jy0922.shim@samsung.com >
Cc: Seung-Woo Kim <sw0312.kim@samsung.com >
Cc: Kyungmin Park <kyungmin.park@samsung.com >
Cc: Kukjin Kim <kgene@kernel.org >
Cc: Krzysztof Kozlowski <krzk@kernel.org >
Cc: Stefan Agner <stefan@agner.ch >
Cc: Alison Wang <alison.wang@freescale.com >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Philipp Zabel <p.zabel@pengutronix.de >
Cc: CK Hu <ck.hu@mediatek.com >
Cc: Matthias Brugger <matthias.bgg@gmail.com >
Cc: Neil Armstrong <narmstrong@baylibre.com >
Cc: Carlo Caione <carlo@caione.org >
Cc: Kevin Hilman <khilman@baylibre.com >
Cc: Marek Vasut <marex@denx.de >
Cc: Ben Skeggs <bskeggs@redhat.com >
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com >
Cc: Eric Anholt <eric@anholt.net >
Cc: Mark Yao <mark.yao@rock-chips.com >
Cc: Heiko Stuebner <heiko@sntech.de >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Cc: Yannick Fertre <yannick.fertre@st.com >
Cc: Philippe Cornu <philippe.cornu@st.com >
Cc: Maxime Ripard <maxime.ripard@free-electrons.com >
Cc: Chen-Yu Tsai <wens@csie.org >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Jonathan Hunter <jonathanh@nvidia.com >
Cc: Jyri Sarha <jsarha@ti.com >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: Shawn Guo <shawnguo@kernel.org >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Lars-Peter Clausen <lars@metafoo.de >
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com >
Cc: Jeffy Chen <jeffy.chen@rock-chips.com >
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Cc: Yakir Yang <kuankuan.y@gmail.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Jose Abreu <Jose.Abreu@synopsys.com >
Cc: Romain Perier <romain.perier@collabora.com >
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com >
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com >
Cc: Alexey Brodkin <abrodkin@synopsys.com >
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: Rongrong Zou <zourongrong@gmail.com >
Cc: Rob Clark <robdclark@gmail.com >
Cc: Hai Li <hali@codeaurora.org >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
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 <wzz@rock-chips.com >
Cc: Baoyou Xie <baoyou.xie@linaro.org >
Cc: Boris Brezillon <boris.brezillon@free-electrons.com >
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20170725080122.20548-8-daniel.vetter@ffwll.ch
Acked-by: Neil Armstrong <narmstrong@baylibre.com >
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com >
Acked-by: Philipp Zabel <p.zabel@pengutronix.de >
Acked-by: Archit Taneja <architt@codeaurora.org >
Tested-by: Philippe Cornu <philippe.cornu@st.com > (on stm)
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Acked-by: Shawn Guo <shawnguo@kernel.org >
Acked-by: Shawn Guo <shawnguo@kernel.org >
Acked-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
2017-08-08 14:48:48 +02:00
Daniel Vetter
482b0e3c2f
drm: Nuke drm_atomic_helper_connector_set_property
...
It's dead code, the core handles all this directly now. This also
allows us to unexport drm_atomic_helper_connector_set_property.
The only special case is nouveau which used one function for both
pre-nv50 legacy modeset code and post-nv50 atomic world instead of 2
vtables. But amounts to exactly the same.
What is rather strange here is how few drivers set this up, I suspect
the earlier patch to handle properties in the core did end up fixing a
pile of possible issues.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Daniel Vetter <daniel.vetter@intel.com >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Sean Paul <seanpaul@chromium.org >
Cc: David Airlie <airlied@linux.ie >
Cc: Ben Skeggs <bskeggs@redhat.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Cc: Eric Anholt <eric@anholt.net >
Cc: intel-gfx@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20170725080122.20548-7-daniel.vetter@ffwll.ch
Acked-by: Vincent Abriou <vincent.abriou@st.com >
2017-08-08 14:47:37 +02:00
Madhav Chauhan
8a1deb329f
drm/i915/glk: Add cold boot sequence for GLK DSI
...
As per BSEPC, if device ready bit is '0' in enable IO sequence
then its a cold boot/reset scenario eg: S3/S4 resume. If cold boot
scenario detected in enable IO, then prepare port immediately.
In normal boot scenario, prepare port after glk_dsi_device_ready().
Without cold boot sequence enabled, features like S3/S4 doesn't work.
Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1497340095-5877-2-git-send-email-madhav.chauhan@intel.com
2017-06-15 23:03:57 +03:00
Madhav Chauhan
74e4ce6a78
drm/i915/glk: Split GLK DSI device ready functionality
...
This patch divides glk_dsi_device_ready() function into
two part. First part will program LP wake and MIPI DSI mode
to MIPI_CTRL reg using newly defined function glk_dsi_enable_io().
glk_dsi_enable_io() will be called from intel_dsi_pre_enable.
Second part will do remaining device ready activities using
the existing function glk_dsi_device_ready().
Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1497340095-5877-1-git-send-email-madhav.chauhan@intel.com
2017-06-15 22:56:15 +03:00
Maarten Lankhorst
b037d58f97
drm/i915: Pass crtc_state and connector state to backlight enable/disable functions
...
The backlight functions need to determine the pipe and the transcoder the
backlight will be enabled on, so pass crtc_state instead of trying to
dereference the state without holding locks.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100022
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/20170612102115.23665-2-maarten.lankhorst@linux.intel.com
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
2017-06-12 16:05:45 +02:00
Maarten Lankhorst
ba14a1adae
drm/i915: Convert DSI connector properties to atomic.
...
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20170501133804.8116-7-maarten.lankhorst@linux.intel.com
2017-05-30 10:33:25 +02:00
Maarten Lankhorst
8b45330ad3
drm/i915: Use per-connector scaling mode property
...
None of the intel connectors can use all types of scaling modes,
so only try the ones that are possible. This is another preparation
for connectors towards conversion to atomic.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20170501133804.8116-5-maarten.lankhorst@linux.intel.com
[mlankhorst: Use renamed drm_connector_attach_scaling_mode_property function]
2017-05-30 10:32:31 +02:00
Maarten Lankhorst
eead06dff9
drm/i915: Use atomic scaling_mode instead of panel.fitting_mode
...
The first step in converting connector properties to atomic is
wiring up the atomic state. We're still not completely supoprting
the scaling mode in the atomic case, but this is the first step
towards it.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20170501133804.8116-4-maarten.lankhorst@linux.intel.com
2017-05-30 10:28:21 +02:00
Ander Conselvan de Oliveira
3acbec03b3
drm/i915/glk: Fix DSI "*ERROR* ULPS is still active" messages
...
The sequence in glk_dsi_device_ready() enters ULPS then waits until it is
*not* active to then disable it. The correct sequence according to the
spec is to enter ULPS then wait until the GLK_ULPS_NOT_ACTIVE bit is
zero, i.e., ULPS is active, and then disable ULPS.
Fixing the condition gets rid of the following spurious error messages:
[drm:glk_dsi_device_ready [i915]] *ERROR* ULPS is still active
Fixes: 4644848369
("drm/i915/glk: Add MIPIIO Enable/disable sequence")
Cc: Deepak M <m.deepak@intel.com >
Cc: Madhav Chauhan <madhav.chauhan@intel.com >
Cc: Jani Nikula <jani.nikula@intel.com >
Cc: Daniel Vetter <daniel.vetter@intel.com >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: intel-gfx@lists.freedesktop.org
Cc: <drm-intel-fixes@lists.freedesktop.org >
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com >
Reviewed-by: Madhav Chauhan <madhav.chauhan@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/20170428080222.6147-1-ander.conselvan.de.oliveira@intel.com
2017-04-28 17:09:06 +03:00
Jani Nikula
fefc51e89c
drm/i915/dsi: rename intel_dsi_pre_disable to intel_dsi_disable
...
The hook names reflect more the phase in the mode set sequence the hooks
are called in than what they actually do in terms of the specific
encoder. Stick to that scheme, and rename intel_dsi_pre_disable to
intel_dsi_disable. Unify the comments around this while at it. No
functional changes.
v2: Add more sense in the enable/disable hook comments (Ville)
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Cc: Madhav Chauhan <madhav.chauhan@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: Bob Paauwe <bob.j.paauwe@intel.com >
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488878659-10386-1-git-send-email-jani.nikula@intel.com
2017-03-07 15:18:13 +02:00
Jani Nikula
b0dd688702
drm/i915/dsi: rename intel_dsi_exec_vbt_sequence to intel_dsi_vbt_exec_sequence
...
Use the prefix intel_dsi_vbt for all the DSI VBT functions. No
functional changes.
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Madhav Chauhan <madhav.chauhan@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/0a05abca364f3bc7f9caf90c9bd3a68eef5f222f.1488810382.git.jani.nikula@intel.com
2017-03-07 15:17:55 +02:00
Jani Nikula
3f751d6517
drm/i915/dsi: stop using the drm_panel framework completely
...
Now that we've stopped using the drm_panel hooks, there aren't any
benefits left with using the drm_panel framework. Remove the rest of the
drm_panel use. No functional changes.
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Madhav Chauhan <madhav.chauhan@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/6602e36641451952065092401bd6e6cfbe93e208.1488810382.git.jani.nikula@intel.com
2017-03-07 15:17:43 +02:00
Jani Nikula
b9e56754ec
drm/i915/dsi: call vbt_panel_get_modes directly instead of via drm_panel
...
Commit 18a00095a5
("drm/i915/dsi: Make intel_dsi_enable/disable
directly exec VBT sequences") started calling the VBT sequence functions
directly instead of using the drm_panel hooks. Remove the last drm_panel
hook by calling vbt_panel_get_modes() directly. No functional changes.
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Madhav Chauhan <madhav.chauhan@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/63d0d41f29583507f5968b42b5f52e6574a1f245.1488810382.git.jani.nikula@intel.com
2017-03-07 15:17:20 +02:00
Jani Nikula
7967ef6a02
drm/i915/dsi: remove support for more than one panel driver
...
Fact is, there are no other panel drivers except the VBT based
one. Simplify the code and maintenance. No functional changes.
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Madhav Chauhan <madhav.chauhan@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/7dfd041dd25e8e930150ede09589bb232f6248d5.1488810382.git.jani.nikula@intel.com
2017-03-07 15:16:40 +02:00
Madhav Chauhan
9ce53745ed
drm/i915/glk: Fix DSI enable I/O sequence
...
One of the if statement covers the next line in enable I/O sequence.
This patch correct the same by adding error message.
Fixes: 4644848369
("drm/i915/glk: Add MIPIIO Enable/disable sequence")
Reported-by: Chris Wilson <chris@chris-wilson.co.uk >
Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488393082-30660-1-git-send-email-madhav.chauhan@intel.com
2017-03-02 16:34:13 +02:00
Hans de Goede
25b4620ee8
drm/i915/dsi: Skip delays for v3 VBTs in vid-mode
...
For v3 VBTs in vid-mode the delays are part of the VBT sequences, so
we should not also delay ourselves otherwise we get double delays.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-11-git-send-email-jani.nikula@intel.com
2017-03-01 15:58:08 +02:00
Hans de Goede
38dec5c089
drm/i915/dsi: Call MIPI_SEQ_TEAR_ON and DISPLAY_ON for cmd-mode (untested)
...
According to the spec we should call MIPI_SEQ_TEAR_ON and DISPLAY_ON
on enable for cmd-mode, just like we already call their counterparts
on disable. Note: untested, my panel is a vid-mode panel.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-10-git-send-email-jani.nikula@intel.com
2017-03-01 15:58:06 +02:00
Hans de Goede
7108b436c2
drm/i915/dsi: Execute MIPI_SEQ_TEAR_OFF from intel_dsi_post_disable
...
For v3+ VBTs we should call MIPI_SEQ_TEAR_OFF before MIPI_SEQ_DISPLAY_OFF,
v2 VBTs do not have MIPI_SEQ_TEAR_OFF so there this is a nop.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-9-git-send-email-jani.nikula@intel.com
2017-03-01 15:58:04 +02:00
Hans de Goede
3983145164
drm/i915/dsi: Document always using v3 SHUTDOWN / MIPI_SEQ_DISPLAY_OFF order
...
According to the spec for v2 VBTs we should call MIPI_SEQ_DISPLAY_OFF
before sending SHUTDOWN, where as for v3 VBTs we should send SHUTDOWN
first.
Since the v2 order has known issues, we use the v3 order everywhere,
add a comment documenting this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-8-git-send-email-jani.nikula@intel.com
2017-03-01 15:58:02 +02:00
Hans de Goede
f5bce6df88
drm/i915/dsi: Group MIPI_SEQ_BACKLIGHT_ON/OFF with panel_[en|dis]able_backlight
...
Execute the MIPI_SEQ_BACKLIGHT_ON/OFF VBT sequences at the same time as
we call intel_panel_enable_backlight() / intel_panel_disable_backlight().
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-7-git-send-email-jani.nikula@intel.com
2017-03-01 15:57:59 +02:00
Hans de Goede
3e40fa8a31
drm/i915/dsi: Execute MIPI_SEQ_DEASSERT_RESET before calling device_ready()
...
Execute MIPI_SEQ_DEASSERT_RESET before putting the device in ready
state (LP-11), this is the sequence in which things should be done
according to the spec.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-6-git-send-email-jani.nikula@intel.com
2017-03-01 15:57:57 +02:00
Hans de Goede
deae2006a3
drm/i915/dsi: Group DPOunit clock gate workaround with PLL enable
...
Move the DPOunit clock gate workaround to directly after the PLL enable.
The exact location of the workaround does not matter and there are 2
reasons to group it with the PLL enable:
1) This moves it out of the middle of the init sequence from the spec,
making it easier to follow the init sequence / compare it to the spec
2) It is grouped with the pll disable call in intel_dsi_post_disable,
so for consistency it should be grouped with the pll enable in
intel_dsi_pre_enable
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-5-git-send-email-jani.nikula@intel.com
2017-03-01 15:57:53 +02:00
Hans de Goede
c7dc5275bc
drm/i915/dsi: Move MIPI_SEQ_POWER_ON/OFF calls together with pmic gpio calls
...
Now that we are no longer bound to the drm_panel_ callbacks, call
MIPI_SEQ_POWER_ON/OFF at the proper place.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-4-git-send-email-jani.nikula@intel.com
2017-03-01 15:57:51 +02:00
Hans de Goede
19c17df3cb
drm/i915/dsi: Drop bogus MIPI_SEQ_ASSERT_RESET before POWER_ON
...
intel_dsi_post_disable(), which does the MIPI_SEQ_ASSERT_RESET,
will always be called at some point before intel_dsi_pre_enable()
making the MIPI_SEQ_ASSERT_RESET in intel_dsi_pre_enable() redundant.
In addition, calling MIPI_SEQ_ASSERT_RESET in the enable path goes
against the VBT spec.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-3-git-send-email-jani.nikula@intel.com
2017-03-01 15:57:49 +02:00
Hans de Goede
249f696235
drm/i915/dsi: Document the panel enable / disable sequences from the spec
...
Document the DSI panel enable / disable sequences from the spec,
for easy comparison between the code and the spec.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488374106-4949-2-git-send-email-jani.nikula@intel.com
2017-03-01 15:57:46 +02:00
Deepak M
4644848369
drm/i915/glk: Add MIPIIO Enable/disable sequence
...
v2: Addressed Jani's Review comments(renamed bit field macros)
v3: Jani's Review comment for aligning code to platforms and added
wrapper functions.
v4: Corrected enable/disable seuqence as per BSPEC
v5: Corrected waiting twice for same bit (Review comments: Jani)
v6: Rebased to Han's patches(dsi restructuring code)
Signed-off-by: Deepak M <m.deepak@intel.com >
Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1488352893-29916-2-git-send-email-madhav.chauhan@intel.com
2017-03-01 12:41:06 +02:00
Hans de Goede
1e08a260b1
drm/i915/dsi: VLV/CHT Only wait for LP00 on MIPI PORT A
...
On some devices only MIPI PORT C is used, in this case checking the
MIPI PORT A CTRL AFE_LATCHOUT bit (there is no such bit for PORT C
on VLV/CHT) will result in false positive "DSI LP not going Low" errors
as this checks the PORT A clk status.
In case both ports are used we have already checked the AFE_LATCHOUT
bit when going through the for_each_dsi_port() loop for PORT A and
checking the same bit again for PORT C is a no-op.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97061
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/242e4438bf29ebffc66eaa182f22b9d60d304bc2.1488273823.git.jani.nikula@intel.com
2017-02-28 12:47:04 +02:00
Hans de Goede
18a00095a5
drm/i915/dsi: Make intel_dsi_enable/disable directly exec VBT sequences
...
The drm_panel_enable/disable and drm_panel_prepare/unprepare calls are
not fine grained enough to abstract all the different steps we need to
take (and VBT sequences we need to exec) properly. So simply remove the
panel _enable/disable and prepare/unprepare callbacks and instead
export intel_dsi_exec_vbt_sequence() from intel_dsi_panel_vbt.c
and call that from intel_dsi_enable/disable().
No functional changes.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/b4ca5185d4788d92df2ed60837a24b8962a8e8ba.1488273823.git.jani.nikula@intel.com
2017-02-28 12:47:04 +02:00
Hans de Goede
14be7a5c29
drm/i915/dsi: Move intel_dsi_clear_device_ready()
...
Move the intel_dsi_clear_device_ready() function to higher up in
intel_dsi.c this pairs it with intel_dsi_device_ready(); and pairs
intel_dsi_*enable* with intel_dsi_*disable without
intel_dsi_clear_device_ready() sitting in the middle of them.
This commit purely moves code around, it does not make any
changes what-so-ever.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/f971d18ea6d350890447860aeb541dba072a6e47.1488273823.git.jani.nikula@intel.com
2017-02-28 12:47:03 +02:00
Hans de Goede
c7991ecad6
drm/i915/dsi: Add intel_dsi_unprepare() helper
...
The enable path has an intel_dsi_prepare() helper which prepares various
registers for the mode-set. Move the code undoing this to a new
intel_dsi_unprepare() helper function for better symmetry between the
enable and disable paths. No functional changes.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/cc0baaf04ea74a20031b4b5bb128591dcfa78406.1488273823.git.jani.nikula@intel.com
2017-02-28 12:47:03 +02:00
Hans de Goede
5a2e65e742
drm/i915/dsi: Merge intel_dsi_disable/enable into their respective callers
...
intel_dsi_disable/enable only have one caller, merge them into their
respective callers.
Change msleep(2) into usleep_range(2000, 5000) to make checkpatch happy,
otherwise no functional changes.
The main advantage of this change is that it makes it easier to
follow all the steps of the panel enable / disable sequence when
reading the code.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/d7249612e6d2e9639ecd1d8d106ca37d5794f2a4.1488273823.git.jani.nikula@intel.com
2017-02-28 12:47:02 +02:00
Hans de Goede
3870b89a81
drm/i915/dsi: Move calling of wait_for_dsi_fifo_empty to mipi_exec_send_packet
...
Instead of calling wait_for_dsi_fifo_empty on all dsi ports after calling
a drm_panel_foo helper which calls VBT sequences, move it to the VBT
mipi_exec_send_packet helper, which is the one VBT instruction which
actually puts data in the fifo.
This results in a nice cleanup making it clearer what all the steps on
intel_dsi_enable / disable are and this also makes the VBT code properly
wait till a command has actually been send before executing the next
steps (typically a delay) in the VBT sequence.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/289977b5699e252fea5c211d1d1645f9e79cca79.1488273823.git.jani.nikula@intel.com
2017-02-28 12:47:02 +02:00
Deepak M
b426f98515
drm/i915/glk: Program new MIPI DSI PHY registers for GLK
...
Program the clk lane and tlpx time count registers
to configure DSI PHY.
v2: Addressed Jani's Review comments(renamed bit field macros)
v3: Program clk lane timing reg same as dphy param reg.
v4: Removed "line over 80 character" warning
Signed-off-by: Deepak M <m.deepak@intel.com >
Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1487335415-14766-3-git-send-email-madhav.chauhan@intel.com
2017-02-28 11:31:17 +02:00
Ander Conselvan de Oliveira
79f255a0c9
drm/i915: Store encoder power domain in struct intel_encoder
...
The encoder power domain is obviously tied to the encoder, so store it
in struct intel_encoder. This avoids some indirection.
v2: Rebase
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com >
Reviewed-by: Imre Deak <imre.deak@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/20170222063431.10060-3-ander.conselvan.de.oliveira@intel.com
2017-02-27 09:07:51 +02:00
Uma Shankar
bbdf0b2ff3
drm/i915/bxt: Disable device ready before shutdown command
...
Disable device ready before MIPI port shutdown command.
This helps to avoid mipi split screen issues.
Signed-off-by: Uma Shankar <uma.shankar@intel.com >
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1486551058-22596-8-git-send-email-vidya.srinivas@intel.com
2017-02-16 17:22:09 +02:00
Uma Shankar
eba4daf0dc
drm/i915/bxt: Fix BXT DSI ULPS sequence
...
Fix the Sequence to program BXT DSI Latch and ULPS.
Signed-off-by: Uma Shankar <uma.shankar@intel.com >
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com >
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1486551058-22596-6-git-send-email-vidya.srinivas@intel.com
2017-02-16 17:21:05 +02:00
Deepak M
6043801f93
drm/i915: Set the Z inversion overlap field
...
Dual link Z-inversion overlap field is present
in MIPI_CTRL register unlike the older platforms,
hence setting the same in this patch.
Signed-off-by: Deepak M <m.deepak@intel.com >
Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1487078180-15147-5-git-send-email-madhav.chauhan@intel.com
2017-02-16 17:09:50 +02:00
Uma Shankar
645a2f6e03
drm/i915: Check for platform specific GPIO config
...
Panel GPIO control should be done based on platform. Add a check
to restrict VLV and CHT specific GPIO confirguration, so that
they dont apply to other platforms.
The VBT spec fails to mention the PMIC backlight control option is valid
only for VLV/CHT, and the field may be set to "PMIC" for BXT even if
PMIC is not desired or possible.
Signed-off-by: Uma Shankar <uma.shankar@intel.com >
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com >
[Jani: amended commit message a bit and fixed indentation.]
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1486551058-22596-2-git-send-email-vidya.srinivas@intel.com
2017-02-15 17:32:26 +02:00
Uma Shankar
1881a4234e
drm/i915: Add MIPI_IO WA and program DSI regulators
...
Enable MIPI IO WA for BXT DSI as per bspec and
program the DSI regulators.
v2: Moved IO enable to pre-enable as per Mika's
review comments. Also reused the existing register
definition for BXT_P_CR_GT_DISP_PWRON.
v3: Added Programming the DSI regulators as per disable/enable
sequences.
v4: Restricting regulator changes to BXT as suggested by
Jani/Mika
v5: Removed redundant read/modify for regulator register as
per Jani's comment. Maintain enable/disable symmetry as per spec.
Signed-off-by: Uma Shankar <uma.shankar@intel.com >
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com >
Acked-by: Mika Kahola <mika.kahola@intel.com >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1485353603-11260-1-git-send-email-vidya.srinivas@intel.com
2017-02-01 16:18:45 +02:00
Daniel Vetter
a402eae64d
Merge tag 'v4.10-rc2' into drm-intel-next-queued
...
Backmerge Linux 4.10-rc2 to resync with our -fixes cherry-picks. I've
done the backmerge directly because Dave is on vacation.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
2017-01-04 11:35:18 +01:00
Hans de Goede
e840fd3108
drm/i915/dsi: Move disable pll call outside of clear_device_ready()
...
On enable intel_dsi_enable() directly calls intel_enable_dsi_pll(),
make intel_dsi_disable() also directly call intel_disable_dsi_pll(),
rather then hiding the call in intel_dsi_clear_device_ready(),
no functional changes.
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/20161201202925.12220-7-hdegoede@redhat.com
2016-12-23 15:34:17 +02:00
Nicholas Mc Guire
0a7b35ce2e
drm/i915: relax uncritical udelay_range() settings
...
udelay_range(2, 3) is inefficient and as discussions with Jani Nikula
<jani.nikula@linux.intel.com > unnecessary here. This replaces this
tight setting with a relaxed delay of min=20 and max=50. which helps
the hrtimer subsystem optimize timer handling.
Link: http://lkml.org/lkml/2016/12/15/127
Fixes: commit 37ab0810c9
("drm/i915/bxt: DSI enable for BXT")
Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1481853560-19795-1-git-send-email-hofrat@osadl.org
2016-12-16 11:21:30 +02:00
Ander Conselvan de Oliveira
cc3f90f063
drm/i915/glk: Reuse broxton code for geminilake
...
Geminilake is mostly backwards compatible with broxton, so change most
of the IS_BROXTON() checks to IS_GEN9_LP(). Differences between the
platforms will be implemented in follow-up patches.
v2: Don't reuse broxton's path in intel_update_max_cdclk().
Don't set plane count as in broxton.
v3: Rebase
v4: Include the check intel_bios_is_port_hpd_inverted().
Commit message.
v5: Leave i915_dmc_info() out; glk's csr version != bxt's. (Rodrigo)
v6: Rebase.
v7: Convert a few mode IS_BROXTON() occurances in pps, ddi, dsi and pll
code. (Rodrigo)
v8: Squash a couple of DDI patches with more conversions. (Rodrigo)
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1480667037-11215-2-git-send-email-ander.conselvan.de.oliveira@intel.com
2016-12-02 16:38:56 +02:00
Laurent Pinchart
949f08862d
drm: Make the connector .detect() callback optional
...
Many drivers (21 to be exact) create connectors that are always
connected (for instance to an LVDS or DSI panel). Instead of forcing
them to implement a dummy .detect() handler, make the callback optional
and consider the connector as always connected in that case.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com >
Acked-by: Jyri Sarha <jsarha@ti.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Acked-by: Philipp Zabel <p.zabel@pengutronix.de >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
Acked-by: Alexey Brodkin <abrodkin@synopsys.com >
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
[seanpaul fixed small conflict in rcar-du/rcar_du_lvdscon.c]
Signed-off-by: Sean Paul <seanpaul@chromium.org >
2016-12-01 10:05:53 -05:00
Ander Conselvan de Oliveira
c39055b072
drm/i915: Pass dev_priv to intel_setup_outputs()
...
Pass dev_priv to intel_setup_outputs() and functions called by it, since
those are all intel i915 specific functions. Also, in the majority of
the functions dev_priv is used more often than dev. In the rare cases
where there are a few calls back into drm core, a local dev variable was
added.
v2: Don't convert dev to &dev_priv->drm in intel_dsi_init. (Ville)
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com >
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1479910904-11005-1-git-send-email-ander.conselvan.de.oliveira@intel.com
2016-11-25 16:43:24 +02:00
Bob Paauwe
812b1d2fe5
drm/i915/bxt: Correct dual-link MIPI port control.
...
For BXT, there is only one bit that enables/disables dual-link mode
and not different bits depending on which pipe is being used.
Signed-off-by: Bob Paauwe <bob.j.paauwe@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1479767046-3964-1-git-send-email-bob.j.paauwe@intel.com
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
2016-11-23 22:18:05 +02:00
Tvrtko Ursulin
920a14b245
drm/i915: Make IS_CHERRYVIEW only take dev_priv
...
Saves 864 bytes of .rodata strings and ~100 of .text.
v2: Add parantheses around dev_priv. (Ville Syrjala)
v3: Rebase.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com >
Reviewed-by: David Weinehall <david.weinehall@linux.intel.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Acked-by: Jani Nikula <jani.nikula@linux.intel.com >
Acked-by: Chris Wilson <chris@chris-wilson.co.uk >
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
2016-10-14 12:23:19 +01:00
Tvrtko Ursulin
e2d214ae2b
drm/i915: Make IS_BROXTON only take dev_priv
...
Saves 1392 bytes of .rodata strings.
Also change a few function/macro prototypes in i915_gem_gtt.c
from dev to dev_priv where it made more sense to do so.
v2: Add parantheses around dev_priv. (Ville Syrjala)
v3: Mention function prototype changes. (David Weinehall)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com >
Cc: David Weinehall <david.weinehall@linux.intel.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Acked-by: Jani Nikula <jani.nikula@linux.intel.com >
Acked-by: Chris Wilson <chris@chris-wilson.co.uk >
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: David Weinehall <david.weinehall@linux.intel.com >
2016-10-14 12:23:19 +01:00