Hi,
Am 28.04.2016 um 15:05 schrieb H. Nikolaus Schaller hns@goldelico.com:
The ssd driver for example presents the correct (swapped) dimensions when it is registered, but Linux does not look there when setting up the frame buffer. Rather it looks at the other end of the pipeline which is not what I would expect, but it does.
It if would ask the video source (OMAP DSS DSI submodule) for the framebuffer dimensions and not the panel, it would have been right.
Anyways I will now bridle the horse from the other side...
Which is much easier as we now know that the bridle fits :)
I think we can then even ask the panel for the dimensions because then the ssd driver is master and the panel driver is slave. At the moment it is reversed.
It turns out to be very difficult to do it that way. Why?
The panel driver registers itself through omapdss_register_display() which is completely ok and the right solution, if we have no ssd2858.
And the ssd2858 driver registers itself as omapdss_register_output() because it provides MIPI output port(s). This means it is not treated as a panel and therefore its dimensions are sometimes ignored.
This means the current code fits into the concept of how the omapdss driver architecture is intended.
If we want to use it but make the ssd a panel, we have to provide two different drivers for the real panel. One if it is a panel connected directly to the omap and one if it is connected to our special ssd2858 "panel".
Otherwise we can't make the ssd2858 look like "the panel".
And implementing this appears to be more difficult than I had thought some hours earlier.
The only issue we have with the current setup is that the framebuffer does not fetch the correct dimensions from such a setup...
So, maybe, we should patch something there? So that the fb initialization does not ask the panel end but the omap end for frambuffer dimensions...
This would also work as before for the default case without ssd2858.
Unfortuantely I would have to dig even more deeply into the dss driver to find out how the framebuffer asks for dimensions. And how we can make the panel (if asked - when? how?) report the (swapped) coordinates of the ssd.
@Tomi: ideas? proposals? comments?
BR, Nikolaus