[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1711180007590.2186@nanos>
Date: Sat, 18 Nov 2017 00:14:21 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: Jan Kiszka <jan.kiszka@...mens.com>
cc: Ingo Molnar <mingo@...hat.com>, "H . Peter Anvin" <hpa@...or.com>,
x86@...nel.org,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
jailhouse-dev@...glegroups.com
Subject: Re: [PATCH 09/10] x86: jailhouse: Wire up IOAPIC for legacy UART
ports
On Thu, 16 Nov 2017, Jan Kiszka wrote:
>
> static void __init jailhouse_init_platform(void)
> {
> + struct ioapic_domain_cfg ioapic_cfg = {
> + .type = IOAPIC_DOMAIN_STRICT,
> + .ops = &mp_ioapic_irqdomain_ops,
> + };
> + struct mpc_intsrc mp_irq = {
> + .type = MP_INTSRC,
> + .irqtype = mp_INT,
> + };
> u64 pa_data = boot_params.hdr.setup_data;
> struct jailhouse_setup_data *data;
> unsigned int cpu;
> @@ -189,6 +198,17 @@ static void __init jailhouse_init_platform(void)
> boot_cpu_apic_version);
> smp_found_config = 1;
>
> + if (data->standard_ioapic) {
> + mp_register_ioapic(0, 0xfec00000, gsi_top, &ioapic_cfg);
> +
> + /* Register 1:1 mapping for legacy UART IRQs 3 and 4 */
> + mp_irq.srcbusirq = mp_irq.dstirq = 3;
> + mp_save_irq(&mp_irq);
> +
> + mp_irq.srcbusirq = mp_irq.dstirq = 4;
> + mp_save_irq(&mp_irq);
Again, that can run later. And please split out initialization for
particular features into separate functions. Otherwise the parse function
will become a kitchen sink of all sorts.
Thanks,
tglx
Powered by blists - more mailing lists