I spotted the following warning for IRQ7 (along with IRQ6 and 10) [ 0.686073] fedora kernel: __irq_set_trigger: genirq: No set_type function for IRQ 7 (IR-IO-APIC)
This comes from kernel/irq/manage.c int __irq_set_trigger(struct irq_desc *desc, unsigned long flags) { struct irq_chip *chip = desc->irq_data.chip; int ret, unmask = 0; if (!chip || !chip->irq_set_type) { /* * IRQF_TRIGGER_* but the PIC does not support multiple * flow-types? */ pr_debug("No set_type function for IRQ %d (%s)\n", irq_desc_get_irq(desc), chip ? (chip->name ? : "unknown") : "unknown"); return 0; } Could this have a role in the IRQ misconfiguration by xen ? Le lun. 22 janv. 2024 à 21:59, Mario Limonciello <mario.limoncie...@amd.com> a écrit : > On 1/22/2024 11:06, Sébastien Chaumat wrote: > > > > > > Le mer. 17 janv. 2024 à 03:20, Mario Limonciello > > <mario.limoncie...@amd.com <mailto:mario.limoncie...@amd.com>> a écrit : > > > > On 1/16/2024 10:18, Jan Beulich wrote: > > > On 16.01.2024 16:52, Sébastien Chaumat wrote: > > >> Le mar. 2 janv. 2024 à 21:23, Sébastien Chaumat > > <euidz...@gmail.com <mailto:euidz...@gmail.com>> a > > >> écrit : > > >> > > >>> > > >>> output of gpioinfo > > >>>> > > >>>> kernel alone : > > >>>> > > >>>> line 5: unnamed input active-low > > consumer=interrupt > > >>>> line 84: unnamed input active-low > > consumer=interrupt > > >>>> > > >>>> xen: > > >>>> > > >>>> line 5: unnamed input active-low > > >>>> line 84: unnamed input active-low > > >>>> > > >>>> xen with skipping IRQ7 double init : > > >>>> > > >>>> line 5: unnamed input active-low > > consumer=interrupt > > >>>> line 84: unnamed input active-low > > >>>> > > >>>> > > >>>> So definitely progressing. > > >>>> > > >>> > > >>> Checking /sys/kernel/irq/7 > > >>> > > >>> kernel alone : > > >>> actions: pinctrl_amd > > >>> chip_name: IR-IO-APIC > > >>> hwirq: 7 > > >>> name: fasteoi > > >>> per_cpu_count: 0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0 > > >>> type: level > > >>> wakeup: enabled > > >>> > > >>> xen skipping IRQ7 double init : > > >>> > > >>> actions: pinctrl_amd > > >>> chip_name: xen-pirq > > >>> hwirq: > > >>> name: ioapic-level > > >>> per_cpu_count: 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 > > >>> type: edge > > >>> wakeup: disabled > > >>> > > >>> So the skip of IRQ7 in pci_xen_initial_domain() sets the > > correct handler > > >>> (IIUC xen uses the ioapic-level and handles the eoi > > separately), but not > > >>> the correct type (still edge). > > >>> I guess this may explains the results above. > > >>> > > >>> > > >> Mario (in CC) patched the pinctrl_amd to flush pending > > interrupt before > > >> starting the driver for the GPIO. > > >> > > >> This helped in the sense of there's no more pending interrupt > > on IRQ7 > > >> (whatever the handler is, level or edge) but then the touchpad > > is not > > >> detected by i2c-hid. > > >> > > >> Is there any work in progress related to the incorrect IRQ > > configuration ? > > > > > > I'm not aware of any. As per my recollection it's still not > entirely > > > clear where in the kernel things go astray. And to be honest I > don't > > > feel comfortable trying to half-blindly address this, e.g. by > trying > > > to circumvent / defer the early setting up of the low 16 IRQs. > > > > > > Jan > > > > Shot in the dark - but could this be a problem where PCAT_COMPAT from > > the MADT is being ignored causing PIC not to be setup properly in the > > Xen case? > > > > See https://lore.kernel.org/all/875y2u5s8g.ffs@tglx/ > > <https://lore.kernel.org/all/875y2u5s8g.ffs@tglx/> for some context. > > > > At least we know that no MADT override is found by xen for INT7 as no > > INT_SRC_OVR message is printed. > > > > Do we expect one @Mario Limonciello <mailto:mario.limoncie...@amd.com> > ? > > No; the INT_SRV_OVR you'll see on Framework 13 AMD is on IRQ 2 and IRQ 9. > >