Messages in this thread | | | Date | Sat, 18 Nov 2017 00:14:21 +0100 (CET) | From | Thomas Gleixner <> | 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
| |