Re: [PATCH v4 15/17] gpu: nova-core: service GSP events from the SWGEN0 interrupt
From: Alexandre Courbot
Date: Mon Sep 21 2026 - 03:22:56 EST
On Mon Sep 21, 2026 at 3:46 PM JST, Alexandre Courbot wrote:
<...>
>> @@ -380,12 +406,7 @@ pub(crate) fn new<'a>(
>>
>> bar,
>>
>> - gsp_falcon: Falcon::new(
>> - dev,
>> - spec.chipset,
>> - bar
>> - )
>> - .inspect(|falcon| falcon.clear_swgen0_intr())?,
>> + gsp_falcon: Falcon::new(dev, spec.chipset, bar)?,
>>
>> sec2_falcon: Falcon::new(dev, spec.chipset, bar)?,
>>
>> @@ -409,6 +430,30 @@ pub(crate) fn new<'a>(
>> })?,
>> }),
>>
>> + _: {
>> + irq::gsp::quiesce(bar, gsp_resources.spec.chipset, vectors_ref)?;
Another problem with this: `quiesce` calls `reset_tree` which then calls
`rearm_pci_irq`, which re-enables the TOP bit of the subtree. So we
effectively have TOP enabled before the handler is created, which
contradicts what the documentation says we should do.