Thread (21 messages) 21 messages, 3 authors, 2019-08-14

Re: [EXT] Re: [PATCH 00/10] Improvements and fixes for mxsfb DRM driver

From: Guido Günther <agx@sigxcpu.org>
Date: 2019-07-16 14:54:57
Also in: dri-devel, linux-devicetree, lkml

Hi Robert,
On Fri, Jul 12, 2019 at 08:15:32AM +0000, Robert Chiras wrote:
Hi Guido,

On Jo, 2019-07-11 at 17:04 +0200, Guido Günther wrote:
quoted
Hi Robert,
On Wed, Jun 26, 2019 at 04:32:08PM +0300, Robert Chiras wrote:
quoted
This patch-set improves the use of eLCDIF block on iMX 8 SoCs (like
8MQ, 8MM
and 8QXP). Following, are the new features added and fixes from
this
patch-set:

1. Add support for drm_bridge
On 8MQ and 8MM, the LCDIF block is not directly connected to a
parallel
display connector, where an LCD panel can be attached, but instead
it is
connected to DSI controller. Since this DSI stands between the
display
controller (eLCDIF) and the physical connector, the DSI can be
implemented
as a DRM bridge. So, in order to be able to connect the mxsfb
driver to
the DSI driver, the support for a drm_bridge was needed in mxsfb
DRM
driver (the actual driver for the eLCDIF block).
So I wanted to test this but with both my somewhat cleaned up nwl
driver¹ and the nwl driver forward ported from the nxp vendor tree
I'm
looking at a black screen with current mainline - while my dcss
forward
port gives me nice output on mipi dsi. Do you have a tree that uses
mipi
dsi on imx8mq where I could look at to check for differences?
Somewhere on the pixel path (between the display controller and the
DSI) there is a block that inverts the polarity. I can't remember
exactly what was the role of this block, but the polarity is inverted
when eLCDIF is used in combination with the DSI.
If you take a look at my DSI driver from NXP releases (I guess you have
them), you will see there is a hack in mode_fixup:

unsigned int *flags = &mode->flags;
if (dsi->sync_pol {
	*flags |= DRM_MODE_FLAG_PHSYNC;
	*flags |= DRM_MODE_FLAG_PVSYNC;
	*flags &= ~DRM_MODE_FLAG_NHSYNC;
	*flags &= ~DRM_MODE_FLAG_NVSYNC;
} else {
	*flags &= ~DRM_MODE_FLAG_PHSYNC;
	*flags &= ~DRM_MODE_FLAG_PVSYNC;
	*flags |= DRM_MODE_FLAG_NHSYNC;
	*flags |= DRM_MODE_FLAG_NVSYNC;
}
Thanks for the suggestion! I'll try that.
I know it's not clean, but it works for now. You can try this in your
driver and see if it helps.
These days I will also take your nwl-dsi driver and test it, and also
add support for bridge and eLCDIF to see if I can make it work.
I have hacky bridge support over here already. Give me some days to
clean it up and it might safe you some work.
Cheers,
 -- Guido

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help