Fwd: Barebox 2017.02 works great but no Linux Framebuffer... :-/
gianluca
gianlucarenzi at eurekelettronica.it
Tue Feb 21 09:59:17 PST 2017
On 02/21/2017 04:03 PM, Lucas Stach wrote:
>> I am fighting to enable ldb in Linux 4.9.7. In barebox the SAME
>> device-tree is modified by barebox to enable/disable the ldb or hdmi
>> depending on what is found.
>>
>> During Linux bootup with HDMI only, it works with no hassle.
>>
>> If booting with ldb it does not start the ldb driver registration due to
>> a panel/bridge missing.
>>
>> In the config of linux kernel I have (as imx_v6_v7_defconfig) all drm
>> and simple panel enabled.
>>
>> What is missing???
>>
>> During last week I was able to activate/deactivate the hdmi and ldb
>> nodes from internal device-tree of Barebox and everything is working great.
>>
>> Barebox is working without it, so I suppose it was working in Linux
>> kernel too...
>
> No, Linux does not support DT defined modes in the panel. You need a
> panel with a proper compatible and driver.
>
> See drivers/gpu/drm/panel. For most LVDS panels simple-panel is what you
> want to use.
I see. The main issue here, I have a bunch of display-timings (3
actually) and they are working in Barebox setting the ldb timings in ldb
node in the device-tree.
The same behaviour cannot be done in Linux?
in panel-simple there is a function named: panel_simple_get_modes() and
it looks for edid eeprom on each panel, then add the fixed mode
hardcoded in the module. Is there a clean way to add the
timing-definition of the ldb module to this procedure?
Nobody has never had a multiple display-timing definitions in a
device-tree and added those timings to the panel?
I cannot believe.
In barebox all display-timings are correctly added to the ldb device
drivers, and I am wondering Linux does not do the same.
Due to this limitiation of the Linux Kernel, in my board
device_initcall() I will try to change the compatibility string to match
a hardcoded timing in the panel-simple.c hardcoded timing.
i.e.:
> panel {
> compatible = "simple-panel", "auo,b101aw03";
> ...
to:
> panel {
> compatible = "simple-panel", "ampire,am800480r3tmqwa1h";
> ...
so Linux can be happy and register a framebuffer...
Is there a of_ utility in barebox to achieve this kind of stuff??
That is change a compatibility string *MODIFYING ONLY A VALUE*
(ampire,...) and leave the "simple-panel" untouched?
Regards,
--
Eurek s.r.l. |
Electronic Engineering | http://www.eurek.it
via Celletta 8/B, 40026 Imola, Italy | Phone: +39-(0)542-609120
p.iva 00690621206 - c.f. 04020030377 | Fax: +39-(0)542-609212
More information about the barebox
mailing list