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.

> panel {
> 	compatible = "simple-panel", "auo,b101aw03";
> 	...

> 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?

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