[Letux-kernel] DSI & DPI panels with omapdrm on 4.20-rc

H. Nikolaus Schaller hns at goldelico.com
Fri Nov 16 20:10:17 CET 2018


Hi Tomi and readers of this list,

> Am 16.11.2018 um 13:46 schrieb Tomi Valkeinen <tomi.valkeinen at ti.com>:
> 
> On 15/11/18 17:50, H. Nikolaus Schaller wrote:
>> Hi Tomi,
>> 
>>> Am 15.11.2018 um 12:17 schrieb Tomi Valkeinen <tomi.valkeinen at ti.com
>>> <mailto:tomi.valkeinen at ti.com>>:
>>> 
>>> On 15/11/18 08:00, H. Nikolaus Schaller wrote:
>>> 
>>>> But also DISPC_POL_FREQ.
>>> 
>>> Can you try the attached hack patch?
>> 
>> Seems to fix something. I now have a desktop back on the panel :)
> 
> Ok. I need to discuss with Laurent about this when he gets back.
> 
>> What I have observed is that the panel dimensions in mm seem to have
>> changed (because our GUI software uses that as a scaling factor).
> 
> Which panel driver is this? Does "changed" mean that they were correct
> previously, and not anymore? What are/were the numbers?

It turned out that

	xdpyinfo | grep dimensions

did report different dimensions in mm than specified in xorg.conf.
But only for my dpi-panel based device variant.

But see below.

> 
>> When reworking the dsi panel drivers, I have seen that panel drivers
>> can now report the dimensions in mm. So does the generic DPI driver have
>> a new default here? Can it be specified by new DT properties?
>> But I have to check that I do not have a user-space bug here.
> 
> panel-dpi.c has not and does not supported physical size. There's code
> in omap_connector.c that calls get_size() to get the size. You could add
> debug prints there to see if it's called and what are the numbers.

When updating the dsi panel drivers, I was misguided to conclude by

	https://elixir.bootlin.com/linux/v4.20-rc1/source/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c#L1173

to think that all omapdrm panel drivers use that...

> 
>> How does omapdrm X11 handle the mouse cursor? By an overlay of the
>> OMAP3 DSS? Then there may be some other bits for the overlay priority
>> depend on driver probe sequence (the td028ttec1 is probed as an SPI
>> client, probably before omapdrm but I don't know).
> 
> If I recall right, omap xdriver has a config option for HW or SW cursor,
> and HW cursor uses a plane with legacy modesetting to show the cursor.
> HW cursor has always been buggy, but apparently something has changed,
> causing the plane not to be transparent.

I have found the issue and it is not the panel driver or kernel.

There weren't many differences and I even swapped the SD card between both
devices. Still they did scale differently and the cursor had the black background
on the dpi-panel device.

The only differences (besides the different panel hardware connected to omap3) are
* u-boot (to load different DTB files)
* panel driver
* xorg.conf (switched automatically based on /proc/device-tree/model string)

After doing more testing it turned out that the xorg.conf were not doing things
the same way.

The scaling issue was a bad entry in the Monitor property of a Screen section.
So it appears that it tried to use some tv dimensions or something else.
Setting Monitor "lcd" did fix it.

The cursor background issue could be solved by using

	Option "HWcursor" "False"

for all panels and not only the td028ttec1...

BR and thanks and sorry for the noise with non-kernel issues,
Nikolaus



More information about the Letux-kernel mailing list