The DSI host driver currently ignores the video mode flags in
client->mode_flags. Add the code to take the transfer mode from client's
mode_flags.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 7 ++
From: Sebastian Reichel
This moves the bus locking into the host driver and unexports
the custom API in preparation for drm_panel support.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
---
.../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 44 +--
drivers/gpu
ss_gather_components(struct device *dev)
for_each_available_child_of_node(dev->of_node, child)
omapdss_walk_device(dev, child, true);
}
-EXPORT_SYMBOL(omapdss_gather_components);
static bool omapdss_component_is_loaded(struct omapdss_comp_node *comp)
{
@@ -315,8 +298,3 @@ bool
From: Sebastian Reichel
This converts the DSI module to expect common drm_panel display
drivers instead of dssdev based ones.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
---
.../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 203 +++---
drivers/gpu/drm/omapdrm/dss
ities.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 3 ---
drivers/gpu/drm/omapdrm/dss/dsi.c | 8
drivers/gpu/drm/omapdrm/dss/omapdss.h | 8 +---
drivers/gp
From: Sebastian Reichel
The DSI sync() function only locks the bus and then releases
it again. Currently the only invocation is directly before
update(), which locks the bus anyways.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
---
.../gpu/drm/omapdrm/displays/panel-dsi
From: Sebastian Reichel
Implement check timings, which will check if it's possible to
configure the clocks for the provided mode using the same code
as the set_config() hook.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/omapdrm/dss/dsi.c
From: Sebastian Reichel
Since all encoders and panels are using the bridge API now,
we next pointer is no longer useful and can be dropped.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/omapdrm/dss/base.c | 2
From: Sebastian Reichel
The table of compatible values needed to be prefixed with "omapdss,"
is empty, so all of this code is doing nothing now. Let's drop it.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
drivers/gpu/
dss_mgr_ops was needed with the multi-module architecture, but is no
longer needed. We can thus remove it and use direct calls.
Signed-off-by: Tomi Valkeinen
Acked-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dss.h | 1 -
drivers/gpu/drm/omapdrm/dss
DSI panel driver moving it a bit further to a
standard drm_panel driver.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
.../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 74 +--
drivers/gpu/drm/omapdrm/omap_encoder.c| 28
From: Sebastian Reichel
Move ULPS handling into the DSI host controller, so that we
no longer need a custom API for the DSI client.
Note that for now ULPS is always disabled.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Acked-by: Laurent Pinchart
---
.../gpu/drm/omapdrm
From: Sebastian Reichel
memory_read is not used, so we can drop the code.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
.../gpu/drm/omapdrm/displays/panel-dsi-cm.c | 93 ---
drivers/gpu/drm/omapdrm/dss/omapdss.h
Simplify and optimize dsi_vc_enable_hs() so that it can be called
without checking the current HS/LP mode. Make dsi_vc_enable_hs() return
if the VC is already in the correct mode.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm
From: Sebastian Reichel
The panel driver is no longer using any OMAP specific APIs, so
let's move it into the generic panel directory.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Cc: Thierry Reding
Cc: Sam Ravnborg
Acked-by: Sam Ravnborg
Acked-by: Laurent Pin
From: Sebastian Reichel
Now, that the driver implements the common DRM panel API
the unbind no longer needs to be suppressed.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Acked-by: Laurent Pinchart
---
drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 5 ++---
1 file
Add address-cells & size-cells to DSI nodes so that board files do not
need to define them.
Signed-off-by: Tomi Valkeinen
Cc: Tony Lindgren
Acked-by: Tony Lindgren
Reviewed-by: Sebastian Reichel
---
arch/arm/boot/dts/omap5.dtsi | 6 ++
1 file changed, 6 insertions(+)
diff --git a/
From: Sebastian Reichel
Remove unused code. Connectors are now created via drm_bridge_connector_init()
and no longer OMAP specific.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/omapdrm/Makefile | 1 -
drivers/gpu
The "channel" usage in omap dsi driver is confusing. As the first step,
change "channel" to "dispc_channel" when dealing with the dispc channel.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/
From: Sebastian Reichel
Create a custom function pointer for ULPS and use it instead of
reusing disable/enable functions for ULPS mode switch. This allows
us to use the common disable/enable functions pointers for DSI.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
DSI virtual channel and hardware VC blocks have gotten tangled as
described in the previous commits. This has not caused any issues, as
the value for both is 0, so it happens to work.
To fix the issue, change the code to use the correct one of the two.
Signed-off-by: Tomi Valkeinen
Reviewed-by
dispc_ops was created to help with the multi-module architecture and
giving us the possibility of multiple dispc implementations. Neither of
these is valid anymore, and we can remove dispc_ops and use direct
calls to dispc.
Signed-off-by: Tomi Valkeinen
Acked-by: Laurent Pinchart
Reviewed-by
, and the commands will get
interleaved into the pixel data.
This patch makes the driver use VC0 for commands and VC1 for video.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 12 +++-
1 file changed, 7
From: Sebastian Reichel
We can simply provide the device to the omapdrm driver
via pdata. omapdss_is_initialized() is no longer required
(even before this patch), since omapdrm device is only
registered after the pointer is initialized.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi
We can drop dsi_display_enable(), which just calls
_dsi_display_enable(), and rename _dsi_display_enable() to
dsi_display_enable().
The WARN_ON(!dsi_bus_is_locked(dsi)) in dsi_display_enable is extra and
can be dropped, as _dsi_display_enable() has the same WARN_ON().
Signed-off-by: Tomi
Set the column & page address once during setup, instead of relying the
DSI host driver to set those.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Sam Ravnborg
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/panel/panel-dsi-cm.c | 20 +++
Move structs and defines to a private dsi.h header file to make dsi.c a
bit easier to navigate. Also move the (now) private structs and defines
from omapdss.h to dsi.h.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss
The driver ignores MIPI_DSI_CLOCK_NON_CONTINUOUS, and always uses
non-continuous clock.
Fix this by using MIPI_DSI_CLOCK_NON_CONTINUOUS and at the same time,
drop ddr_clk_always_on field which seems pretty useless.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by
A DSI peripheral can have virtual channel ID of 0-3. This should be
always the case, and there's no need in the driver to validate the
channel.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 11 -
We can drop dsi_display_disable() which just calls
_dsi_display_disable(), and rename _dsi_display_disable() to
dsi_display_disable().
The WARN_ON(!dsi_bus_is_locked(dsi)) in dsi_display_disable is extra and
can be dropped, as _dsi_display_disable() has the same WARN_ON().
Signed-off-by: Tomi
Clean up the code by inlining dsi_enable_video_outputs and
dsi_disable_video_outputs functions.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 55 +--
1 file changed, 22 insertions
The function names have evolved to be very confusing, and bunch of them
have "display" in them even if the function doesn't deal with display as
such (e.g. dsi_display_enable which just enables the DSI interface).
Rename them by dropping the "display".
Signed-off-by: To
Clean up the code by separating video-mode enable/disable code into
functions of their own.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 101 +-
1 file changed, 57 insertions
i_detatch(), so there are no
race conditions.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 50 +++
drivers/gpu/drm/omapdrm/dss/dsi.h | 3 ++
2 files changed, 48 insertions(+), 5 deletions(-)
diff --git a/dri
starting a frame update.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c
b/drivers/gpu/drm/omapdrm/dss/dsi.c
index 6d97ca018a62
From: Sebastian Reichel
All displays are now using a drm_panel or a drm_bridge that models the
connector instead of dssdev, so this field is always 0 and can be
dropped.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/omapdrm
mipi_dsi_device pointer and remove the
for-loops which made passes over all the four VCs (just the first one
was ever used).
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 49 ---
1 file
Use the common MIPI_DCS_GET_ERROR_COUNT_ON_DSI define instead of
driver's own.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Sam Ravnborg
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/panel/panel-dsi-cm.c | 3 +--
1 file changed, 1 insertion(+), 2 dele
1) and 2) currently is "fine", as at the moment we only
support DSI peripherals with DSI virtual channel 0, and we always use
VC0 to send data. So both 1) and 2) are always 0.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/d
From: Sebastian Reichel
The omapdss device's ops_flags field is no longer
used and can be dropped.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/omapdrm/dss/omapdss.h | 9 -
drivers/gpu/drm/omapdrm/dss/venc.c
LP state. This
transition should take place at least once per frame."
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 46 ---
1 file changed, 17 insertions(+), 29 deletions(-)
To start fixing the issues related to channels and vcs described in the
previous commit, pass vc and/or channel to various functions which will
need it do properly handle different DSI channels and VCs.
No functional changes.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed
substantial enough.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 297 +-
drivers/gpu/drm/omapdrm/dss/dsi.h | 4 -
2 files changed, 8 insertions(+), 293 deletions(-)
diff --git a
The functions in display.c are not used, so drop the file.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/Makefile | 2 +-
drivers/gpu/drm/omapdrm/dss/display.c | 58 ---
drivers/gpu/drm
We only need to set VC_CTRL:DCS_CMD_ENABLE for command mode panels when
the HW has DSI_QUIRK_DCS_CMD_CONFIG_VC quirk. The old code did this
right by accident, but now we set DCS_CMD_ENABLE for video mode panels
too.
Fix this by skipping the set for video mode.
Signed-off-by: Tomi Valkeinen
We have a useless 'if' in the dsicm_bl_update_status(), a left over from
the conversion to DRM model. Drop the if.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Sam Ravnborg
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/panel/panel-dsi-cm.c | 8 +
As we now have a fixed setup for VCs (VC0 for video stream, VC1 for
commands), we can simplify the VC setup.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 85 +++
1 file changed, 31 insertions(+), 54 deletions
Drop unneeded includes.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Sam Ravnborg
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/panel/panel-dsi-cm.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c
b/drivers/gpu/drm
From: Sebastian Reichel
The DSI command mode panel is no longer specific
to OMAP and thus the config option has been renamed
slightly.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Cc: Tony Lindgren
Reviewed-by: Laurent Pinchart
Acked-by: Tony Lindgren
---
arch/arm
If the PLL calc function is given bad parameters, n_start/m_start may be
higher than n_stop/m_stop, which leads to the loops iterating through
the whole u32 number space.
Fix this by failing early on such cases.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
Reviewed-by: Sebastian
Add a panel database to the driver instead of reading propertes from DT
data. This is similar to panel-simple, and I believe it's more future
safe way to handle the panels.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Sam Ravnborg
Reviewed-by: Sebastian Reichel
---
drivers/gpu/drm/panel/
Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/omapdrm/dss/dsi.c | 134 --
1 file changed, 89 insertions(+), 45 deletions(-)
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c
b/drivers/gpu/drm/omapdrm/dss/dsi.c
index 6f66ef0be166
From: Sebastian Reichel
Move dsi_ops into the main structure, since all other ops
are gone. Instead of checking the device type we can simply
check if dsi_ops are set.
Signed-off-by: Sebastian Reichel
Signed-off-by: Tomi Valkeinen
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/omapdrm
On 11/12/2020 13:42, Tomi Valkeinen wrote:
+/**
+ * drm_crtc_supports_legacy_gamma - does the crtc support legacy gamma
correction table
+ * @crtc: CRTC object
+ *
+ * Returns true/false if the given crtc supports setting the legacy gamma
+ * correction table.
+ */
+static bool
On 14/12/2020 15:46, Zheng Yongjun wrote:
The parameter of kfree function is NULL, so kfree code is useless, delete it.
Signed-off-by: Zheng Yongjun
---
drivers/gpu/drm/omapdrm/tcm-sita.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/omapdrm/tcm-sita.c
b/drivers/gpu/drm
Update the maintainer email addresses for TI display drivers.
Signed-off-by: Tomi Valkeinen
---
MAINTAINERS | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 281de213ef47..c21471497a18 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
Hi,
On 12/01/2021 14:02, Sebastian Reichel wrote:
> [replace Tomi's TI mail address with something working]
>
> Hi,
>
> On Fri, Jan 08, 2021 at 08:58:39PM +0100, Sam Ravnborg wrote:
>> Hi Sebastian,
>>
>> On Fri, Jan 08, 2021 at 12:24:41PM +0100, Sebastian Reichel wrote:
>>> Standard DRM panel d
Hi,
On 05/01/2022 17:36, Ivaylo Dimitrov wrote:
Currently omapdrm driver does not initialize dma_buf_export_info resv
member, which leads to a new dma_resv being allocated and attached to
the exported dma_buf. This leads to the issue that fences created on
dma_buf objects imported by other drive
At the moment we don't check the plane input/output sizes, which can
lead to DSS HW errors when invalid values are given from the userspace.
Add a check so that the sizes are > 0.
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/omapdrm/omap_plane.c | 6 ++
1 file changed, 6 in
On 21/04/16 23:17, Emil Velikov wrote:
> Cc: Tomi Valkeinen
> Cc: Laurent Pinchart
> Signed-off-by: Emil Velikov
> ---
> include/uapi/drm/omap_drm.h | 8
> 1 file changed, 8 insertions(+)
>
> diff --git a/include/uapi/drm/omap_drm.h b/include/uapi/drm/om
On 28/04/16 15:42, Peter Ujfalusi wrote:
> regulator_can_change_voltage() is deprecated and it's use is not necessary
> as commit:
> 6a0028b3dd67b regulator: Deprecate regulator_can_change_voltage()
> describers it clearly.
> As there is no practical use of it it can be removed.
> At this point th
On 28/04/16 15:42, Peter Ujfalusi wrote:
> This reverts commit 1c278e5e3718d15475ec08ee2135f37a6b13361c.
>
> If DRM_OMAP does not select OMAP2_DSS it is possible to build a kernel with
> DRM_OMAP only and not selecting OMAP2_DSS. Since omapdrm depends on
> OMAP2_DSS this will result on broken ke
Hi,
On 28/04/16 18:18, Noralf Trønnes wrote:
> This adds deferred io support to drm_fb_helper.
> The fbdev framebuffer changes are flushed using the callback
> (struct drm_framebuffer *)->funcs->dirty() by a dedicated worker
> ensuring that it always runs in process context.
>
> Signed-off-by: N
b_deferred_io_mmap() either because we don't have
> access to the file pointer that powerpc needs.
>
> Signed-off-by: Noralf Trønnes
Acked-by: Tomi Valkeinen
Tomi
-- next part --
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pg
On 29/04/16 17:55, Daniel Vetter wrote:
>> Who's calling {write,fillrect,copyarea,imageblit} in an atomic context?
>> That sounds like a very bad idea to me...
>>
>> If this is only for accumulating changes, I think it may be better to
>> leave that to the driver as it may have better idea of how
Hi,
On 15/07/16 06:17, Peter Chen wrote:
> of_node_put needs to be called when the device node which is got
> from of_parse_phandle has finished using.
>
> Cc: Tomi Valkeinen
> Signed-off-by: Peter Chen
> ---
> drivers/gpu/drm/omapdrm/dss/dss-of.c | 7 ---
> 1 fi
On 01/07/16 17:27, Andrew F. Davis wrote:
> Found with scripts/coccinelle/misc/boolconv.cocci.
>
> Signed-off-by: Andrew F. Davis
> ---
> drivers/gpu/drm/omapdrm/dss/dispc.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c
> b/d
On 11/08/16 13:56, Sean Paul wrote:
> On Thu, Aug 11, 2016 at 5:44 AM, Peter Chen wrote:
>> This reverts commit 2ab9f5879162499e1c4e48613287e3f59e593c4f.
>>
>> The of_get_next_parent will drop refcount on the passed node, so the reverted
>> patch is wrong, thanks f
Hi,
On 22/07/16 16:43, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä
>
> The global mode_config.rotation_property is going away, switch over to
> per-plane rotation_property.
>
> Not sure I got the annoying crtc rotation_property handling right.
> Might work, or migth not.
I
On 21/04/2019 01:14, Laurent Pinchart wrote:
> Hi Tomi,
>
> Thank you for the patch.
>
> On Tue, Mar 26, 2019 at 12:31:40PM +0200, Tomi Valkeinen wrote:
>> tc_main_link_enable() checks if videomode has been set, and fails if
>> there's no videomode. As tc_main_li
On 21/04/2019 01:13, Laurent Pinchart wrote:
> Hi Tomi,
>
> Thank you for the patch.
>
> On Tue, Mar 26, 2019 at 12:31:39PM +0200, Tomi Valkeinen wrote:
>> The current link training code does unnecessary retry-loops, and does
>> extra writes to the registers. It is ea
On 21/04/2019 00:25, Laurent Pinchart wrote:
> Hi Tomi,
>
> Thank you for the patch.
>
> On Tue, Mar 26, 2019 at 12:31:31PM +0200, Tomi Valkeinen wrote:
>> The driver currently sets the video stream registers in
>> tc_main_link_setup. One should be able to establish
On 21/04/2019 00:29, Laurent Pinchart wrote:
> Hi Tomi,
>
> Thank you for the patch.
>
> On Tue, Mar 26, 2019 at 12:31:32PM +0200, Tomi Valkeinen wrote:
>> It is nicer to have enable/disable functions instead of set(bool enable)
>> style function.
>
> When
On 21/04/2019 00:39, Laurent Pinchart wrote:
> Hi Tomi,
>
> Thank you for the patch.
>
> On Mon, Apr 15, 2019 at 02:39:21PM +0300, Tomi Valkeinen wrote:
>> On 15/04/2019 11:36, Andrzej Hajda wrote:
>>
>>>> +static int tc_main_link_disable(stru
On 21/04/2019 01:06, Laurent Pinchart wrote:
> Hi Tomi,
>
> Thank you for the patch.
>
> On Tue, Mar 26, 2019 at 12:31:38PM +0200, Tomi Valkeinen wrote:
>> The driver has a loop after ending link training, where it reads the
>> DPCD link status and prints an err
On 21/04/2019 00:44, Laurent Pinchart wrote:
> Hi Tomi,
>
> Thank you for the patch.
>
> On Tue, Mar 26, 2019 at 12:31:37PM +0200, Tomi Valkeinen wrote:
>> At the end of the link training, two steps have to be taken: 1)
>> tc358767's LT mode is disabled by a wri
On 23/04/2019 17:56, Laurent Pinchart wrote:
>> During initial driver development I had one eDP display that reports 0 in
>> Bit 0
>> (ANSI 8B/10B) of DPCD reg 0x0006 (MAIN_LINK_CHANNEL_CODING).
>> Also it does not react on setting Bit 0 (SET_ANSI 8B10B) in 0x0108
>> (MAIN_LINK_CHANNEL_CODING_SET
We need to reset DPCD voltage-swing & pre-emphasis before starting the
link training, as otherwise tc358767 will use the previous values as
minimums.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
---
drivers/gpu/drm/bridge/tc358767.c | 7 +++
1 file changed, 7 insert
nable
* Disable only the video stream in tc_stream_disable()
* Fix tc_connector_detect for eDP panels
Tomi
Tomi Valkeinen (23):
drm/bridge: tc358767: fix tc_aux_get_status error handling
drm/bridge: tc358767: reset voltage-swing & pre-emphasis
drm/bridge: tc358767: fix ansi 8b10b use
drm/bridge: tc
working.
This patch makes the driver to always use ANSI 8B10B encoding, and drops
the 'coding8b10b' field which is no longer used.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
---
drivers/gpu/drm/bridge/tc358767.c | 11 +++
1 file changed, 3 insertions(+), 8 deletion
swing and preemp fields are not used. Remove them.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/bridge/tc358767.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/tc358767.c
b/drivers/gpu/drm/bridge
Minor cleanups:
- Use bool for boolean fields
- Use DP_MAX_DOWNSPREAD_0_5 instead of BIT(0)
- debug print down-spread and scrambler status
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/bridge/tc358767.c | 13 -
1 file
The driver currently sets the video stream registers in
tc_main_link_setup. One should be able to establish the DP link without
any video stream, so a more logical place is to configure the stream in
the tc_main_link_stream. So move them there.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej
Modify aux_link_setup so that it does not use tc->link, and thus makes
aux setup independent of the link probing.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/bridge/tc358767.c | 9 +++--
1 file changed, 3 insertions(+), 6 deletio
tc_aux_get_status() does not report AUX_TIMEOUT correctly, as it only
checks the AUX_TIMEOUT if aux is still busy. Fix this by always checking
for AUX_TIMEOUT.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
---
drivers/gpu/drm/bridge/tc358767.c | 11 +++
1 file changed, 7
ff-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
---
drivers/gpu/drm/bridge/tc358767.c | 62 +--
1 file changed, 35 insertions(+), 27 deletions(-)
diff --git a/drivers/gpu/drm/bridge/tc358767.c
b/drivers/gpu/drm/bridge/tc358767.c
index 87eb875e1174..2cec06520fcf 1
EN in tc_stream_disable to
stop the video stream while keeping the link enabled.
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/bridge/tc358767.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/tc358767.c
b/drivers/gpu/drm/bridge/tc358767.c
index b22f5fe
Currently we have tc_main_link_setup(), which configures and enabled the
link, but we have no counter-part for disabling the link.
Add tc_main_link_disable, and rename tc_main_link_setup to
tc_main_link_enable.
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/bridge/tc358767.c | 27
efore drm_bridge_funcs.enable is
called, so we don't need the check there either.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
---
drivers/gpu/drm/bridge/tc358767.c | 4
1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/bridge/tc358767.c
b/drivers/gpu/drm/bridge/tc3587
drm_connector_helper_funcs.best_encoder is only needed when the
connector can have more than one encoder, and that is never the case
here.
So remove tc_connector_best_encoder.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/bridge
d the link
disconnects right after those steps.
If I reverse the steps, it works every time. There's a chance that this
is DP sink specific, though, but as my testing shows this sequence to be
much more reliable, let's change it.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
be somewhat random if DP link has
erroneously been left enabled, let's add a WARN_ON() for the case and
set DP0CTL to 0.
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/bridge/tc358767.c | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/bridge/tc358767.c
b/drivers/gp
nable.
Also, currently the PXL PLL is only disabled if the driver if removed.
Let's disable the PXL PLL when the stream is disabled.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
Reviewed-by: Laurent Pinchart
---
drivers/gpu/drm/bridge/tc358767.c | 20 ++--
1 file c
It is nicer to have enable/disable functions instead of set(bool enable)
style function.
Split tc_main_link_stream into tc_stream_enable and tc_stream_disable.
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/bridge/tc358767.c | 81 +--
1 file changed, 45
Add support for interrupt and hotplug handling. Both are optional.
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/bridge/tc358767.c | 166 ++
1 file changed, 148 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/bridge/tc358767.c
b/drivers/gpu/drm
ch handles waiting for the LT
phase to finish, and does the necessary LT register setups in
tc_main_link_enable, without extra loops.
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/bridge/tc358767.c | 136 +-
1 file changed, 60 insertions(+), 76 deletions(-)
di
Add GPIO and interrupt related registers for HPD work. Mark INTSTS_G and
GPIOI as volatile.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
---
drivers/gpu/drm/bridge/tc358767.c | 8
1 file changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/bridge/tc358767.c
b/drivers
For some reason the driver has a msleep(100) after writing to
DP_PHY_CTRL. Toshiba's documentation doesn't suggest any delay is
needed, and I have not seen any issues with the sleep removed.
Drop it, as msleep(100) is a rather big one.
Signed-off-by: Tomi Valkeinen
Reviewed-by: And
We have tc_connector_mode_valid() to filter out videomdoes that the
tc358767 cannot support. As it is a bridge limitation, change the code
to use drm_bridge_funcs's mode_valid instead.
Signed-off-by: Tomi Valkeinen
Reviewed-by: Andrzej Hajda
Reviewed-by: Laurent Pinchart
---
drivers/gp
instead to ensure we don't refer to
freed/modified data.
Signed-off-by: Tomi Valkeinen
---
drivers/gpu/drm/bridge/tc358767.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/bridge/tc358767.c
b/drivers/gpu/drm/bridge/tc358767.c
index 591bf64
401 - 500 of 3844 matches
Mail list logo