[U-Boot] [PATCH v4 2/2] sunxi: video: Add simplefb support

Simon Glass sjg at chromium.org
Tue Nov 18 16:08:12 CET 2014


Hi Hans,


On 18 November 2014 14:54, Hans de Goede <hdegoede at redhat.com> wrote:
> Hi,
>
> On 11/18/2014 03:32 PM, Simon Glass wrote:
>> Hi Hans,
>>
>>
>> On 18 November 2014 11:23, Hans de Goede <hdegoede at redhat.com> wrote:
>>> Hi,
>>>
>>> On 11/17/2014 07:39 PM, Simon Glass wrote:
>>>> Hi Hans,
>>>>
>>>> On 17 November 2014 15:48, Hans de Goede <hdegoede at redhat.com> wrote:
>>>>> From: Luc Verhaegen <libv at skynet.be>
>>>>>
>>>>> Add simplefb support, note this depends on the kernel having support for
>>>>> the clocks property which has recently been added to the simplefb devicetree
>>>>> binding.
>>>>>
>>>>> Signed-off-by: Luc Verhaegen <libv at skynet.be>
>>>>> [hdegoede at redhat.com: Use pre-populated simplefb node under /chosen as
>>>>>  disussed on the devicetree list]
>>>>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>>>>> ---
>>>>>  arch/arm/include/asm/arch-sunxi/display.h |  4 ++++
>>>>>  board/sunxi/board.c                       | 11 +++++++++
>>>>>  drivers/video/sunxi_display.c             | 39 +++++++++++++++++++++++++++++++
>>>>>  include/configs/sunxi-common.h            |  8 +++++++
>>>>>  4 files changed, 62 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm/include/asm/arch-sunxi/display.h b/arch/arm/include/asm/arch-sunxi/display.h
>>>>> index 8d80ceb..4c694f8 100644
>>>>> --- a/arch/arm/include/asm/arch-sunxi/display.h
>>>>> +++ b/arch/arm/include/asm/arch-sunxi/display.h
>>>>> @@ -195,4 +195,8 @@ struct sunxi_hdmi_reg {
>>>>>  #define SUNXI_HDMI_PLL_DBG0_PLL3               (0 << 21)
>>>>>  #define SUNXI_HDMI_PLL_DBG0_PLL7               (1 << 21)
>>>>>
>>>>> +#ifdef CONFIG_VIDEO_DT_SIMPLEFB
>>>>> +void sunxi_simplefb_setup(void *blob);
>>>>> +#endif
>>>>> +
>>>>>  #endif /* _SUNXI_DISPLAY_H */
>>>>> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
>>>>> index e6ec5b8..d4530e8 100644
>>>>> --- a/board/sunxi/board.c
>>>>> +++ b/board/sunxi/board.c
>>>>> @@ -24,6 +24,7 @@
>>>>>  #endif
>>>>>  #include <asm/arch/clock.h>
>>>>>  #include <asm/arch/cpu.h>
>>>>> +#include <asm/arch/display.h>
>>>>>  #include <asm/arch/dram.h>
>>>>>  #include <asm/arch/gpio.h>
>>>>>  #include <asm/arch/mmc.h>
>>>>> @@ -237,3 +238,13 @@ int misc_init_r(void)
>>>>>         return 0;
>>>>>  }
>>>>>  #endif
>>>>> +
>>>>> +#ifdef CONFIG_OF_BOARD_SETUP
>>>>> +void
>>>>> +ft_board_setup(void *blob, bd_t *bd)
>>>>> +{
>>>>> +#ifdef CONFIG_VIDEO_DT_SIMPLEFB
>>>>> +       sunxi_simplefb_setup(blob);
>>>>> +#endif
>>>>> +}
>>>>> +#endif /* CONFIG_OF_BOARD_SETUP */
>>>>> diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c
>>>>> index 3f46c31..74c4bd3 100644
>>>>> --- a/drivers/video/sunxi_display.c
>>>>> +++ b/drivers/video/sunxi_display.c
>>>>> @@ -13,6 +13,8 @@
>>>>>  #include <asm/arch/display.h>
>>>>>  #include <asm/global_data.h>
>>>>>  #include <asm/io.h>
>>>>> +#include <fdtdec.h>
>>>>> +#include <fdt_support.h>
>>>>>  #include <linux/fb.h>
>>>>>  #include <video_fb.h>
>>>>>
>>>>> @@ -416,3 +418,40 @@ video_hw_init(void)
>>>>>
>>>>>         return graphic_device;
>>>>>  }
>>>>> +
>>>>> +/*
>>>>> + * Simplefb support.
>>>>> + */
>>>>> +#if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_VIDEO_DT_SIMPLEFB)
>>>>> +void
>>>>> +sunxi_simplefb_setup(void *blob)
>>>>> +{
>>>>> +       static GraphicDevice *graphic_device = &sunxi_display.graphic_device;
>>>>> +       int offset, ret;
>>>>> +
>>>>> +       if (!sunxi_display.enabled)
>>>>> +               return;
>>>>
>>>> return -ENOENT?
>>>
>>> If people want this, I can change the proto to an int and make sunxi_simplefb_setup
>>> return error codes as you suggest, but this function gets called from
>>> ft_board_setup which is void itself, so there is no where to propagate the error,
>>> and more-over we do not want simplefb setup errors to be treated as fatal, so
>>> I see little use in having it return error codes.
>>
>> ft_board_setup() will soon change to return an error. Will likely
>> merge those patches next week.
>
> That is good to hear, but not relevant in this case, as said:
>
> "more-over we do not want simplefb setup errors to be treated as fatal"
>
> Main reason for this is that older dtb-s do not have the pre-populated
> simplefb node. I guess it could be argued that not having the node
> should be a warning (and return 0), and the other errors should be
> real errors. I can be convinced to make that change, let me know either
> way.

Yes that sounds right to me.

Regards,
Simon


More information about the U-Boot mailing list