From: Julien Grall <julien.grall@linaro.org>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: stefano.stabellini@eu.citrix.com, andre.przywara@linaro.org,
patches@linaro.org, xen-devel@lists.xen.org
Subject: Re: [PATCH V1 14/29] xen/video: hdlcd: Use early_printk instead of printk
Date: Mon, 09 Sep 2013 12:21:04 +0100 [thread overview]
Message-ID: <522DAF20.2030201@linaro.org> (raw)
In-Reply-To: <1378486080.14745.167.camel@kazak.uk.xensource.com>
On 09/06/2013 05:48 PM, Ian Campbell wrote:
> On Wed, 2013-08-28 at 15:47 +0100, Julien Grall wrote:
>> The video driver is initialized before the console is correctly set up.
>> Therefore, printk will never output if there is no serial configured.
>
> On the flip side if you have a serial console but not early printk you
> won't see these messages instead.
It depends, the console code will parse the console string and
initialize the different console driver (serial, vga,...) one by one.
- console=vga,serial => the VGA needs to use early printk
- console=vga => the VGA needs to use early printk
- console=serial,vga => the VGA needs to use printk and can use early
printk if it's enabled.
>
> I suppose in that case we don't even try to initialise the hdlcd, since
> it will belong to dom0, right? Except I don't see where that happens.
> Shouldn't this code only be activated if you have console=hdlcd or
> something?
For the moment, the hdlcd is the default device for vga. So if
console=vga, Xen will initialize the hdcld by calling video_init().
We will need to implement something similar to dt-uart.
>>
>> Signed-off-by: Julien Grall <julien.grall@linaro.org>
>> ---
>> xen/drivers/video/arm_hdlcd.c | 23 ++++++++++++-----------
>> 1 file changed, 12 insertions(+), 11 deletions(-)
>>
>> diff --git a/xen/drivers/video/arm_hdlcd.c b/xen/drivers/video/arm_hdlcd.c
>> index ab464c6..dffda9a 100644
>> --- a/xen/drivers/video/arm_hdlcd.c
>> +++ b/xen/drivers/video/arm_hdlcd.c
>> @@ -146,13 +146,13 @@ void __init video_init(void)
>>
>> if ( !hdlcd_start )
>> {
>> - printk(KERN_ERR "HDLCD address missing from device tree, disabling driver\n");
>> + early_printk(KERN_ERR "HDLCD: address missing from device tree, disabling driver\n");
>> return;
>> }
>>
>> if ( !hdlcd_start || !framebuffer_start )
>> {
>> - printk(KERN_ERR "HDLCD: framebuffer address missing from device tree, disabling driver\n");
>> + early_printk(KERN_ERR "HDLCD: framebuffer address missing from device tree, disabling driver\n");
>> return;
>> }
>>
>> @@ -166,27 +166,27 @@ void __init video_init(void)
>> else if ( strlen(mode_string) < strlen("800x600@60") ||
>> strlen(mode_string) > sizeof(_mode_string) - 1 )
>> {
>> - printk(KERN_ERR "HDLCD: invalid modeline=%s\n", mode_string);
>> + early_printk(KERN_ERR "HDLCD: invalid modeline=%s\n", mode_string);
>> return;
>> } else {
>> char *s = strchr(mode_string, '-');
>> if ( !s )
>> {
>> - printk(KERN_INFO "HDLCD: bpp not found in modeline %s, assume 32 bpp\n",
>> - mode_string);
>> + early_printk(KERN_INFO "HDLCD: bpp not found in modeline %s, assume 32 bpp\n",
>> + mode_string);
>> get_color_masks("32", &c);
>> memcpy(_mode_string, mode_string, strlen(mode_string) + 1);
>> bytes_per_pixel = 4;
>> } else {
>> if ( strlen(s) < 6 )
>> {
>> - printk(KERN_ERR "HDLCD: invalid mode %s\n", mode_string);
>> + early_printk(KERN_ERR "HDLCD: invalid mode %s\n", mode_string);
>> return;
>> }
>> s++;
>> if ( get_color_masks(s, &c) < 0 )
>> {
>> - printk(KERN_WARNING "HDLCD: unsupported bpp %s\n", s);
>> + early_printk(KERN_WARNING "HDLCD: unsupported bpp %s\n", s);
>> return;
>> }
>> bytes_per_pixel = simple_strtoll(s, NULL, 10) / 8;
>> @@ -205,22 +205,23 @@ void __init video_init(void)
>> }
>> if ( !videomode )
>> {
>> - printk(KERN_WARNING "HDLCD: unsupported videomode %s\n", _mode_string);
>> + early_printk(KERN_WARNING "HDLCD: unsupported videomode %s\n",
>> + _mode_string);
>> return;
>> }
>>
>> if ( framebuffer_size < bytes_per_pixel * videomode->xres * videomode->yres )
>> {
>> - printk(KERN_ERR "HDLCD: the framebuffer is too small, disabling the HDLCD driver\n");
>> + early_printk(KERN_ERR "HDLCD: the framebuffer is too small, disabling the HDLCD driver\n");
>> return;
>> }
>>
>> - printk(KERN_INFO "Initializing HDLCD driver\n");
>> + early_printk(KERN_INFO "Initializing HDLCD driver\n");
>>
>> lfb = ioremap_wc(framebuffer_start, framebuffer_size);
>> if ( !lfb )
>> {
>> - printk(KERN_ERR "Couldn't map the framebuffer\n");
>> + early_printk(KERN_ERR "Couldn't map the framebuffer\n");
>> return;
>> }
>> memset(lfb, 0x00, bytes_per_pixel * videomode->xres * videomode->yres);
>
>
--
Julien Grall
next prev parent reply other threads:[~2013-09-09 11:21 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-28 14:47 [PATCH V1 00/29] Allow Xen to boot with a raw Device Tree Julien Grall
2013-08-28 14:47 ` [PATCH V1 01/29] xen/char: dt-uart: Allow the user to give a path to the node Julien Grall
2013-09-06 13:08 ` Ian Campbell
2013-09-06 13:34 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 02/29] xen: Introduce __initconst to store initial const data Julien Grall
2013-09-10 10:50 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 03/29] xen/dts: Don't check the number of address and size cells in process_cpu_node Julien Grall
2013-09-06 16:24 ` Ian Campbell
2013-09-10 10:52 ` Ian Campbell
2013-09-10 10:54 ` Julien Grall
2013-09-10 11:03 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 04/29] xen/dts: Constify device_tree_flattened Julien Grall
2013-09-10 10:44 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 05/29] xen/arm: Move __PSCI* from traps.c to the header Julien Grall
2013-08-28 14:47 ` [PATCH V1 06/29] xen: Add new string function Julien Grall
2013-09-06 16:26 ` Ian Campbell
2013-09-09 9:23 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 07/29] xen: Use the right string comparison function in device tree Julien Grall
2013-09-10 10:35 ` Ian Campbell
2013-09-10 12:51 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 08/29] xen/dts: Don't add a fake property "name" in the " Julien Grall
2013-09-06 16:28 ` Ian Campbell
2013-09-09 9:30 ` Julien Grall
2013-09-09 9:40 ` Ian Campbell
2013-09-09 9:59 ` Julien Grall
2013-09-09 10:03 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 09/29] xen/dts: Add new helpers to use " Julien Grall
2013-09-06 16:31 ` Ian Campbell
2013-09-09 9:38 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 10/29] xen/dts: Remove device_get_reg call in process_cpu_node Julien Grall
2013-09-06 16:36 ` Ian Campbell
2013-09-09 9:43 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 11/29] xen/dts: Check "reg" property length in process_multiboot_node Julien Grall
2013-09-06 16:40 ` Ian Campbell
2013-09-09 11:11 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 12/29] xen/dts: Check the CPU ID is not greater than NR_CPUS Julien Grall
2013-08-28 14:47 ` [PATCH V1 13/29] xen/video: hdlcd: Convert the driver to the new device tree API Julien Grall
2013-09-06 16:44 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 14/29] xen/video: hdlcd: Use early_printk instead of printk Julien Grall
2013-09-06 16:48 ` Ian Campbell
2013-09-09 11:21 ` Julien Grall [this message]
2013-08-28 14:47 ` [PATCH V1 15/29] xen/arm: Use dt_device_match to avoid multiple if conditions Julien Grall
2013-09-06 16:50 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 16/29] xen/arm: Build DOM0 FDT by browsing the device tree structure Julien Grall
2013-09-09 11:33 ` Ian Campbell
2013-09-09 12:26 ` Julien Grall
2013-09-09 12:39 ` Ian Campbell
2013-09-09 21:53 ` Julien Grall
2013-09-10 8:58 ` Ian Campbell
2013-09-10 10:39 ` Julien Grall
2013-09-10 10:47 ` Ian Campbell
2013-09-10 10:51 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 17/29] xen/arm: Mark each device used by Xen as disabled in DOM0 FDT Julien Grall
2013-09-09 11:37 ` Ian Campbell
2013-09-09 21:53 ` Julien Grall
2013-09-10 9:01 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 18/29] xen/arm: Don't map disabled device in DOM0 Julien Grall
2013-09-09 11:40 ` Ian Campbell
2013-09-09 21:59 ` Julien Grall
2013-09-10 9:03 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 19/29] xen/arm: Create a fake PSCI node in dom0 device tree Julien Grall
2013-09-09 11:41 ` Ian Campbell
2013-09-09 22:04 ` Julien Grall
2013-09-10 9:04 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 20/29] xen/arm: Create a fake cpus " Julien Grall
2013-09-09 11:44 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 21/29] xen/arm: Create a fake GIC " Julien Grall
2013-09-09 11:49 ` Ian Campbell
2013-09-10 10:49 ` Julien Grall
2013-09-10 13:02 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 22/29] xen/arm: Create a fake timer " Julien Grall
2013-09-09 11:51 ` Ian Campbell
2013-09-10 10:56 ` Julien Grall
2013-09-10 13:02 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 23/29] xen/arm: Add new platform specific callback device_is_blacklist Julien Grall
2013-09-09 11:52 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 24/29] xen/arm: vexpress: Blacklist a list of board specific devices Julien Grall
2013-09-09 11:54 ` Ian Campbell
2013-09-10 11:03 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 25/29] xen/arm: exynos5: Blacklist MCT device Julien Grall
2013-09-09 11:55 ` Ian Campbell
2013-08-28 14:47 ` [PATCH V1 26/29] xen/dts: Clean up the exported API for device tree Julien Grall
2013-08-28 14:47 ` [PATCH V1 27/29] xen/dts: device_get_reg: cells are 32 bits big endian value Julien Grall
2013-09-09 11:57 ` Ian Campbell
2013-09-10 11:08 ` Julien Grall
2013-08-28 14:47 ` [PATCH V1 28/29] xen/arm: Check if the device is available before using it Julien Grall
2013-08-28 14:47 ` [PATCH V1 29/29] ARM: parse separate DT properties for different commandlines Julien Grall
2013-09-09 11:59 ` Ian Campbell
2013-09-09 14:06 ` Andre Przywara
2013-09-10 10:50 ` [PATCH V1 00/29] Allow Xen to boot with a raw Device Tree Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=522DAF20.2030201@linaro.org \
--to=julien.grall@linaro.org \
--cc=Ian.Campbell@citrix.com \
--cc=andre.przywara@linaro.org \
--cc=patches@linaro.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.