fdt_support: support adding EDID property to FDT display nodes
PATCH 1/2 fdt_support: support adding EDID property to FDT display nodes
Boards can pass display timing info for drivers using EDID block. Provide common function to add board specific EDID data to the device tree. Subsequent patch makes use of this functionality.
--- common/fdt_support.c | 29 +++++++++++++++++++++++++++++ include/fdt_support.h | 1 + 2 files changed, 30 insertions(+), 0 deletions(-)
common/fdt_support.c +29 -0
@@ -1171,3 +1171,32 @@ int fdt_alloc_phandle(void *blob)return phandle +1 ; } + +#if defined(CONFIG_VIDEO ) +int fdt_add_edid (void *blob,const char *compat,unsigned char *edid_buf) +{ +int noff; +int ret; + + noff =fdt_node_offset_by_compatible (blob,-1 , compat); +if (noff != -FDT_ERR_NOTFOUND ) { +debug ("%s: %s\n" ,fdt_get_name (blob, noff,0 ), compat); +add_edid: + ret =fdt_setprop (blob, noff,"edid" , edid_buf,128 ); +if (ret == -FDT_ERR_NOSPACE ) { + ret =fdt_increase_size (blob,512 ); +if (!ret) + goto add_edid; +else + goto err_size; + }else if (ret <0 ) { +printf ("Can't add property: %s\n" ,fdt_strerror (ret)); +return ret; + } + } +return 0 ; +err_size: +printf ("Can't increase blob size: %s\n" ,fdt_strerror (ret)); +return ret; +} +#endif
include/fdt_support.h +1 -0
@@ -87,6 +87,7 @@ u64 fdt_translate_address(void *blob, int node_offset, const u32 *in_addr);int fdt_node_offset_by_compat_reg (void *blob,const char *compat,phys_addr_t compat_off);int fdt_alloc_phandle (void *blob); +int fdt_add_edid (void *blob,const char *compat,unsigned char *buf);#endif /* ifdef CONFIG_OF_LIBFDT */ #endif /* ifndef __FDT_SUPPORT_H */
Signature · 1 line
1.7.0.4
PATCH 2/2 pdm360ng: add EDID property to FDT display node
PDM360NG board uses this functionality to pass display timing info to the Linux Framebuffer driver.
--- board/pdm360ng/pdm360ng.c | 24 ++++++++++++++++++++++++ 1 files changed, 24 insertions(+), 0 deletions(-)
board/pdm360ng/pdm360ng.c +24 -0
@@ -518,6 +518,27 @@ struct node_info nodes[] = { };#endif +#if defined(CONFIG_VIDEO ) +static unsigned char edid_buf[128 ] = { +0x00 ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0x00 , +0x42 ,0xC9 ,0x34 ,0x12 ,0x01 ,0x00 ,0x00 ,0x00 , +0x0A ,0x0C ,0x01 ,0x03 ,0x80 ,0x98 ,0x5B ,0x78 , +0xCA ,0x7E ,0x50 ,0xA0 ,0x58 ,0x4E ,0x96 ,0x25 , +0x1E ,0x50 ,0x54 ,0x00 ,0x00 ,0x00 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x80 ,0x0C , +0x20 ,0x00 ,0x31 ,0xE0 ,0x2D ,0x10 ,0x2A ,0x80 , +0x12 ,0x08 ,0x30 ,0xE4 ,0x10 ,0x00 ,0x00 ,0x18 , +0x00 ,0x00 ,0x00 ,0xFD ,0x00 ,0x38 ,0x3C ,0x1F , +0x3C ,0x04 ,0x0A ,0x20 ,0x20 ,0x20 ,0x20 ,0x20 , +0x20 ,0x20 ,0x00 ,0x00 ,0x00 ,0xFF ,0x00 ,0x50 , +0x4D ,0x30 ,0x37 ,0x30 ,0x57 ,0x4C ,0x33 ,0x0A , +0x0A ,0x0A ,0x0A ,0x0A ,0x00 ,0x00 ,0x00 ,0xFF , +0x00 ,0x41 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 , +0x30 ,0x30 ,0x30 ,0x30 ,0x30 ,0x31 ,0x00 ,0xD4 , +}; +#endif +void ft_board_setup (void *blob,bd_t *bd) {u32 val[8 ];
@@ -528,6 +549,9 @@ void ft_board_setup(void *blob, bd_t *bd)#ifdef CONFIG_FDT_FIXUP_PARTITIONS fdt_fixup_mtdparts (blob, nodes,ARRAY_SIZE (nodes));#endif +#if defined(CONFIG_VIDEO ) +fdt_add_edid (blob,"fsl,mpc5121-diu" , edid_buf); +#endif /* Fixup NOR FLASH mapping */ val[i++] =0 ;/* chip select number */
Signature · 1 line
1.7.0.4
PATCH 2/2 pdm360ng: add EDID property to FDT display node
Dear Anatolij Gustschin,
Quoted 2 lines · In message <[email protected]> you wrote:
PDM360NG board uses this functionality to pass display timing info to the Linux Framebuffer driver.
thanks for these patches.
I have one (probably stupid) question:
Quoted 8 lines
board/pdm360ng/pdm360ng.c +8
-0+static unsigned char edid_buf[128 ] = { +0x00 ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0x00 , +0x42 ,0xC9 ,0x34 ,0x12 ,0x01 ,0x00 ,0x00 ,0x00 , +0x0A ,0x0C ,0x01 ,0x03 ,0x80 ,0x98 ,0x5B ,0x78 , +0xCA ,0x7E ,0x50 ,0xA0 ,0x58 ,0x4E ,0x96 ,0x25 , +0x1E ,0x50 ,0x54 ,0x00 ,0x00 ,0x00 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x80 ,0x0C ,
board/pdm360ng/pdm360ng.c struct node_info nodes[] = { · line 539
Quoted 10 lines
board/pdm360ng/pdm360ng.c +10
-0+0x20 ,0x00 ,0x31 ,0xE0 ,0x2D ,0x10 ,0x2A ,0x80 , +0x12 ,0x08 ,0x30 ,0xE4 ,0x10 ,0x00 ,0x00 ,0x18 , +0x00 ,0x00 ,0x00 ,0xFD ,0x00 ,0x38 ,0x3C ,0x1F , +0x3C ,0x04 ,0x0A ,0x20 ,0x20 ,0x20 ,0x20 ,0x20 , +0x20 ,0x20 ,0x00 ,0x00 ,0x00 ,0xFF ,0x00 ,0x50 , +0x4D ,0x30 ,0x37 ,0x30 ,0x57 ,0x4C ,0x33 ,0x0A , +0x0A ,0x0A ,0x0A ,0x0A ,0x00 ,0x00 ,0x00 ,0xFF , +0x00 ,0x41 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 , + 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x00, 0xD4, +};
Is there a way to make these magic numbers readbale for a mere human?
How do you generate these?
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Q: What's a light-year? A: One-third less calories than a regular year.
PATCH 2/2 pdm360ng: add EDID property to FDT display node
Hello Wolfgang,
On Mon, 16 Aug 2010 16:02:14 +0200
Wolfgang Denk <[email protected]> wrote:
...
Quoted 14 lines
I have one (probably stupid) question:
Quoted 12 lines
board/pdm360ng/pdm360ng.c +12
-0+static unsigned char edid_buf[128 ] = { +0x00 ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0x00 , +0x42 ,0xC9 ,0x34 ,0x12 ,0x01 ,0x00 ,0x00 ,0x00 , +0x0A ,0x0C ,0x01 ,0x03 ,0x80 ,0x98 ,0x5B ,0x78 , +0xCA ,0x7E ,0x50 ,0xA0 ,0x58 ,0x4E ,0x96 ,0x25 , +0x1E ,0x50 ,0x54 ,0x00 ,0x00 ,0x00 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x80 ,0x0C , +0x20 ,0x00 ,0x31 ,0xE0 ,0x2D ,0x10 ,0x2A ,0x80 , +0x12 ,0x08 ,0x30 ,0xE4 ,0x10 ,0x00 ,0x00 ,0x18 , +0x00 ,0x00 ,0x00 ,0xFD ,0x00 ,0x38 ,0x3C ,0x1F , +0x3C ,0x04 ,0x0A ,0x20 ,0x20 ,0x20 ,0x20 ,0x20 ,
Quoted 8 lines
board/pdm360ng/pdm360ng.c struct node_info nodes[] = { · line 539
Quoted 6 lines
board/pdm360ng/pdm360ng.c +6
-0+0x20 ,0x20 ,0x00 ,0x00 ,0x00 ,0xFF ,0x00 ,0x50 , +0x4D ,0x30 ,0x37 ,0x30 ,0x57 ,0x4C ,0x33 ,0x0A , +0x0A ,0x0A ,0x0A ,0x0A ,0x00 ,0x00 ,0x00 ,0xFF , +0x00 ,0x41 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 , + 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x00, 0xD4, +};Is there a way to make these magic numbers readbale for a mere human?
The numbers encode some strings (manufacturer, date, display name, etc.) and display parameter numbers. I already thought about the way how to easily generate the structure. Using some macros doesn't make sense, I think. Better would be to describe the display in a file and write a tool that generates the edid data structure from this description.
Quoted 1 line
How do you generate these?
I generated the block using Phoenix EDID Designer 1.3 (a tool for Windows). This creates a text file like:
EDID BYTES:
0x 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------------------------------------------------ 00 | 00 FF FF FF FF FF FF 00 42 C9 34 12 01 00 00 00 10 | 0A 0C 01 03 80 98 5B 78 CA 7E 50 A0 58 4E 96 25 20 | 1E 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 30 | 01 01 01 01 01 01 80 0C 20 40 31 E0 26 10 18 80 40 | 36 00 30 E4 10 00 00 18 00 00 00 FD 00 38 3C 1F 50 | 3C 04 0A 20 20 20 20 20 20 20 00 00 00 FF 00 50 60 | 4D 30 37 30 57 4C 33 0A 0A 0A 0A 0A 00 00 00 FF 70 | 00 41 30 30 30 30 30 30 30 30 30 30 30 31 00 91
Then I manualy converted the needed bytes to a char array.
Best regards,
Anatolij
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
PATCH 2/2 pdm360ng: add EDID property to FDT display node
Hi Anatolij,
Quoted 28 lines
Hello Wolfgang,
On Mon, 16 Aug 2010 16:02:14 +0200
Wolfgang Denk <[email protected]> wrote:
...Quoted 14 lines
I have one (probably stupid) question:
Quoted 12 lines
board/pdm360ng/pdm360ng.c +12
-0+static unsigned char edid_buf[128 ] = { +0x00 ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0x00 , +0x42 ,0xC9 ,0x34 ,0x12 ,0x01 ,0x00 ,0x00 ,0x00 , +0x0A ,0x0C ,0x01 ,0x03 ,0x80 ,0x98 ,0x5B ,0x78 , +0xCA ,0x7E ,0x50 ,0xA0 ,0x58 ,0x4E ,0x96 ,0x25 , +0x1E ,0x50 ,0x54 ,0x00 ,0x00 ,0x00 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x80 ,0x0C , +0x20 ,0x00 ,0x31 ,0xE0 ,0x2D ,0x10 ,0x2A ,0x80 , +0x12 ,0x08 ,0x30 ,0xE4 ,0x10 ,0x00 ,0x00 ,0x18 , +0x00 ,0x00 ,0x00 ,0xFD ,0x00 ,0x38 ,0x3C ,0x1F , +0x3C ,0x04 ,0x0A ,0x20 ,0x20 ,0x20 ,0x20 ,0x20 ,Quoted 8 lines
board/pdm360ng/pdm360ng.c struct node_info nodes[] = { · line 539
Quoted 6 lines
board/pdm360ng/pdm360ng.c +6
-0+0x20 ,0x20 ,0x00 ,0x00 ,0x00 ,0xFF ,0x00 ,0x50 , +0x4D ,0x30 ,0x37 ,0x30 ,0x57 ,0x4C ,0x33 ,0x0A , +0x0A ,0x0A ,0x0A ,0x0A ,0x00 ,0x00 ,0x00 ,0xFF , +0x00 ,0x41 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 , + 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x00, 0xD4, +};Is there a way to make these magic numbers readbale for a mere human?
Quoted 7 lines
The numbers encode some strings (manufacturer, date, display name, etc.) and display parameter numbers. I already thought about the way how to easily generate the structure. Using some macros doesn't make sense, I think. Better would be to describe the display in a file and write a tool that generates the edid data structure from this description.
I don't believe that currently we have a need for such a tool. When we can document "verbally" how to generate the data and if it is used often enough, then maybe someone comes up with a cleverer solution.
Quoted 17 lines
Quoted 1 line
How do you generate these?
I generated the block using Phoenix EDID Designer 1.3 (a tool for Windows). This creates a text file like:
EDID BYTES:
0x 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F------------------------------------------------ 00 | 00 FF FF FF FF FF FF 00 42 C9 34 12 01 00 00 00 10 | 0A 0C 01 03 80 98 5B 78 CA 7E 50 A0 58 4E 96 25 20 | 1E 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 30 | 01 01 01 01 01 01 80 0C 20 40 31 E0 26 10 18 80 40 | 36 00 30 E4 10 00 00 18 00 00 00 FD 00 38 3C 1F 50 | 3C 04 0A 20 20 20 20 20 20 20 00 00 00 FF 00 50 60 | 4D 30 37 30 57 4C 33 0A 0A 0A 0A 0A 00 00 00 FF 70 | 00 41 30 30 30 30 30 30 30 30 30 30 30 31 00 91
Quoted 1 line
Then I manualy converted the needed bytes to a char array.
Then put this text as a "how-to comment" next to the data. This _is_ valuable informatino which we do not want to loose. Rather then putting it in a commit message, this will keep the comment intact once people begin copying the construct around.
Cheers
Detlev
Signature · 9 lines
... what [Microsoft] Exchange provides is *like* email, but it is *not* email.
Once you start trying to use it for real email, you find it's broken by design
in a large number of ways. It makes no sense for [a company] to require that
you use Exchange for Internet email, because that's not what Exchange does.
-- David Woodhouse <1281348164.12908.47.camel@localhost>
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.dePATCH v2 2/2 pdm360ng: add EDID property to FDT display node
In reply to Anatolij GustschinPDM360NG board uses this functionality to pass display timing info to the Linux Framebuffer driver.
---
v2:
- added "howto comment" explaining the generation of EDID data block.
board/pdm360ng/pdm360ng.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 43 insertions(+), 0 deletions(-)
board/pdm360ng/pdm360ng.c +43 -0
@@ -518,6 +518,46 @@ struct node_info nodes[] = { };#endif +#if defined(CONFIG_VIDEO ) +/* +* EDID block has been generated using Phoenix EDID Designer 1.3. +* This tool creates a text file containing: +* +* EDID BYTES: +* 0x 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F +* ------------------------------------------------ +* 00 | 00 FF FF FF FF FF FF 00 42 C9 34 12 01 00 00 00 +* 10 | 0A 0C 01 03 80 98 5B 78 CA 7E 50 A0 58 4E 96 25 +* 20 | 1E 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 +* 30 | 01 01 01 01 01 01 80 0C 20 00 31 E0 2D 10 2A 80 +* 40 | 12 08 30 E4 10 00 00 18 00 00 00 FD 00 38 3C 1F +* 50 | 3C 04 0A 20 20 20 20 20 20 20 00 00 00 FF 00 50 +* 60 | 4D 30 37 30 57 4C 33 0A 0A 0A 0A 0A 00 00 00 FF +* 70 | 00 41 30 30 30 30 30 30 30 30 30 30 30 31 00 D4 +* +* Then this data has been manually converted to the char +* array below. +*/ +static unsigned char edid_buf[128 ] = { +0x00 ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0x00 , +0x42 ,0xC9 ,0x34 ,0x12 ,0x01 ,0x00 ,0x00 ,0x00 , +0x0A ,0x0C ,0x01 ,0x03 ,0x80 ,0x98 ,0x5B ,0x78 , +0xCA ,0x7E ,0x50 ,0xA0 ,0x58 ,0x4E ,0x96 ,0x25 , +0x1E ,0x50 ,0x54 ,0x00 ,0x00 ,0x00 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 , +0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x80 ,0x0C , +0x20 ,0x00 ,0x31 ,0xE0 ,0x2D ,0x10 ,0x2A ,0x80 , +0x12 ,0x08 ,0x30 ,0xE4 ,0x10 ,0x00 ,0x00 ,0x18 , +0x00 ,0x00 ,0x00 ,0xFD ,0x00 ,0x38 ,0x3C ,0x1F , +0x3C ,0x04 ,0x0A ,0x20 ,0x20 ,0x20 ,0x20 ,0x20 , +0x20 ,0x20 ,0x00 ,0x00 ,0x00 ,0xFF ,0x00 ,0x50 , +0x4D ,0x30 ,0x37 ,0x30 ,0x57 ,0x4C ,0x33 ,0x0A , +0x0A ,0x0A ,0x0A ,0x0A ,0x00 ,0x00 ,0x00 ,0xFF , +0x00 ,0x41 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 ,0x30 , +0x30 ,0x30 ,0x30 ,0x30 ,0x30 ,0x31 ,0x00 ,0xD4 , +}; +#endif +void ft_board_setup (void *blob,bd_t *bd) {u32 val[8 ];
@@ -528,6 +568,9 @@ void ft_board_setup(void *blob, bd_t *bd)#ifdef CONFIG_FDT_FIXUP_PARTITIONS fdt_fixup_mtdparts (blob, nodes,ARRAY_SIZE (nodes));#endif +#if defined(CONFIG_VIDEO ) +fdt_add_edid (blob,"fsl,mpc5121-diu" , edid_buf); +#endif /* Fixup NOR FLASH mapping */ val[i++] =0 ;/* chip select number */
Signature · 1 line
1.7.0.4
PATCH v2 2/2 pdm360ng: add EDID property to FDT display node
Hi Anatolij,
Quoted 4 lines
PDM360NG board uses this functionality to pass display timing info to the Linux Framebuffer driver.
Signed-off-by Anatolij Gustschin <[email protected]>
Thanks!
Detlev
Signature · 7 lines
Der erfahrene Politiker hantiert mit Werten wie mit Fahnen. Man tut so, als ob klar sei, was gerecht ist, und unterstellt jedem, der dar?ber diskutieren will, er sei dagegen. -- Norbert Bolz -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
Wolfgang Denk
AppliedPATCH v2 2/2 pdm360ng: add EDID property to FDT display node
In reply to Anatolij GustschinDear Anatolij Gustschin,
Quoted 11 lines · In message <[email protected]> you wrote:
PDM360NG board uses this functionality to pass display timing info to the Linux Framebuffer driver.
Signed-off-by Anatolij Gustschin <[email protected]>---
v2:
- added "howto comment" explaining the generation of EDID data block.board/pdm360ng/pdm360ng.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 43 insertions(+), 0 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 7 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de I distrust all systematisers, and avoid them. The will to a system shows a lack of honesty. - Friedrich Wilhelm Nietzsche _G?tzen-D?mmerung [The Twilight of the Idols]_ ``Maxims and Missiles'' no. 26
PATCH 1/2 fdt_support: support adding EDID property to FDT display nodes
In reply to Anatolij GustschinHi Anatolij,
Quoted 4 lines
Boards can pass display timing info for drivers using EDID block. Provide common function to add board specific EDID data to the device tree. Subsequent patch makes use of this functionality.
You could mention that this is currently implemented on the Linux side by the fsl-diu-fb driver and it is documented there in Documentation/powerpc/dts-bindings/fsl/diu.txt.
Quoted 2 lines
Signed-off-by Anatolij Gustschin <[email protected]>Cc Gerald Van Baren <[email protected]>
Thanks
Detlev
Signature · 5 lines
<ESC>:!emacs % -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
PATCH v2 1/2 fdt_support: support adding EDID property to FDT display nodes
In reply to Anatolij GustschinBoards can pass display timing info for drivers using EDID block. Provide common function to add board specific EDID data to the device tree. Subsequent patch makes use of this functionality.
Detailed timing descriptor data from EDID is used for programming the display controller. This is currently implemented on the Linux side by the fsl-diu-fb frame buffer driver and it is documented there in Documentation/powerpc/dts-bindings/fsl/diu.txt.
---
v2:
- improve commit message as suggested by Detlev
- add Acked-by line
common/fdt_support.c | 29 +++++++++++++++++++++++++++++ include/fdt_support.h | 1 + 2 files changed, 30 insertions(+), 0 deletions(-)
common/fdt_support.c +29 -0
@@ -1171,3 +1171,32 @@ int fdt_alloc_phandle(void *blob)return phandle +1 ; } + +#if defined(CONFIG_VIDEO ) +int fdt_add_edid (void *blob,const char *compat,unsigned char *edid_buf) +{ +int noff; +int ret; + + noff =fdt_node_offset_by_compatible (blob,-1 , compat); +if (noff != -FDT_ERR_NOTFOUND ) { +debug ("%s: %s\n" ,fdt_get_name (blob, noff,0 ), compat); +add_edid: + ret =fdt_setprop (blob, noff,"edid" , edid_buf,128 ); +if (ret == -FDT_ERR_NOSPACE ) { + ret =fdt_increase_size (blob,512 ); +if (!ret) + goto add_edid; +else + goto err_size; + }else if (ret <0 ) { +printf ("Can't add property: %s\n" ,fdt_strerror (ret)); +return ret; + } + } +return 0 ; +err_size: +printf ("Can't increase blob size: %s\n" ,fdt_strerror (ret)); +return ret; +} +#endif
include/fdt_support.h +1 -0
@@ -87,6 +87,7 @@ u64 fdt_translate_address(void *blob, int node_offset, const u32 *in_addr);int fdt_node_offset_by_compat_reg (void *blob,const char *compat,phys_addr_t compat_off);int fdt_alloc_phandle (void *blob); +int fdt_add_edid (void *blob,const char *compat,unsigned char *buf);#endif /* ifdef CONFIG_OF_LIBFDT */ #endif /* ifndef __FDT_SUPPORT_H */
Signature · 1 line
1.7.0.4
Wolfgang Denk
AppliedPATCH v2 1/2 fdt_support: support adding EDID property to FDT display nodes
Dear Anatolij Gustschin,
Quoted 14 lines · In message <[email protected]> you wrote:
Boards can pass display timing info for drivers using EDID block. Provide common function to add board specific EDID data to the device tree. Subsequent patch makes use of this functionality.
Detailed timing descriptor data from EDID is used for programming the display controller. This is currently implemented on the Linux side by the fsl-diu-fb frame buffer driver and it is documented there in
Documentation/powerpc/dts-bindings/fsl/diu.txt.Signed-off-by Anatolij Gustschin <[email protected]>Acked-by Detlev Zundel <[email protected]>Cc Gerald Van Baren <[email protected]>
Quoted 8 lines
---
v2:
- improve commit message as suggested by Detlev
- add Acked-by linecommon/fdt_support.c | 29 +++++++++++++++++++++++++++++ include/fdt_support.h | 1 + 2 files changed, 30 insertions(+), 0 deletions(-)
Applied.
Jerry, hope it's OK with you that I pulled this directly.
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de I still miss my ex-wife, but my aim is getting better.
PATCH v2 1/2 fdt_support: support adding EDID property to FDT display nodes
Quoted 3 lines · Wolfgang Denk
Dear Anatolij Gustschin,
In message<[email protected]> you wrote:
[snip]
Quoted 8 lines
Quoted 8 lines
Signed-off-by Anatolij Gustschin<[email protected]>Acked-by Detlev Zundel<[email protected]>Cc Gerald Van Baren<[email protected]>---
v2:
- improve commit message as suggested by Detlev
- add Acked-by line
Quoted 8 lines
Quoted 3 lines
common/fdt_support.c | 29 +++++++++++++++++++++++++++++ include/fdt_support.h | 1 + 2 files changed, 30 insertions(+), 0 deletions(-)Applied.
Jerry, hope it's OK with you that I pulled this directly.
Yes, thanks.
Quoted 2 lines
Best regards,
Wolfgang Denk
Best regards,
gvb