From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Date: Tue, 18 Nov 2014 15:54:04 +0100 Subject: [U-Boot] [PATCH v4 2/2] sunxi: video: Add simplefb support In-Reply-To: References: <1416239334-29802-1-git-send-email-hdegoede@redhat.com> <1416239334-29802-3-git-send-email-hdegoede@redhat.com> <546B2C35.8070801@redhat.com> Message-ID: <546B5D8C.6080308@redhat.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On 11/18/2014 03:32 PM, Simon Glass wrote: > Hi Hans, > > > On 18 November 2014 11:23, Hans de Goede wrote: >> Hi, >> >> On 11/17/2014 07:39 PM, Simon Glass wrote: >>> Hi Hans, >>> >>> On 17 November 2014 15:48, Hans de Goede wrote: >>>> From: Luc Verhaegen >>>> >>>> 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 >>>> [hdegoede at redhat.com: Use pre-populated simplefb node under /chosen as >>>> disussed on the devicetree list] >>>> Signed-off-by: Hans de Goede >>>> --- >>>> 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 >>>> #include >>>> +#include >>>> #include >>>> #include >>>> #include >>>> @@ -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 >>>> #include >>>> #include >>>> +#include >>>> +#include >>>> #include >>>> #include >>>> >>>> @@ -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. Regards, Hans